为什么当用户在Python 3.x中输入负数时,我的随机数生成器没有给予正确的消息?

wbrvyc0a  于 2023-05-30  发布在  Python
关注(0)|答案(1)|浏览(151)
import random

max_number = input("Please type in the highest number for the range: ")

if max_number.isdigit():
    max_number = int(max_number)
    if max_number <= 0:
        print("Please type a number larger than 0")
        quit ()
else:
    print('Please type a number')
    quit()

random_number = random.randint( 0 , max_number )

print(random_number)

我正在做一个随机数生成器,但是当我输入一个像-9这样的数字时,它仍然给我一个数字。请输入一个数字,而不是请输入一个大于0的数字。
我期待第一个打印结果,但得到了第二个

zpf6vheq

zpf6vheq1#

这是因为这里找到的.isdigit()逻辑。

"9".isdigit() -> True
"-9".isdigit() -> False

您需要修改代码以使用正则表达式,或者如果-是输入的第一个字符,则将其删除。
这里也有一个小的整数备忘录:https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch06s01.html

相关问题