簡體   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