这是我的代码,如果一个数字可以分为两个偶数,则会打印出来。
`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
请帮助
答案 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())
希望有帮助!