Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中if语句中的多个变量_Python_Validation_Max_Min - Fatal编程技术网

Python中if语句中的多个变量

Python中if语句中的多个变量,python,validation,max,min,Python,Validation,Max,Min,我试图在一个简单的min max程序中验证用户输入。我有多个输入的整数,我试图有一个if语句,用于所有输入的值,如果它不是整数,则输出错误消息。当我尝试它的设置方式时,我可以输入整数和非整数,最后它会出错,说: 如果(数字1、数字2、数字3、数字4、数字5)。isdigit(): AttributeError:“tuple”对象没有属性“isdigit” 下面是完整的代码 # Print welcome message print('Please enter five integers to f

我试图在一个简单的min max程序中验证用户输入。我有多个输入的整数,我试图有一个if语句,用于所有输入的值,如果它不是整数,则输出错误消息。当我尝试它的设置方式时,我可以输入整数和非整数,最后它会出错,说:

如果(数字1、数字2、数字3、数字4、数字5)。isdigit():

AttributeError:“tuple”对象没有属性“isdigit”

下面是完整的代码

# Print welcome message
print('Please enter five integers to find the minimum and maximum values.')

# Take 5 numbers from user and convert that to integer and store in variables
validInteger = False
while not validInteger:
    number1 = input('Enter your first integer: ')
    number2 = input('Enter your second integer: ')
    number3 = input('Enter your third integer: ')
    number4 = input('Enter your fourth integer: ')
    number5 = input('Enter your fifth integer: ')
    if (number1, number2, number3, number4, number5).isdigit():
        validInteger = True
else: 
    print('Please enter an integer I.E. 13.')


# Call max function to calculate max value 
max =max(number1,number2,number3,number4,number5)

# Call min function to calculate min value 
min = min(number1,number2,number3,number4,number5)

# Print max number
print('Max value is: ' + str(max))

# Print min number
print('Min value is: ' + str(min))

您需要依次对每个输入字符串调用
isdigit()
方法:

if all(n.isdigit() for n in [number1, number2, number3, number4, number5]):
    validInteger = True
all()
函数检查结果并返回
True
,如果它们都是
True

您应该使用:

if all(x.isdigit() for x in (number1, number2, number3, number4, number5)):
    validInteger = True

为什么会出现错误?

(number1,number2,number3,number4,number5)
形成一个元组,元组没有
isdigit()
方法:

>>> type((number1, number2, number3, number4, number5))
<class 'tuple'>

谢谢你,这更有意义。如果我想检查输入的每个值,并在其中一个值出错时显示错误消息,而不是在最后显示错误消息,那么我可以使用相同的整数检查过程吗?@willklingstein,当然可以。您可以采用类似的方法。请不要忘记按答案左侧的勾号,将有用的答案标记为已接受。请参阅
>>> 'abc'.isdigit()
False
>>> '123'.isdigit()
True