我想得到这个
rawstr = input('enter a number: ')
try:
ival = abs(rawstr)
except:
ival = 'boob'
if ival.isnumeric():
print('nice work')
else:
print('not a number')
识别负数,但我不明白为什么无论输入什么它总是返回“不是数字”
这最初的目的是学习 try/except 函数,但我希望它也能识别负数,而不是为小于 0 的任何值返回“不是数字”
rawstr = input('enter a number: ')
try:
ival = int(rawstr)
except:
ival = -1
if ival > 0:
print('nice work')
else:
print('not a number')
^ 这是我想读取负数的原始代码
abs
函数需要一个 int,但在第一个代码块中,您向它传递了一个字符串。在第二个代码块中,您将字符串转换为 int——这是第一个代码块中缺少的。
所以结合两者:
ival = abs(int(rawstr))
第二个问题是
isnumeric
是字符串的方法,而不是数字的方法,所以不要像在第一个代码块中那样使用它,而 ival >= 0
作为 if
条件。