我正在进行编码练习,在该编码练习中,您忘记了歌曲的歌词,并且在打印了一定数量的诗句之后,代码会打印“我放弃”。我需要创建代码来一次又一次地在列表中逐行打印歌词,直到命中一定数量的行,然后打印“我放弃”。我被困住了,试图弄清楚如何为每个变量打印x行数,但我只是想出了如何打印列表x次数。
我已经弄清楚了如何打印x列表,但我不知道如何仅从变量中打印x行。
lyrics = ["I wanna be your endgame", "I wanna be your first string",
"I wanna be your A-Team", "I wanna be your endgame, endgame"]
lines_of_sanity = 6
for x in range(lines_of_sanity):
for i in (lyrics):
print(i)
它会打印完整的歌词列表6次,但我需要打印6次歌词列表中的元素,然后继续直到歌词完成并打印(“我放弃”)
给定变量的正确代码应为:
我想成为你的绝望
我想成为你的第一根弦
我想成为你的A队
我想成为你的残局,残局
我想成为你的残局
我想成为你的第一根弦
我想成为你的A队
我想成为你的残局,残局
我放弃
答案 0 :(得分:2)
听起来您想重复完整的歌词,至少要打印一些行。因此,在这种情况下,您将打印完整歌词两次。您可以使用以下方法计算数字:
times = math.ceil(6/len(lyrics))
使用此方法的一种好方法是将itertools.repeat
与itertools.chain.from_iterable()
一起使用。放在一起看起来像:
from itertools import chain, repeat
import math
lyrics = ["I wanna be your endgame", "I wanna be your first string",
"I wanna be your A-Team", "I wanna be your endgame, endgame"]
lines_of_sanity = 6
times = math.ceil(lines_of_sanity/len(lyrics))
for l in chain.from_iterable(repeat(lyrics, times)):
print(l)
print("I GIVE UP")
将打印2整节经文,然后放弃。
答案 1 :(得分:1)
这是您的意思吗?抱歉,这不是您的意思...
lyrics = ["I wanna be your endgame", "I wanna be your first string",
"I wanna be your A-Team", "I wanna be your endgame, endgame"]
lines_of_sanity = 6
for i in range(lines_of_sanity):
print(lyrics[i%len(lyrics)])
print("I GIVE UP")
针对您的评论,也许有人可以简化
for i in range(lines_of_sanity+len(lyrics)-(lines_of_sanity%len(lyrics))):
print(lyrics[i%len(lyrics)])
print("I GIVE UP")