我目前正在尝试使用Eric Matthes撰写的 Python Crash Course 一书来教自己Python,而且我似乎在使用if测试来测试空列表时遇到了练习5-9的困难
以下是问题:
5-9。无用户:向hello_admin.py添加if测试以确保用户列表不为空。
•如果列表为空,请打印消息我们需要找到一些用户!
•从列表中删除所有用户名,并确保打印出正确的消息。
以下是来自hello_admin.py的代码:
usernames = ['admin', 'user_1', 'user_2', 'user_3', 'user_4']
for username in usernames:
if username is 'admin':
print("Hello admin, would you like to see a status report?")
else:
print("Hello " + username + ", thank you for logging in again.")
现在这是我的5-9代码,它没有输出任何内容:
usernames = []
for username in usernames:
if username is 'admin':
print("Hello admin, would you like to see a status report?")
else:
print("Hello " + username + ", thank you for logging in again.")
if usernames:
print("Hello " + username + ", thank you for logging in again.")
else:
print("We need to find some users!")
是否有人对我的代码输出原因没有任何反馈:"我们需要找到一些用户!"感谢您的时间。 :)
答案 0 :(得分:2)
它没有输出任何内容,因为if
和else
块位于for
循环内,迭代usernames
。由于usernames
是一个空列表,因此它不会迭代任何内容,因此不会到达任何条件块。
你可能想改为:
usernames = []
for username in usernames:
if username is 'admin':
print("Hello admin, would you like to see a status report?")
else:
print("Hello " + username + ", thank you for logging in again.")
if usernames:
print("Hello " + username + ", thank you for logging in again.")
else:
print("We need to find some users!")
但是,这会两次打印usernames
列表中的最后一个用户名。
答案 1 :(得分:0)
第一个if-else应该进入for循环。第二个if else块应该出来。
usernames = []
for username in usernames:
if username is 'admin':
print("Hey admin")
else:
print("Hello " + username + ", thanks!")
if usernames:
print("Hello " + username + ", thanks again.")
else:
print("Find some users!")