-4
x=0
y=0
while x !="exit" or y !="exit":
    x= raw_input("Enter your name: ")
    y= raw_input("Enter your grade: ")
    if y!= "exit":
        g=int(y)
    if g<50 or g>100:
        print("Invalid input")
    else:
        if g>=50 and g<70:
             print("not a good grade,work harder")
        if g>=70 and g<90:
            print("Nice grade, try to get higher next time")
        if g>=90 and g<=100:
            print("Excellent grade!")
print("Good bye")

基本的にこれは私のプログラムで、問題なく動作していますが、いくつか問題があります。
まず第一に、プログラムは x と y で exit と入力したときにのみ終了し、x または y で exit と入力したら終了する必要があります。
もう 1 つの問題は、プログラムが終了すると (x と y に exit を入力すると)、結果が次のようになることです。

Enter your name: exit
Enter your grade: exit
Nice grade, try to get higher next time
Good bye

exit が 1 つしか入力されていない場合、プログラムを終了させるにはどうすればよいですか?
そして、それが印刷する問題をどのように修正できますか

Nice grade, try to get higher next time  
Good bye 

exit が 1 つしか入力されていない場合、どうすればループを終了させることができますか?
exit が入力されると、「さようなら」のみが出力されるように、結果を修正するにはどうすればよいですか?

4

4 に答える 4

2

のチェックbreak後にステートメントが必要です。私はチェックを壊すために置き換えましたify != "exit"y == "exit"

また、ブロックを使用してif-elif-else、最後の if 条件を単純化することもできます。これは現在冗長であるためです。さらに、条件自体を単純化して、a < b < c読みやすいフォーマットを使用することもできます。

x=0
y=0
while x !="exit" or y !="exit":
    x= raw_input("Enter your name: ")
    if x == "exit":
        break
    y= raw_input("Enter your grade: ")
    if y == "exit":
        break
    g=int(y)
    if 50 <= g <= 100:
        if 50 <= g < 70:
             print("not a good grade,work harder")
        elif 70 <= g < 90:
            print("Nice grade, try to get higher next time")
        else:
            print("Excellent grade!")
    else:
        print("Invalid input")
print("Good bye")   
于 2013-10-15T18:25:03.537 に答える
1

これは、これを行う方法の良い例です。

#grade test
while True:
    #set name
    name=raw_input("Enter your name: ")
    #test if name is quit
    if str(name)=='quit':
        break
    #set grade
    grade=raw_input("Enter your grade: ")
    #test if grade is quit
    if str(grade)=='quit':
        break
    #if it isn't quit, set grade to a number
    grade=int(grade)
    #evaluate the actual grade
    if grade<0 or grade>100:
        print("Invalid input")
    elif grade>=50 and grade<70:
        print("not a good grade,work harder")
    elif grade>=70 and grade<90:
        print("Nice grade, try to get higher next time")
    elif grade>=90 and grade<=100:
        print("Excellent grade!")
    else:
        print("Consider getting a tutor..")
#since we broke when we entered quit, we have exited the loop and now we can quit the program
print "Goodbye!"
exit(1)

それがどうなるか教えてください!

于 2013-10-15T18:32:08.240 に答える
0

これはごく基本的なロジックですが、

x= raw_input("Enter your name: ")
y= raw_input("Enter your grade: ")

x= raw_input("Enter your name: ")
if x == "exit": break
y= raw_input("Enter your grade: ")
if y == "exit": break
于 2013-10-15T18:24:51.993 に答える