繁体   English   中英

检查用户输入后的 While/For/If Else 循环

[英]While/For/If Else Loop after checking user input

我是 Python 和学习新手。 我尝试编写代码

  1. 用户输入全名(带空格)
  2. 检查列表的重复(我使用拆分和连接来比较字符串)
  3. 如果发现重复,重新输入新名称
  4. 如果没有,简单地打破循环并打印“谢谢”
  5. 我只需要打印一次“重复”或“谢谢”,而不是多次使用 For 循环:(。

当我无法用我的代码(重复输入)或中断循环(在新名称之后)重新调用输入时,我的问题

列表=[“MT”、“史密斯詹金斯”、“PT”、“CP”]

while True:
    user=input("Your full name :")
    usercheck="".join(user.split())
    print(usercheck)

    for i in list:
        j="".join(i.split())
        if usercheck ==j:
            print("Duplicated ! Please enter new name")   
            
        else:
            print("Thanks")
        break 

谢谢你。

你需要考虑一下

  • 如果迭代中的当前名称相同:那是一个重复
  • 如果当前名称不同:你不能断定现在没有dup,你需要测试其他的

因此,您可以使用for/else构造,如果在循环中没有看到break ,则将执行else ,在您的情况下,如果没有找到重复项,您将能够中断 while 循环

names = []
while True:
    user = input("Your full name :")
    usercheck = "".join(user.split())
    print(usercheck)
    for name in names:
        j = "".join(name.split())
        if usercheck == j:
            print("Duplicated ! Please enter new name")
            break
    else:
        print("Thanks")
        break

如果这太棘手,您可以保留一个变量,以帮助您了解您是否看到了重复项

while True:
    user = input("Your full name :")
    usercheck = "".join(user.split())
    duplicated = False
    for name in names:
        j = "".join(name.split())
        if usercheck == j:
            print("Duplicated ! Please enter new name")
            duplicated = True
            break
    if duplicated:
        print("Thanks")
        break

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM