#python #python-3.x #while-loop #python-module
#python #python-3.x #цикл while #python-module
Вопрос:
Я создаю игру «Цена правильная». В настоящее время я работаю над режимом игры, похожим на строку участника, где они угадывают цену предмета.
Когда он просит вас отправить заявку, если вы вводите слово (вместо ставки), программа завершает работу и отображает следующую ошибку:
«Обратная трассировка (последний последний вызов): Файл «C:UsersalexeAppDataLocalProgramsPythonPython36Thepriceisright.py «, строка 36, в файле contestantrow() «C:UsersalexeAppDataLocalProgramsPythonPython36Thepriceisright.py «, строка 24, в contestantrow protagnum=int(ввод(собственное имя «, какова ваша ставка?»)) Ошибка значения: недопустимый литерал для int() с основанием 10: ‘алексей'»
Вот мой код:
import random
print(" The Price is Sorta Right - 000776331")
welcomeplayer = True
contestantrow = True
def welcome():
while True:
global welcomeplayer
global propername
welcomeplayer = input("Please enter your name using only letters")
validname = welcomeplayer.isalpha()
propername = welcomeplayer.capitalize()
if validname == True:
print( propername, " ! Come on down! You're the next contestant on the Price is (sorta) right")
print (" Dew Drop welcomes " ,propername ," to contestants row joining EIMNOT A. HUMAN,ARTHURFICIAL EINTEL , ROBORT")
return
else:
print("Please only write letters on your name tag")
welcomeplayer = False
def contestantrow():
while True:
print("Dew Drop shows the price that you are bidding on")
protagnum=int(input(propername ", what is your bid?"))
if protagnum > 0:
componebid = random.randint(1,1000)
print("EIMNOT A. HUMAN bids: ",componebid)
comptwobid = random.randint(1,1000)
print("ARTHURFICIAL EINTEL bids: ",comptwobid)
compthreebid =random.randint(1,1000)
print("ROBORT bids: ",compthreebid)
else:
print(" Dew Drop says [Im sorry bids should start at atleast one dollar]")
contestantrow = False
welcome()
contestantrow()
Комментарии:
1. Используйте блок Try / Exception вокруг этого блока кода, чтобы перехватить значение ошибки исключения и запросить другой ввод
Ответ №1:
protagnum=int(input(propername ", what is your bid?"))
Вы преобразуете int / string в int. «1» будет работать, но «a» вызовет ошибку ValueError
while True:
try:
protagnum=int(input(propername ", what is your bid?"))
break
except ValueError:
print("Invalid bid, please try again")
Комментарии:
1. Я попробовал это, и когда я ввел строку, выскочила ошибка. Я сохранил часть if protagnum> 0, потому что ставка должна быть не менее 1 доллара, и это не может быть текст.