如何让python 2.7在一个单独的行中用行号打印列表中的每个元素?

时间:2017-09-25 03:33:05

标签: python python-2.7 printing

现在这是我的代码:

lineNumber = 0
userPrompt = 0
userLines = list()

firstLine = raw_input("Please enter a line from a verse of your favorite song: ")

while True: 
    lineNumber += 1
    userPrompt = raw_input("would you like to enter more lines? ")   

    if userPrompt.lower() == "yes":
        userLines.append(raw_input("Please enter the next line in the verse: "))

    if userPrompt.lower() == "no":
        break
print("verse")
print("Line " +str(lineNumber) + ": " + firstLine)
print("\n" "Line " +str(lineNumber) + ": " + userLine)

我遇到麻烦的地方是让列表中的每个元素都在自己的行上打印,每个元素也都有行号。第二个print语句用于在while语句之外发生的第一个输出,第三个print语句是我当前遇到问题的那个。

输出应如下所示:

第1行:来自第一个原始输入提示的#user输入

第2行:#列表中的第一行

第3行:#列表中的第二行

依旧......

感谢您提供任何帮助,因为我在这里做错了。

1 个答案:

答案 0 :(得分:1)

让我们把你的代码修改一下:

userLines = list()

firstLine = raw_input("Please enter a line from a verse of your favorite song: ")
userLines.append(firstLine)

while True: 
    userPrompt = raw_input("would you like to enter more lines? ")   

    if userPrompt.lower() == "yes":
        userLines.append(raw_input("Please enter the next line in the verse: "))

    if userPrompt.lower() == "no":
        break

现在我们有一个由userLines

中存储的用户输入的行列表

要打印出来,我们所要做的就是:

for index, line in enumerate(userLines):
     print('line={} says: {}'.format(index, line))

Enumerate是一个内置的python(参见documentation)。它基本上允许您遍历集合(setlist等)。除了遍历列表中的每个项目(这是常规for循环所做的)之外,enumerate allow还为集合提供了可以在其中找到项目的索引。

简单地说:

for i in range(len(userLines)):
    index = i
    line = userLines[i]
    doStuff(index, line)

for index, line in enumerate(userLines):
    doStuff(index, line)

相等

希望有所帮助!