所以我正在尝试在python中创建代码以进一步理解语言,并且部分地为了好玩:),无论如何,我正在尝试制作一个时钟进出员工的程序。但是当我输入用户名和密码登录到它并不知道预设的管理员服务时,我感到困惑。登录详细信息。 这是我的代码:主要部分已加星标
**username = ['Admin']
password = ['admin']**
def login():
print()
print("Welcome to the Enterprise clock in and clock out system")
print()
un = input("Please enter your name: ")
print()
pw = input("And password: ")
**for i in username and password:
if un == username and pw == password:
main()**
else:
print()
print("The username or password was incorrect")
login()
def main():
print("Welcome to Enterprise")
print()
print("What would you like to do?\n")
ch = input("Choice: ")
print()
print("1 - Clock in")
print("2 - Clock in")
print("3 - Add new employee")
login()
main()
答案 0 :(得分:3)
username
和password
是列表,un
和pw
是字符串,但是你&#39 ;试着比较它们,这没有用。
您可以尝试这样做:
for pair in zip(username, password):
if (un, pw) == pair: main()
答案 1 :(得分:2)
这里可能更好的方法是使用字典而不是列表。 而不是:
username = ['Admin']
password = ['admin']
做类似的事情:
creds = {'Admin':'admin'}
这样你就不需要循环了,你可以检查:
if creds.has_key(un) and creds[un] == pw:
#rest of code
has_key
方法很重要,因为如果您尝试访问不存在的密钥,则会引发错误。
答案 2 :(得分:0)
您已将username
和password
放入列表中。因此,将输入(默认为字符串)与列表进行比较,不会相同。
如果你把它放入空闲状态:
var1 = ["Admin"]
var2 = "Admin"
var1 == var2
False
但您也可以将列表编入索引:
var1[0] == var2
True