在提到的练习中有这样的代码:
from sys import exit
def gold_room():
print "This room is full of gold. How much do you take?"
next = raw_input("> ")
if "0" in next or "1" in next:
how_much=int(next)
else:
dead("Man, learn to type a number.")
if how_much < 50:
print "Nice, you're not greedy, you win!"
exit (0)
else:
dead ("You greedy bastard!")
在第7行,我想用正则表达式[0-9]代替0或1,这样任何插入的数字都会传递到下一个if语句,所以我将其替换为:
if next == [0-9]:
但是插入任何数字后我收到错误消息:
Man, learn to type a number.
我不明白出了什么问题。
感谢您的帮助
试试这个:
try:
how_much = int(next)
except ValueError:
dead("Man, learn to type a number.")
这会将您的输入转换为整数,除非 next
无法转换为整数。 Read this to learn more about errors and exceptions .
如果您坚持使用正则表达式,那么您绝对不应该这样做:
if re.match("\d+", next):
how_much = int(next)
请不要使用正则表达式。
我是一名优秀的程序员,十分优秀!