但是,当我试图在下面的代码中使用它时,当我输入任何数字和非数字的混合时,我的程序会崩溃,并出现“invalid literal for int()with base 10”错误,例如“fsd7sfd”或类似的错误。(代码可以很好地处理纯数字字符串或纯字母字符串。)
我不明白这是怎么发生的,因为据我所知,“how\u much=int(choice)”的赋值永远不会发生,除非字符串的第一个位置只包含数字选择.isdigit()是真的。在
有人能帮我理解我缺少什么吗?在
顺便说一句,“print”test“”行似乎在出错之前也没有得到处理,这增加了我的困惑。在
错误:This room is full of gold. How much do you take?
> sdfgsd8sd
Traceback (most recent call last):
File "ex35.py", line 79, in
start()
File "ex35.py", line 71, in start
bear_room()
File "ex35.py", line 36, in bear_room
gold_room()
File "ex35.py", line 9, in gold_room
how_much = int(choice)
ValueError: invalid literal for int() with base 10: 'sdfgsd8sd'
代码:
^{pr2}$