簡體   English   中英

如何在 python3 中的不同行上打印每個迭代?

[英]How do I print each iteration on separate lines in python3?

編碼新手,一名學生,我正在嘗試獲取此 output:

    Line 1: input from user
              
    Line 2: input from user
                
    Line 3: input from user
                
    Line 4:input from user

    etc.

這是我的代碼

樣本

現在它只打印進入循環的最后一次迭代,我需要它在循環結束時在單獨的行上打印每個迭代,無論它循環多少次。

因為您正在打印來自while循環的addLine ,所以它只會打印中斷while循環之前的最后一個輸入。 要解決此問題, addLine更改為列表,然后每次都將所有輸入添加到列表中。 然后,在中斷while循環后,將代碼放入for循環中,以便它為列表中的每個項目打印addLine for循環需要針對counter中的每個數字,從 0 開始。例如,如果您輸入 5 個輸入,那么它將從 0-4 運行,所以打印該行,然后打印counter+1的數字,所以它執行 1- 5 而不是 0-4。 然后只需添加addLine[num]以便它從列表中獲取正確的項目。

userInput = ''
counter = 0
addLine = []
lineNumber = 0
newLine = ''

while True:
    userInput = input('Would you like to enter more lines?: ')

    if userInput == 'yes':
        addLine.append(input('Please enter your line: '))
        counter += 1
    elif userInput == 'no': 
        break

print('Verse')
for num in range(counter):
    print('Line ' + str(num + 1) + ': ' + addLine[num])

經過一些測試,這應該可以工作。

將您的打印語句放入循環中:

while True:
   ...
   print(f"Line {counter}: {addLine}")

我稍微修改了你的代碼:

user_input = ''
add_line = []

while True:
    user_input = input('Would you like to enter new lines?: ')

    if user_input == 'yes':
        add_line.append(input('Please enter your line: '))
    
    if user_input == 'no':
        break

print('Verse')
for i in add_line:
    print(f'Line {add_line.index(i) + 1}: {i}')

測試運行:

Would you like to enter new lines?: yes
Please enter your line: this is a line
Would you like to enter new lines?: yes
Please enter your line: another line
Would you like to enter new lines?: no
Verse
Line 1: this is a line
Line 2: another line

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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