[英]Python-Take multiple inputs using for loop and print multiple outputs through if condition
如果一個數字可以分為兩個偶數,這是我的代碼。
`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
請幫忙
for i in range(n):
a = list(map(int, input().rstrip().split()))
每次通過此循環,您將重新分配a
,丟棄其先前的值。
在第一個循環中,您將使用新的輸入列表替換每個輸入列表結果。
罪魁禍首:
a = list(map(int, input().rstrip().split()))
當您的代碼退出循環時, a
只包含一個值。 要修改您的方法,您可以在循環之前初始化列表,在循環內部將值附加到其中。
a = []
for i in range(n):
a.append(int(input()))
另外,由於每行似乎只有一個數字,只需執行int(input())
就可以得到數字。
您的第二個循環可能還需要修改。
您輸入的輸入不正確。 嘗試這個:
a = []
for i in range(n):
a.append(int(input()))
或者,作為列表理解:
a = [int(input()) for i in range(n)]
此外,如果要測試一個數字是否可以拆分為兩個偶數,請嘗試x % 4
而不是x % 2
。
我相信你想:
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的值,但我認為你想要的是積累這些值。 + =通過列表完成此操作。
如果這有幫助,請告訴我!
編輯:我把三個代碼刻度與我的一些代碼放在同一行,所以它被它們吃掉了。
在你開始循環你繼續重置價值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()
會生成一個列表,在這種情況下,如果僅通過int(input().rstrip())
獲取數字會更好,則該列表將int(input().rstrip())
做到這一點的另一種方法是使用列表理解,它更像pythonic:
a = [int(input().rstrip()) for _ in range(n)]
希望有所幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.