Python中if语句中的多个变量

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

我正在尝试通过简单的最小最大程序来验证用户输入。我有多个输入的整数,并且我尝试为所有输入值使用一个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))
python validation max min
2个回答
0
投票

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

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

all()函数检查结果,如果结果全为True,则返回True


0
投票

您应使用:

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

[isdigit()是字符串的方法。

isdigit()
© www.soinside.com 2019 - 2024. All rights reserved.