簡體   English   中英

Python-使用for循環獲取多個輸入,並通過if條件打印多個輸出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM