ValueError:以10为底的int()的无效文字:'stop'

每次我尝试编码时,它都可以工作,但是当我键入代码时'stop',会出现错误:


ValueError:以10为底的int()的无效文字:'stop'


def guessingGame():

    global randomNum

    guessTry = 3


    while True:

        guess = input('Guess a Number between 1 - 10, You have 3 Tries, or Enter Stop:  ')

        if int(guess) == randomNum:

            print('Correct')

            break


        if int(guess) < randomNum:

            print('Too Low')

            guessTry = guessTry - 1

            print('You have, ' + str(guessTry) + ' Guesses Left')


        if int(guess) > randomNum:

            print('Too High')

            guessTry = guessTry - 1

            print('You have, ' + str(guessTry) + ' Guesses Left')


        if guessTry == 0:

            print('You have no more tries')

            return


        if str(guess) == 'stop' or str(guess) == 'Stop':

            break


料青山看我应如是
浏览 213回答 3
3回答

Qyouu

这是一个更加Pythonic(Python 3)的版本。def guessing_game(random_num):&nbsp; &nbsp; tries = 3&nbsp; &nbsp; print("Guess a number between 1 - 10, you have 3 tries, or type 'stop' to quit")&nbsp; &nbsp; while True:&nbsp; &nbsp; &nbsp; &nbsp; guess = input("Your number: ")&nbsp; &nbsp; &nbsp; &nbsp; try:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; guess = int(guess)&nbsp; &nbsp; &nbsp; &nbsp; except (TypeError, ValueError):&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if guess.lower()&nbsp; == 'stop' :&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print("Invalid value '%s'" % guess)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue&nbsp; &nbsp; &nbsp; &nbsp; if guess == random_num:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print('Correct')&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return&nbsp; &nbsp; &nbsp; &nbsp; elif guess < random_num:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print('Too low')&nbsp; &nbsp; &nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print('Too high')&nbsp; &nbsp; &nbsp; &nbsp; tries -= 1&nbsp; &nbsp; &nbsp; &nbsp; if tries == 0:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print('You have no more tries')&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return&nbsp; &nbsp; &nbsp; &nbsp; print('You have %s guesses left' % tries)

jeck猫

您正在尝试将字符串“ stop”转换为整数。该字符串没有有效的整数表示形式,因此会出现该错误。你应该放if str(guess) == 'stop' or str(guess) == 'Stop':break作为第一张支票另一个建议是在输入上使用小写字母,然后检查小写字母“ stop”。这样,您只需要检查一次,它将捕获“停止”,“停止”,“断点”等。if str(guess).lower() == 'stop':break
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python