Python-使用for循环获取多个输入,并通过if条件打印多个输出

时间:2019-03-16 02:27:42

标签: python

这是我的代码,如果一个数字可以分为两个偶数,则会打印出来。

`n=int(input("Enter no. of variables:"))
for i in range(n):
    a = list(map(int, input().rstrip().split()))
for x in a:
    if(x%2==0):
        print("Yes")
    elif(x==2 or x==0):
        print("No")
    else:
        print("No")`

我得到的输出为

Enter no. of variables:2 4 6 Yes

只有最后输入的数字给出了结果, 我需要的输出为

Enter no. of variables:2 4 6 Yes Yes

请帮助

5 个答案:

答案 0 :(得分:0)

for i in range(n):
    a = list(map(int, input().rstrip().split()))

每次通过此循环时,您都在重新分配a,放弃其先前的值。

答案 1 :(得分:0)

在第一个循环中,您将每个输入列表结果替换为 new 输入列表。

罪魁祸首:

    a = list(map(int, input().rstrip().split()))

当代码退出循环时,a仅包含一个值。要修改您的方法,您可以在循环之前初始化一个列表,在循环内 内将值附加到列表中。

a = []
for i in range(n):
    a.append(int(input()))

另外,由于每行似乎只有一个数字,只需执行int(input())即可得到该数字。

您的第二个循环可能还需要修改。

答案 2 :(得分:0)

您输入的信息不正确。试试这个:

a = []
for i in range(n):
    a.append(int(input()))

或者,作为列表理解:

a = [int(input()) for i in range(n)]

此外,如果要测试一个数字是否可以分为两个偶数,请尝试使用x % 4而不是x % 2

答案 3 :(得分:0)

我相信你想要

a=[]
n=int(input("Enter no. of variables:"))
for i in range(n):
    a += list(map(int, input().rstrip().split()))
    print(a)
for x in a:
    if(x%2==0):
        print("Yes")
    elif(x==2 or x==0):
        print("No")
    else:
        print("No")

Python每次都会用输入覆盖a的值,但是我认为您想要的是累积这些值。 + =通过列表完成此操作。

让我知道这是否有帮助!

编辑:我将这三个代码滴答与某些代码放在同一行,所以它们被它们吃掉了。

答案 4 :(得分:0)

在开始循环中,您一直在重置enum class Status (private val code: Int) { PAST(0), LIVE(2), UPCOMING(1); companion object { private val codes = Status.values().associateBy(Status::code) @JvmStatic @JsonCreator fun from (value: Int) = codes[value] } } 的值,而不是将其添加到a的现有值中:

a

第一次for i in range(n): a = list(map(int, input().rstrip().split())) ,但随后在a = [4]

的下一个循环中将其覆盖

要将其附加到a = [6]上,您应该这样做:

a

或您更可能追求的目标:

a = []
for i in range(n):
    a += list(map(int, input().rstrip().split()))

您这样做的方式是,在输入上调用a = [] for i in range(n): a.append(int(input().rstrip())) 会生成一个列表,在这种情况下,如果仅通过.split()

另一种实现方法是使用列表理解功能,它更具有Python风格:

int(input().rstrip())

希望有帮助!