我是一个Python新手,试图解决以下问题:
执行以下操作创建一个程序,模拟网站如何确保每个人都有一个唯一的用户名。
创建一个包含五个或更多用户名的列表,称为current_users。创建另一个包含五个用户名的列表,称为new_users。确保一个或两个新用户名也在current_users列表中。循环遍历new_users列表,查看每个新用户名是否已被使用。如果有,则打印一条消息,提示用户需要输入新的用户名。如果用户名尚未使用,则打印一条消息,说明该用户名可用。
确保您的比较不区分大小写。如果使用了“John”,则不应接受“JOHN”。
这是我得出的答案:
current_users = ['kenny1', 'kenny2', 'kenny3', 'kenny4', 'kenny5']
current_users_upper = [user.upper() for user in current_users]
new_users = ['kenny5', 'kenny6', 'kenny7', 'kenny8', 'kenny9']
for new_user in new_users:
if new_user.upper() in current_users_upper:
print(f"The username {new_user} is already taken. Please choose another username")
else:
print(f"The username {new_user} is available.")
我通过将用户名'kenny 5'更改为UPPER case,lower case,Title case和RaNdOm case来测试此代码,它的代码捕获了'kenny 5'。我不知道这个代码是正确的。对我来说,我们需要运行另一个for循环来检查new_users列表和current_users列表,以测试'KENNY 5'是否被再次使用。类似于:
current_users = ['kenny1', 'kenny2', 'kenny3', 'kenny4', 'kenny5']
current_users_upper = [user.upper() for user in current_users]
new_users = ['kenny5', 'kenny6', 'kenny7', 'kenny8', 'kenny9']
for new_user in new_users:
if new_user.upper() in current_users_upper:
print(f"The username {new_user} is already taken. Please choose another username")
elif new_user in current_users:
print(f"The username {new_user} is already taken. Please choose another username")
else:
print(f"The username {new_user} is available.")
我也检查了解决方案手册,这是一个公认的答案。这个回答够彻底吗?谢谢你!
1条答案
按热度按时间tyu7yeag1#
我不知道这个代码是正确的。对我来说,我们需要运行另一个for循环来检查new_users列表和current_users列表,以测试'KENNY5'是否被再次使用。类似于:
如果您这样做,您将与当前用户进行区分大小写的比较。但是如果你的程序到达了
elif new_user in current_users:
行,这意味着不区分大小写的比较没有返回匹配项。如果不区分大小写的比较没有返回匹配项,则保证区分大小写的版本也没有返回匹配项。区分大小写的比较比不区分大小写的比较在匹配方面有更多的限制。