Python 3.7输入数据无法被循环识别

时间:2019-03-16 22:25:12

标签: loops input

在您的IDE中复制并粘贴此代码,然后运行它。输出将是: (1、3、4) 是 (1、3、4) [所有连击列表] 完成

但是,如果您注释掉N =元组语句并取消注释N =输入语句。 然后运行它,将要求您输入一个(元组),其中包含3个数字,它们在1-5范围内按升序排列。当您随后运行时,我认为您应该获得相同的输出,但不!出于某种原因,即使元组是正确的并且照这样打印出来,由于某种原因,它在循环中也无法识别,并且绕过了它。因此,不会打印打印语句“是”。输出为: (1、3、4) (1、3、4) [所有连击列表] 完成

那为什么会这样,我该怎么解决?

从itertools导入组合

N = (1, 3, 4)  # N is tuple with 3 numbers
#  N = input('Enter (tuple)')
print(N)

combos = [numbers for numbers in combinations(range(1, 6), 3)]
for numbers in combos:
    if N == numbers:
        print('yes') 

print(N)
print(combos)
print('Done')

1 个答案:

答案 0 :(得分:0)

这里的问题似乎是,当您取消注释输入行时,N被设置为字符串而不是元组,因为输入会自动将其设置为字符串。一种解决方案是:

N1 = int(input("Enter the first number")) N2 = int(input("Enter the second number")) N3 = int(input("Enter the third number")) N = (N1, N2, N3)