Python 为什么for循环在列表末尾返回一个空列表值?
我编写了一段简单的Python代码,用来比较列表Python 为什么for循环在列表末尾返回一个空列表值?,python,Python,我编写了一段简单的Python代码,用来比较列表当前的_用户名(正在尝试登录的用户)和列表用户名(已经登录的用户)。如果current\u usernames中的用户已在usernames中,则将拒绝该用户,否则将向该用户致意。如果当前的\u用户名中没有用户,那么应该只有一个输出说明:此时系统中没有用户 代码: usernames = ["User1", "User2", "User3", "User4", "User5", "Admin"] current_usernames = ["User
当前的_用户名
(正在尝试登录的用户)和列表用户名
(已经登录的用户)。如果current\u usernames
中的用户已在usernames
中,则将拒绝该用户,否则将向该用户致意。如果当前的\u用户名中没有用户
,那么应该只有一个输出说明:此时系统中没有用户
代码:
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!
问题:
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循环返回此时系统中没有用户代码>在循环的末尾
我希望循环在Hello User5
之后停止,因为当前的\u用户名中没有更多的用户。for
循环的else
子句在循环正常完成时触发,而不是通过break
语句。由于循环不包含中断
,因此将始终触发其他
else
子句背后的思想是更容易编写类似线性搜索的内容:
for x in sequence:
if x == key:
print('found it')
break
else:
print('Not found')
您似乎混淆了for
循环后面的else
和条件语句中通常出现的else
以下内容可以满足您的要求:
if current_users:
for current_user in current_usernames:
...
else:
print('No users currently trying to get into the system')
for
循环的else
子句在循环正常完成时触发,而不是通过break
语句触发。由于循环不包含中断
,因此将始终触发其他
else
子句背后的思想是更容易编写类似线性搜索的内容:
for x in sequence:
if x == key:
print('found it')
break
else:
print('Not found')
您似乎混淆了for
循环后面的else
和条件语句中通常出现的else
以下内容可以满足您的要求:
if current_users:
for current_user in current_usernames:
...
else:
print('No users currently trying to get into the system')
你会在这里得到一个解释:你会在这里得到一个解释:是的,如果在开始的建议声明修复了它!感谢您对中断声明的帮助和解释。@Arash。这是一个非常模糊的结构,可以追溯到语言的开始。现在几乎每个用例都有更方便的构造,所以很少有人遇到它。是的,开始时的if语句建议修复了它!感谢您对中断声明的帮助和解释。@Arash。这是一个非常模糊的结构,可以追溯到语言的开始。现在几乎每个用例都有更方便的构造,所以很少有人遇到它。