我正在尋找處理用戶在串列中輸入的方式,如果用戶輸入字母(字串)而不是數字(整數),它會提示用戶他輸入了無效值并提示用戶再次嘗試。這里有一些代碼:
def get_list_from_user(): # Prompt the user for a list of number
while True:
user_list = input(f"Enter {difficulty} number separated by space: ")
user_list = user_list.split()
user_list = [int(i) for i in user_list]
if not len(user_list) == difficulty:
print(f"Please chose {difficulty} number separated by space: ")
else:
break
saved_user_list = user_list
return saved_user_list
uj5u.com熱心網友回復:
您可以使用此代碼。
def get_list_from_user(): # Prompt the user for a list of number
while True:
user_list = input(f"Enter {difficulty} number separated by space: ")
user_list = user_list.split()
try:
user_list = [int(i) for i in user_list ]
except:
print("entered an invalid value")
continue
if not len(user_list) == difficulty:
print(f"Please chose {difficulty} number separated by space: "
else:
break
saved_user_list = user_list
return saved_user_list
uj5u.com熱心網友回復:
我建議使用例外處理程式(try/except)。這是一種方法:
difficulty = 3
def get_list_from_user(): # Prompt the user for a list of number
while True:
user_list = input(f"Enter {difficulty} numbers separated by space: ").split()
try:
user_list = [int(i) for i in user_list]
if len(user_list) != difficulty:
raise ValueError
return user_list
except ValueError:
print('Invalid input')
print(get_list_from_user())
uj5u.com熱心網友回復:
您可以使用 try, except 陳述句。如果 int() 失敗,它將拋出我們處理的例外。
try:
user_list = [int(i) for i in user_list]
except ValueError:
print("Invalid value")
完整代碼:
def get_list_from_user(): # Prompt the user for a list of number
while True:
user_list = input(f"Enter {difficulty} number separated by space: ")
user_list = user_list.split()
try:
user_list = [int(i) for i in user_list]
except ValueError:
print("Invalid value")
continue
if not len(user_list) == difficulty:
print(f"Please chose {difficulty} number separated by space: ")
else:
break
saved_user_list = user_list
return saved_user_list
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/411293.html
標籤:
