python程序书写

新手上路,请多包涵
from collections import defaultdict
import re

P = re.compile(r'\+?(-?\d*)(x\^?)?(\d*)')

def differentiate(eq, x):
    
    derivate = defaultdict(int)
    for coef,var,exp in P.findall(eq):
        exp  = int(exp or var and '1' or '0')
        coef = int(coef!='-' and coef or coef and '-1' or '1')
        
        if exp: derivate[exp-1] += exp * coef
    
    return sum(coef * x**exp for exp,coef in derivate.items())

程序功能为对多项式求导 其中for循环中的语句能看懂 但是自己写起来会逻辑混乱,想请问一下如果自己写循环中的语句的话应该是怎样一个思路,怎么确定各参数书写的位置和and和or的选择。谢谢

阅读 1.2k
1 个回答
新手上路,请多包涵

and和or的选择全依赖你脑海中的逻辑。
代码只是你脑子中逻辑的可视化而已。所以要先想清楚,然后再写代码。
可以先在纸上把逻辑写出来,理通顺了再转换成代码。
如果代码看起来乱,有几点小建议:
1.在每行代码上面写上注释。解释每行代码干嘛的
2.if else表达式不要太长,长的话 表达式都定义为变量,就像上面的代码里的exp coef那样就很好
3.表达式里有多个 and or 的时候 可以加上括号,标明优先级。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题