import sys
v_user = ""
v_pass = ""
v_lock = ""
print "Unlock first "
v_lock = str(raw_input("> "))
while v_lock == "lock":
print "Connected..."
print "Enter user:"
v_user = str(raw_input("> "))
print "Enter password"
v_pass = str(raw_input("> "))
if v_user != "user1" or v_pass != "user1":
print "Wrong user and password, try again..."
print "Reconnecting.."
else:
print "Acces granted, system unlocked"
sys.exit();
print "Wrong word for unlocking, exiting..."
所以我有上面的代码,我不太了解while
结构。
我不知道如何仅使用exit()
方法退出它。如何以更合理,更清洁的方式完成?
上面的文章写得有多糟糕或有多好?
答案 0 :(得分:1)
您可以将v_lock设置为""而不是sys.exit()。或者除了锁定之外的任何其他内容。 while循环将评估为False然后将绕过循环并选择:' print"错误的单词用于解锁,退出...&#34 ;; '
答案 1 :(得分:1)
在代码中可以更好地完成许多事情。
1)遵循4个空格的缩进练习。这是python缩进标准。
2)原始输入可以在输入期间显示一个字符串。因此你可以摆脱许多冗余的打印语句
3)根据其他人的建议,删除“;”。它们在python中不是必需的
4)不要使用sys.exit(),而是将v_lock的值设置为其他值,这将使while循环条件为false。
5)您无需在开头声明或初始化变量(v_lock,v_user和v_pass)。
我将您的代码格式化为如下所示:
v_lock = raw_input("Unlock first \n>")
while v_lock == "lock":
print "Connected..."
v_user = raw_input("Enter user:")
v_pass = raw_input("Enter password:")
if v_user != "user1" or v_pass != "user1":
print "Wrong user and password, try again..."
print "Reconnecting.."
else:
print "Acces granted, system unlocked"
v_lock = "unlock"
print "Wrong word for unlocking, exiting..."
希望这有帮助!