更简单的验证输入的方法是 >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")
我已经编写了函数 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")