SyntaxError:在python中找到多个语句。有人有这方面的经验吗?

SyntaxError:在python中找到多个语句。有人有这方面的经验吗?,python,python-3.x,Python,Python 3.x,下面的代码来自我们的python简介课程的教科书。在询问我的同学、老师和在互联网上搜索这个问题之间,似乎没有人知道错误是从哪里来的。我的教练说他看不出第二句话是从哪里来的。如果有人对此或任何建议有任何经验,我将不胜感激 >>> # quadratic.py # A program that computes the real roots of a quadratic equation. # Note: this program crashes if the equati

下面的代码来自我们的python简介课程的教科书。在询问我的同学、老师和在互联网上搜索这个问题之间,似乎没有人知道错误是从哪里来的。我的教练说他看不出第二句话是从哪里来的。如果有人对此或任何建议有任何经验,我将不胜感激

>>> # quadratic.py
#   A program that computes the real roots of a quadratic equation.
#   Note: this program crashes if the equation has no real roots.

import math  # Makes the math library available.

def main():
    print("This program finds the real solutions to a quadratic")
    print()

    a,b,c = eval(input("Please enter the coefficients (a,b,c): "))

    discRoot = math.sqrt(b*b*-4*a*c)
    root1 = (b + discRoot) / (2 * a)
    root2 = (b - discRoot) / (2 * a)

    print()
    print("The solutions are: ", root1, root2)

main()
SyntaxError: multiple statements found while compiling a single statement

看起来您已经将整个脚本粘贴到某个IDE中的交互式shell中。您的IDE不是一行一行地传递给Python,而是同时传递。交互式shell的底层代码不喜欢这样,因此您将得到一个错误


我建议将代码放入一个文件中,然后运行它,而不是直接通过shell输入代码。如果你真的只需要使用交互式shell,把不同的语句分开到它们自己的输入行(上面的代码< >导入< /COD>语句,中间的<代码> DEF> /COD>语句,以及在结尾处的<代码>主代码(/代码>表达式表达式)。但是我不能用这种方式重现错误信息。@tobias_k:我在IDLE的shell中粘贴多行代码时得到了错误信息,所以我怀疑提问者就是这么做的。好吧,从文件运行它取得了一些进展,但现在我得到了一个不同的错误。此程序找到二次函数的真实解()请输入系数(a,b,c):1,2,3回溯(最近一次调用):文件“/Users/elkyfrostglen/Desktop/quadratic.py”,第20行,在main()文件“/Users/elkyfrostglen/Desktop/quadratic.py”,第11行,在主a,b,c=eval(输入(“请输入系数(a,b,c):”)TypeError:eval()arg 1必须是字符串或代码object@elkyfrostglen那么,您可能正在使用Python2.7而不是Python3?在Python2中,
input
将已经对输入求值,因此您要求值两次。在Python3中,
input
只返回一个字符串,就像Python3中的
raw\u input
那样。另外,尽量不要使用
eval
。使用
python
,或
ipython
,或
idle
,无论是使用python 2还是3,仍然无法复制。但这似乎解决了OP的部分问题,所以我猜这个猜测毕竟是对的。