3

我在 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()
4

3 回答 3

4

您的语法错误是因为 while 循环上方的表达式缺少闭合括号:

 num1=eval(input("Enter number")

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

于 2012-10-25T15:53:28.510 回答
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(input("Enter number")) 处打开了一个参数

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

您还可以通过将其更改为来确保该数字是整数:

num1=int(input("请输入数字:"))

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

于 2012-10-25T16:09:18.930 回答
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 在这里没用。

于 2012-10-25T16:18:34.917 回答