题解 | #禁止重复注册#

禁止重复注册

https://www.nowcoder.com/practice/43acd439112c4b85a9168ad3dd7e2bd1

此问题的重点在于:不区分名字的大小写,故新老用户名单均需upper或lower后一一对比

以下是对评论区方法以及涉及知识点的整理:

方法一:两列表分别循环——先处理好老用户列表,再拿新用户名称一一对应【逻辑简单!】

current_users=['Niuniu','Niumei','GURR','LOLO']
new_users=["GurR",'Niu Ke Le','LoLo','Tuo Rui Chi']
current=[username.lower() for username in current_users]
for name in new_users:
    if name.lower() in current:
        print('The user name '+name+' has already been registered! Please change it and try again!')
    else:
        print('Congratulations, the user name '+name+' is available!')

方法二:嵌套循环

current_users=['Niuniu','Niumei','GURR','LOLO']
new_users=["GurR",'Niu Ke Le','LoLo','Tuo Rui Chi']
for name in new_users:
    for i in range(0,4):
        if name.lower()==current_users[i].lower():
            print('The user name '+name+' has already been registered! Please change it and try again!')
            break ##及时跳出循环,防止后续碰到其他不等值继续else
    else:
        print('Congratulations, the user name '+name+' is available!')

此处需要注意if-else的位置以及break的存在:

- 满足if:break可跳出当前循环,

- 当循环结束if都不曾满足才会执行else

break知识点:

1. for循环+break

  • 只有if :对循环内每个对象执行if,遇break就终止循环

  • If-else且同级:对循环内每个对象执行if-else,遇break终止循环

  • If-else但else在外层:对循环内每个对象执行if,遇break终止;

若整个循环都未终止,则执行else(见本题情况)

2. 利用break终止内外循环:

  • 内循环

  • 外循环(内循环break前加一个flag即可)

参考:https://blog.csdn.net/yinlu521wang/article/details/99461129?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167772841916800222843342%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167772841916800222843342&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-2-99461129-null-null.142^v73^insert_down2,201^v4^add_ask,239^v2^insert_chatgpt&utm_term=python%20break&spm=1018.2226.3001.4187

全部评论

相关推荐

评论
20
3
分享

创作者周榜

更多
牛客网
牛客企业服务