你好,有人能帮帮我吗?我正在使用if和elif语句,但由于某种原因,elif语句代码也回答了if语句,if代码在这里没有回答自己是一个例子:
#login
if(input('username=')=='hello'):
print('continue')
elif(input('passcode=')=='goodbye'):
print('continue')
else :
print ('alert')
当我运行此代码时,这就是出现的结果:
username=hello
continue
>>>
相反,如果我插入密码而不是用户名,则会出现这种情况:
username=goodbye
passcode=goodbye
continue
>>>
最糟糕的是,如果我将用户名空格留空并按回车键会发生这种情况:
username=
passcode=goodbye
continue
>>>
我该怎么办?
答案 0 :(得分:0)
因为if和elif的结果是相同的
您的代码:
#login
if(input('username=')=='hello'):
print('continue')
elif(input('passcode=')=='goodbye'):
print('continue')
else :
print ('alert')
试试这个:
#login
if(input('username=')=='hello'):
print('continue')
elif(input('passcode=')=='goodbye'):
print('continue 2')
else :
print ('alert')
答案 1 :(得分:0)
我不确定我理解。代码完全按照您编写的代码执行。
您的目标是检查用户名和密码是否匹配才能继续?如果是这样,你可能想要更像这样的东西:
if(input('username=')=='hello'):
print('username is OK. Continue')
if(input('passcode=')=='goodbye'):
print('passcode is OK. Continue')
else :
print('alert. Passcode is wrong.')
else :
print('alert. Username is wrong.')
答案 2 :(得分:0)
请注意,该程序完全按照您的要求进行操作。
首先测试input()
是"hello"
。如果是,则会打印'continue'
并跳过elif
和else
。
如果不是,它将测试另一个input()
是否等于"goodbye"
。如果是,则会打印'continue'
并跳过else
。
并且只有当第一个input()
不是'hello'
且第二个input()
不是'goodbye'
时,它才会打印'alert'
。
我认为你的意思是:
#login
if(input('username=')=='hello'):
print('continue')
else:
raise ValueError('alert')
if(input('passcode=')=='goodbye'):
print('continue')
else:
raise ValueError('alert')
答案 3 :(得分:0)
elif
语句为false时才会评估 if
语句。逐行跟踪每个案例,您应该看到正在发生的事情是您应该期待的。
不确定您希望它如何工作但可能是这样的
if(input('username=')=='hello' and input('passcode=')=='goodbye'):
print('continue')
else :
print ('alert')