我正在为计费程序项目编写条件语句。对于我认识的初学者来说,它有点先进,但我欢迎挑战。无论如何,我打算通过询问用户名和密码来启动程序。所以这是我对该计划的第一次编码。
print ("Hello and welcome to Billing Pro, please enter your username and password to access the database.")
username = input ("Enter username:")
if username == "cking" or "doneal" or "mcook":
print ("Valid username.")
else:
print ("Invalid username. Please try again.")
password = input ("Enter password:")
if password == "rammstein1" or "theory1" or "tupac1":
print ("Valid password. User has been verified.")
else:
print ("Invalid password. Access denied.")
现在,当我运行此代码时,如果我输入了除用户名Python的三个选项以外的任何内容,则打印出“无效的用户名”#39;线。由于某种原因,它打印出有效的用户名'然后继续密码提示。此外,如果我输入除密码选择以外的任何内容,它将始终读出有效密码'提示。
当用户输入除三个选项之外的其他内容时,如何循环用户名提示?我应该使用while语句而不是if-else,还是可以将while语句放在if-else语句的末尾以再次触发提示?
哦,我知道你不能告诉我,因为我在问题中使用了糟糕的格式,但我确实在脚本本身上使用了适当的缩进。
答案 0 :(得分:4)
布尔表达式本身的问题是它们总是为真。
if a == 'b' or 'c'
与if (True|False) or 'c'
类似,由于'c'
为truthy,因此无论第一个表达式(a == 'b'
)如何,它都为真。
您要么a == 'b' and a == 'c'…
要么更简洁a in {'b', 'c'…}
,这会检查a
是否是该集合的成员。
如果你想循环,请使用循环:)
while username not in {"cking", "doneal", "mcook"}:
print ("Invalid username. Please try again.")
username = input ("Enter username:")
print ("Valid username.")
答案 1 :(得分:4)
您需要将您的名字与所有名称进行比较。问题出在这里:
if username == "cking" or "doneal" or "mcook":
Python首先将其评估为true或false,然后使用某些内容执行or
,在此上下文中评估为True
,最后您的比较如下所示:
if username == "cking" or True or True:
最终成为True。建议您使用:
if username == "cking" or username == "doneal":
或只是做:
if username in ("cking", "doneal"):
这同样适用于密码。
答案 2 :(得分:0)
我认为此代码可以帮助您
from sys import argv
username=raw_input("Enter user name")
password=raw_input("Enter password")
if(username=="VARUN" or "Varun" or "varun"):
print "\n\tvalid Username "
else:
print "\n\tUsername already existes"
if (password=="@ppu1131986"):
print "\n\tPasssowrd matched"
else:
print "\n\tWeak Password"
~
答案 3 :(得分:0)
print ("Hello, welcome to Facebook, please enter your username and password to access.")
username = input ("Enter username:")
if username == "cking":
print ("Valid username.")
else:
print ("Invalid username. Please try again.")
username = input ("Enter username:")
if username == "cking":
print ("Valid username.")
else:
print ("Invalid username. Please try again.")
password = input ("Enter password:")
if password == "tupac1":
print ("Valid password. User has been verified.")
else:
print ("Invalid password. Access denied.")
password = input ("Enter password:")
if password == "tupac1":
print ("Valid password. User has been verified.")
else:
print ("Invalid password. Access denied.")