在while循环上获取语法错误

时间:2012-10-25 15:48:24

标签: python loops syntax while-loop

我一直在while循环上遇到语法错误,我不明白为什么。

def main():
    n=1
    i=1
    flag=True
    num1=eval(input("Enter number")
    while i<9:
        n=n+1
        num2=eval(input("Enter number", n))
        r=r+1
        if num2<num1:
            flag=False
        num1=num2
    if flag==True:
        print("yes")
    else:
        print("no")
main()

3 个答案:

答案 0 :(得分:4)

您的语法错误是因为while循环上方的表达式缺少一个已关闭的paren:

 num1=eval(input("Enter number")

我还建议您将代码转到Code Review SE,以获取有关代码的其他问题的建设性反馈。

答案 1 :(得分:3)

def main():
n=1
i=1
flag=True
num1=eval(input("Enter number"))
while i<9:
    n=n+1
    num2=eval(input("Enter number", n))
    i+=1
    if num2<num1:
        flag=False
    num1=num2
if flag==True:
    print("yes")
else:
    print("no")
main()

您将参数打开为num1 = eval(输入(“输入数字”))

我也将r = r + 1更改为r + = 1,它们做同样的事情,但它看起来更好一些。

您还可以通过将其更改为:

来确保该数字是整数

num1 = int(输入(“输入数字:”))

另外,我认为n + = 1需要i + = 1来结束无限循环。

答案 2 :(得分:0)

驾驶你的无限循环。最终的代码可能是(包括其他同行的好答案):

def main():
    n=1
    flag=True
    num1=eval(input("Enter number"))
    while n<9:
        n+=1
        num2=eval(input("Enter number", n))
        if num2<num1:
            flag=False
        num1=num2

    if flag:
        print("yes")
    else:
        print("no")
main()

简单地循环变量n:i和r在这里没用。