正如其他答案所提到的,int
如果字符串输入不能转换为 int(例如浮点数或字符),则操作将崩溃。您可以做的是使用一些辅助方法来尝试为您解释字符串:
def interpret_string(s):
if not isinstance(s, basestring):
return str(s)
if s.isdigit():
return int(s)
try:
return float(s)
except ValueError:
return s
所以它将接受一个字符串并尝试将其转换为 int,然后浮点数,否则返回字符串。这只是查看可转换类型的一般示例。如果您的值从该函数中返回仍然是一个字符串,那将是一个错误,然后您需要向用户报告并要求新的输入。
None
如果它既不是浮点数也不是整数,可能会返回一个变体:
def interpret_string(s):
if not isinstance(s, basestring):
return None
if s.isdigit():
return int(s)
try:
return float(s)
except ValueError:
return None
val=raw_input("> ")
how_much=interpret_string(val)
if how_much is None:
# ask for more input? Error?