为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

料青山看我应如是 2021-03-25 18:19:33
每次我尝试编码时,它都可以工作,但是当我键入代码时'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
查看完整描述

3 回答

?
Qyouu

TA贡献1786条经验 获得超11个赞

这是一个更加Pythonic(Python 3)的版本。


def guessing_game(random_num):

    tries = 3

    print("Guess a number between 1 - 10, you have 3 tries, or type 'stop' to quit")


    while True:

        guess = input("Your number: ")

        try:

            guess = int(guess)

        except (TypeError, ValueError):

            if guess.lower()  == 'stop' :

                return

            else:

                print("Invalid value '%s'" % guess)

                continue


        if guess == random_num:

            print('Correct')

            return

        elif guess < random_num:

            print('Too low')

        else:

            print('Too high')


        tries -= 1

        if tries == 0:

            print('You have no more tries')

            return


        print('You have %s guesses left' % tries)


查看完整回答
反对 回复 2021-03-26
?
jeck猫

TA贡献1909条经验 获得超7个赞

您正在尝试将字符串“ stop”转换为整数。该字符串没有有效的整数表示形式,因此会出现该错误。你应该放


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

break

作为第一张支票


另一个建议是在输入上使用小写字母,然后检查小写字母“ stop”。这样,您只需要检查一次,它将捕获“停止”,“停止”,“断点”等。


if str(guess).lower() == 'stop':

break


查看完整回答
反对 回复 2021-03-26
  • 3 回答
  • 0 关注
  • 212 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号