我是 Python 和學習的新手。我正在嘗試撰寫一個程式來:
- 用戶輸入全名(帶空格)
- 檢查串列的重復(我使用拆分和連接來比較字串)
- 如果發現重復,重新輸入新名稱
- 如果沒有,只需打破回圈并列印“謝謝”
- 我只需要列印一次“重復”或“謝謝”,而不是使用 For 回圈多次。
我的問題是當我無法用我的代碼(重復輸入)或中斷回圈(在新名稱之后)重新呼叫輸入時
list=["M T", "Smith Jenkins", "P T", "C P"]
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
uj5u.com熱心網友回復:
你需要考慮一下
- 如果迭代中的當前名稱相同:那是一個重復
- 如果當前名稱不同:您不能斷定現在沒有 dup,您需要測驗其他名稱
所以你可以使用for/else構造,如果在回圈中else沒有看到,將執行break,在你的情況下,如果沒有找到重復,你將能夠打破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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/504630.html
