Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的if语句有问题_Python_If Statement_While Loop - Fatal编程技术网

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")