现在这是我的代码:
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行:#列表中的第二行
依旧......
感谢您提供任何帮助,因为我在这里做错了。
答案 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)。它基本上允许您遍历集合(set
,list
等)。除了遍历列表中的每个项目(这是常规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)
相等
希望有所帮助!