在您的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')
答案 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)