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 に答える