我编写了一段简单的Python代码,用来比较listcurrent_usernames
(尝试登录的用户)和listusernames
(已经登录的用户)。如果来自current_usernames
的用户已经在usernames
中,该用户将被拒绝,否则该用户将受到欢迎。如果current_usernames
中没有用户,那么应该只有一个输出,即:There are no users in the system at this point
。你知道吗
代码:
usernames = ["User1", "User2", "User3", "User4", "User5", "Admin"]
current_usernames = ["User6", "User7", "User3", "User8", "User5"]
for current_user in current_usernames:
if current_user not in usernames:
if current_user == "Admin":
print("Hello Admin!!! Welcome back!")
else:
print("Hello " + current_user)
else:
print("Sorry, " + current_user + " is already logged in.")
else:
print("There are no users in the system at this point!")
输出:
Hello User6
Hello User7
Sorry, User3 is already logged in.
Hello User8
Sorry, User5 is already logged in.
There are no users in the system at this point!
问题:
为什么for循环在循环的末尾返回There are no users in the system at this point!
?你知道吗
我希望循环在Hello User5
之后停止,因为在current_usernames
左侧没有更多的用户。你知道吗
for
循环的else
子句在循环正常完成时触发,而不是通过break
语句触发。由于循环不包含break
,因此else
将始终被触发。你知道吗else
子句背后的思想是使编写类似线性搜索的内容更容易:似乎您混淆了
else
循环后面的for
和通常在条件语句中找到的else
以下内容将满足您的要求:相关问题 更多 >
编程相关推荐