【Python】Python编程从入门到实践课后题5-10

最近在看Python,经典书目《Python编程从入门到实践》,1-12章先大致看了一遍,反过来复敲代码,到第一章79页的5-10卡了一下,记录一下。

原题:5-10 检查用户名:按下面的说明编写一个程序,模拟网站确保每位用户的用户名都独一无二的方式。
1.创建一个至少包含5 个用户名的列表,并将其命名为current_users
2.再创建一个包含5 个用户名的列表,将其命名为new_users,并确保其中有一两 个用户名也包含在列表current_users 中。
3.遍历列表new_users,对于其中的每个用户名,都检查它是否已被使用。如果是 这样,就打印一条消息,指出需要输入别的用户名;否则,打印一条消息,指 出这个用户名未被使用。
4.确保比较时不区分大小写,换句话说,如果用户名“John”已被使用,应拒绝用户名“JOHN”。

看79页几个条件很简单,一翻还有第80页一个条件,“确保比较时不区分大小写”,头大,这是第五章,前面学过哪些,变量,数据类型,列表,列表操作,for循环,if语句。想着用i 1.判断在不在里面好说,for in就可以解决

for new_user in new_users

2.new_users的大小写好处理,均转换为小写
new_user.lower()
3.这个肯定要用循环目前学会的循环只有for,那只能用for循环

for current_user in current_users:

4.前面没学过把整个列表改为小写,但学过弹出和写入,那么就是pop和append,一开始想着将current_users弹到另一个空列表c_users完事,但发现弹出后for循环就异常,这里只能引入第三个列表,然后将current_users赋值给current_users2

current_users2 = current_users[:]
c_users = []
for current_user in current_users:
    c_users.append(current_users2.pop(0).lower())
    print(c_users)

完整代码:

current_users = ['Yyq','XYZ','msN','MHt','ADMIN','root']
new_users = ['yyq','test2','test1','test','admin','root']
# len = len(current_users)
current_users2 = current_users[:]
c_users = []
for current_user in current_users:
    c_users.append(current_users2.pop(0).lower())
    print(c_users)

for new_user in new_users:
    if new_user.lower() in c_users:
        print(new_user + " is in use , please input another.")
    else:
        print(new_user +" is not in use , you can create it.")

新手刚学,有问题请多指教。

你可能感兴趣的:(Python小白,Python)