Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 蟒蛇,被杀了?_Python_Math - Fatal编程技术网

Python 蟒蛇,被杀了?

Python 蟒蛇,被杀了?,python,math,Python,Math,好的,我终于开始学习python中的数学,这(到目前为止)出乎意料地没有我想象的那么难(我不懂微积分或三角学,只懂基本代数)。 我正试图从头开始创建一个程序,考虑二次方程。以下是我到目前为止所做的(如果写得不好,很抱歉): 我在终端上运行了这个脚本,它问我A B和C是什么,然后它冻结了大约30秒。当它在我输入的下方解冻后,上面写着“杀死”。 有人知道这是什么原因吗?非常感谢您的回答或建议。请修改您的代码,如下所示: def factor(arg): o = arg n =

好的,我终于开始学习python中的数学,这(到目前为止)出乎意料地没有我想象的那么难(我不懂微积分或三角学,只懂基本代数)。 我正试图从头开始创建一个程序,考虑二次方程。以下是我到目前为止所做的(如果写得不好,很抱歉):

我在终端上运行了这个脚本,它问我A B和C是什么,然后它冻结了大约30秒。当它在我输入的下方解冻后,上面写着“杀死”。
有人知道这是什么原因吗?非常感谢您的回答或建议。

请修改您的代码,如下所示:

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
ABpf = factor(A * C)            # Possible factors of (A * C)
ACpf = []
for i in ABpf:
    ACpf.append(i)
    ACpf.append(-1*i) 

cf = []                          # Common factors

for i in Bpf:
    for j in ACpf:
    if i == j:
        cf.append(i)

print cf

现在试着运行它。你应该得到一个结果

问题似乎出在以下几行:

ACpf = factor(A * C)            # Possible factors of (A * C)

for i in ABpf:
    ACpf.append(-i) 
请尝试以下方法:

ACpf = factor(A * C)            # Possible factors of (A * C)

for i in ACpf[:]:               # Loop over a copy of ACpf
    ACpf.append(-i) 
[:]符号用于复制列表。这样可以确保在循环列表时不会对列表进行变异(增加)

此外,这里还对factor()的代码进行了一些清理:


你是在自己的电脑上运行还是在工作/学校的电脑上运行?这听起来很像是你在一台共享的机器上超过了你的CPU配额。关于三角学,你首先应该学习的是如何使用它:-)快速、轻松地分解二次方程是一个已解决的问题。Python甚至支持复杂的根。@GuySirton-这不是递归函数,所以我怀疑这是堆栈溢出。IgnacioVazquez-Abrams:我认为这是一个家庭作业问题(kindall在他的共享计算机猜测中可能是正确的),所以这可能不是一个选项。还有,paxdiablo:这是“拼写”:p.谢谢你们的帮助,我很感激。
如果(o)%x==0:
最好写为
如果不是o%x:
ACpf = factor(A * C)            # Possible factors of (A * C)

for i in ACpf[:]:               # Loop over a copy of ACpf
    ACpf.append(-i) 
def factor(arg):
    o = arg
    factors = [o]

    for x in range(2, o+1):
        if o % x == 0:
            n = o // x
            factors.append(n)

    return factors