python - 在 Python 中为 Old Macdonald 使用列表和循环
问题描述
我正在做一项学校作业,遇到了一些麻烦。为此,我需要使用列表和循环让用户能够将动物和声音输入到两个列表中。然后循环应该在一个组中输出歌词,在适当的地方一次使用动物和声音,所以像:
在这个农场里,他养了一只狗……等等,正在播放这首歌,然后是下一首歌曲。在这个地方,他有一只猫……等等,通过列表中的所有动物和声音
现在它部分工作。用户可以输入三种动物和三种声音,然后打印将运行,但它只会输出列表中的最后一个条目。我希望它打印包含列表中所有条目的歌词。我还希望用户能够用 -1 取消,但我尝试过的一切都没有起作用。如果有人可以提供帮助,那就太好了!到目前为止,我已经在下面包含了我的代码:
for song in range (3):
animal = input("Please Input an Animal: ")
sound = input("Please Input a Sound: ")
lyrics = "Old Macdonald had a farm, E- I- E- I- O," "And on that farm he had a %s, E- I- E- I- O." "With a %s - %s here,And a %s - %s there," "Here a %s, there a %s, Everywhere a %s - %s" "Old Macdonald had a farm, E- I- E- I- O!" % (animal, sound, sound, sound, sound, sound, sound, sound, sound)
print(lyrics)
解决方案
Sunero4 已经解释了为什么只在最后一个用户条目中分配了动物和声音变量。我在他的答案中添加了一些格式,并在每次用户输入后添加到 sys.exit(0) 中,以检查是否输入了 -1 以便我们可以退出。请注意,我们使用“import sys”来调用此模块。我不知道你是否已经在课堂上讲过这个。如果没有,我建议你看看你当前的课程笔记是如何处理这个问题的。
import sys
lyrics_list = []
for song in range (3):
animal = input("Please Input an Animal: ")
if animal == '-1':
sys.exit(0)
sound = input("Please Input a Sound: ")
if sound == '-1':
sys.exit(0)
lyrics = "Old Macdonald had a farm, E- I- E- I- O," " And on that farm he had a %s, E- I- E- I- O." " With a %s - %s here, and a %s - %s there," " here a %s, there a %s, everywhere a %s - %s" " Old Macdonald had a farm, E- I- E- I- O!" % (animal, sound, sound, sound, sound, sound, sound, sound, sound)
lyrics_list.append(lyrics)
for lyric in lyrics_list:
print(lyric)
编辑:您可以将 sys.exit(0) 替换为 quit() ,它也会这样做。有关 sys.exit() 和 quit() 之间区别的更多详细信息,请查看Python 退出命令 - 为什么有这么多以及何时应该使用每个命令?
推荐阅读
- sql - 将表格的多个重叠多边形合并为一个并删除已合并的一个
- jquery - 使用 Jquery 检查通过局部视图加载的元素是否存在
- php - 在 laravel 8 中将 2 个 JSON api 结果合并为一个数组
- docker - 我需要从 docker 容器中删除已删除的网络
- java - 当数据全为零时,如何将 y 范围从 0.3(这是默认值)扩展到 10?
- ios - 从 Swift Crash 日志中确定源代码行号
- java - 我的 HMACSHA256 签名验证几乎可以工作,但不完全
- excel - 使用 ListBox 输入值
- html - 更改字体样式时如何防止表格上下文调整大小/更改填充?
- javascript - 如何在运行会话(WebRTC、RTCMultiConnection)期间重新启动屏幕共享?