好了,我终于开始用python来学习数学,它(到目前为止)并不像我想象的那么难(我不懂微积分或三角函数,只懂基本代数)。 我正在尝试从头开始创建一个程序,这个程序考虑二次方程。以下是我到目前为止的情况(如果写得不好,很抱歉):
def factor(arg):
o = arg
n = o
x = 2
factors = [o]
while abs(o) >= x:
if (o) % x == 0:
n = o / x
factors.append(n)
x += 1
else:
x += 1
return factors
A = int(raw_input("What is A in your quadratic equation? A = "))
B = int(raw_input("What is B in your quadratic equation? B = "))
C = int(raw_input("What is C in your quadratic equation? C = "))
Br = abs(B) + abs(A) # Range of B
Bpf = range (-Br, Br + 1) # Possible factors of B
ACpf = factor(A * C) # Possible factors of (A * C)
for i in ABpf:
ACpf.append(-i)
cf = [] # Common factors
for i in Bpf:
for j in ACpf:
if i == j:
cf.append(i)
print cf
我在终端上运行这个脚本,它问我B和C是什么,然后它冻结了大约30秒。当它在我输入的下面解冻后写着“杀死”。 有人知道是什么引起的吗?我很感激你的回答或建议。在
像这样修改代码:
现在试着运行它。你应该会有结果的。在
问题似乎出在以下几行:
试试这个:
^{pr2}$[:]符号用于复制列表。这样可以确保在循环列表时不会改变列表(使其增长)。在
这里还对factor()的代码进行了一些清理:
相关问题 更多 >
编程相关推荐