题目中就是因为有个7.6,在int('7.6')的时候出错了。可以直接将int(s)改成float(s),强制将所有数字都变成浮点数,运行就正常了。
另一种是判断一下,其中有小数点的变成浮点,没有的小数点的变成整数。如下所示。运行也正常。
def str2num(s):
if s.find('.'):
return float(s)
else:
return int(s)
楼上使用 find() 方法判断有问题。如果没有小数点,则返回 -1 ,而 if -1 结果是 True,所以应该使用 if '.' in s,判断 s 中是否包含小数点。
你这种答案虽然结果正确但仍然是判0分的。
因为这次的测试是关于捕获报错信息的try、except、finally语句的练习,你的回答完全没有用到这些语句。
Sign in to make a reply
用户7296618635
题目中就是因为有个7.6,在int('7.6')的时候出错了。可以直接将int(s)改成float(s),强制将所有数字都变成浮点数,运行就正常了。
另一种是判断一下,其中有小数点的变成浮点,没有的小数点的变成整数。如下所示。运行也正常。
def str2num(s):
if s.find('.'):
return float(s)
else:
return int(s)