更简单的验证输入的方法是 >0 in Python?

Easier way to verify input is >0 in Python?

我已经编写了函数 enterReadings 让用户输入一个数字,并且我已经进行了以下验证以确保它是一个正整数。我在想有一种更简单的方法来写这篇文章,但不知道从哪里开始,非常感谢任何帮助!

def enterReadings(message):
    while True:
        try:
            readingsCount = int(input(message))
            if readingsCount <= 0:
                print("Please enter a positive integer")
                continue
            break
        except ValueError:
            print("Please enter a positive integer")
            readingsCount = 0
        if readingsCount > 0:  
            readingsCount += readingsCount
            return readingsCount

我认为绝对可以,你检查一个输入是否是一个数字(int)并且是正数。

Clear is better than clever.

短一点:

def enterReadings(message):
    while True:
        try:
            readingsCount = int(input(message))
            assert readingsCount > 0
            return readingsCount
        except:
            print("Please enter a positive integer")

顺便说一句,为什么要加倍 readingsCount?那是你想要的吗?

在python中,int也可以为负数,所以要查一下。

Python 3.8+:

def enterReadings(message):
    while True:
        try:
            if (n := int(input(message))) > 0:
                return 2*n
        except ValueError:
            pass
        print("Please enter a positive integer")