python中的if语句有问题
如果只键入了一个退出,如何使程序退出?python中的if语句有问题,python,if-statement,while-loop,Python,If Statement,While Loop,如果只键入了一个退出,如何使程序退出? 我如何解决它打印的问题 Enter your name: exit Enter your grade: exit Nice grade, try to get higher next time Good bye 如果只键入了一个退出,如何使循环退出? 我怎样才能修正结果,这样一旦输入退出,它将只打印“再见” 这只是一些非常基本的逻辑,但是 Nice grade, try to get higher next time Good bye 与 在if
我如何解决它打印的问题
Enter your name: exit
Enter your grade: exit
Nice grade, try to get higher next time
Good bye
如果只键入了一个退出,如何使循环退出?我怎样才能修正结果,这样一旦输入退出,它将只打印“再见” 这只是一些非常基本的逻辑,但是
Nice grade, try to get higher next time
Good bye
与
在
if
检查y!=“退出”
。如果y==“退出”
此外,您还可以使用if elif else
块,并简化最后一个if条件,因为它现在是冗余的。此外,您可以简化条件本身,使用a
格式以提高可读性
x= raw_input("Enter your name: ")
if x == "exit": break
y= raw_input("Enter your grade: ")
if y == "exit": break
x=0
y=0
而x=“退出”或“退出”=“退出”:
x=原始输入(“输入您的姓名:”)
如果x==“退出”:
打破
y=原始输入(“输入你的分数:”)
如果y==“退出”:
打破
g=int(y)
如果50这应该是一个很好的例子,说明如何做到这一点:
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")
#等级测试
尽管如此:
#设置名称
name=原始输入(“输入您的姓名:”)
#测试name是否已退出
如果str(name)=“退出”:
打破
#定级
等级=原始输入(“输入您的等级:”)
#测试是否退出等级
如果str(grade)=“退出”:
打破
#如果没有退出,请将grade设置为一个数字
年级=int(年级)
#评估实际成绩
如果等级为100:
打印(“无效输入”)
elif等级>=50,等级=70,等级=90,等级
将返回true,除非x和y都='exit'
您描述的行为需要
while x !="exit" or y !="exit":
以允许x或y结束while循环
您要求的另一个行为(在输入“exit”后立即中断)可以通过在if子句中包含循环的其余部分来测试“exit”来轻松完成
您描述的其他不稳定行为(打印语句)类似于缩进错误造成的
下面是我认为您正在描述的内容的一个版本,使用在Python 3.3中工作的原始代码
while x !="exit" and y !="exit":
x=0
y=0
而x=“退出”和y=“退出”:
x=输入(“输入您的姓名:”)
如果x!='出口':
y=输入(“输入你的成绩:”)
如果y!=“退出”:
g=int(y)
如果g100:
打印(“无效输入”)
其他:
如果g>=50和g=70,并且gindentation在代码的第一行被打断,那么这里不太清楚您在问什么。任何地方都没有问题。在发布问题之前花点时间,删除它并更新它,然后取消删除它一旦在x或y上键入exit,我需要退出——如果y==“exit”或x==“exit”,请使用:
@GrijeshChauhan:为什么不在(x,y)
中简单地“exit”是临时的,-1是在您编辑后的+1d。但是,是的,这是一个基本的缺陷,OP的代码是可以避免的,而您的代码并没有避免。那么,您仍然可以考虑修改该条件<代码> ELIF等级。
#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)
while x !="exit" or y !="exit":
while x !="exit" and y !="exit":
x=0
y=0
while x !="exit" and y !="exit":
x= input("Enter your name: ")
if x != 'exit':
y= 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")
elif g>=70 and g<90:
print("Nice grade, try to get higher next time")
else:
print("Excellent grade!")
print("Good bye")