我的Python代码没有输出任何东西?

时间:2016-08-30 23:17:18

标签: python

我目前正在尝试使用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!")

是否有人对我的代码输出原因没有任何反馈:"我们需要找到一些用户!"感谢您的时间。 :)

2 个答案:

答案 0 :(得分:2)

它没有输出任何内容,因为ifelse块位于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!")