Сообщение об ошибке вместо запроса на повторный ввод - PullRequest
1 голос
/ 02 апреля 2019

Я делаю цену - правильная игра.В настоящее время я работаю над режимом игры, похожим на строку участника, в которой они угадывают цену товара.

Когда вам предлагается подать заявку, если вы вводите слово (вместо ставки),программа аварийно завершает работу и отображает следующую ошибку:

"Traceback (последний вызов был последним): файл" C: \ Users \ alexe \ AppData \ Local \ Programs \ Python \ Python36 \ Thepriceisright.py ", строка 36, в contestantrow () Файл "C: \ Users \ alexe \ AppData \ Local \ Programs \ Python \ Python36 \ Thepriceisright.py", строка 24, в contestantrow protagnum = int (input (Propername +), каков вашbid? ")) ValueError: недопустимый литерал для int () с основанием 10: 'alexei'"

Вот мой код:

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 Ответ

0 голосов
/ 02 апреля 2019
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")
...