python中的负数

问题描述 投票:0回答:1

我想得到这个

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')

^ 这是我想读取负数的原始代码

python-3.x negative-number negative-integer
1个回答
0
投票

abs
函数需要一个 int,但在第一个代码块中,您向它传递了一个字符串。在第二个代码块中,您将字符串转换为 int——这是第一个代码块中缺少的。

所以结合两者:

ival = abs(int(rawstr))

第二个问题是

isnumeric
是字符串的方法,而不是数字的方法,所以不要像在第一个代码块中那样使用它,而
ival >= 0
作为
if
条件。

© www.soinside.com 2019 - 2024. All rights reserved.