我的python代码出现问题,因为在输入编译器之后它没有打印任何内容。
我正在尝试编写使用while循环的代码,并允许用户输入专辑的艺术家和标题。然后我应该能够使用用户的输入调用make_album
并打印创建的字典。
然而,在我输入艺术家和标题后,没有任何内容打印出来。
这是我的python代码:
def make_album(artist_name, album_title, num_tracks = ''):
"""Return artist and album title name."""
CD1 = {'sonic': artist_name, 'his world': album_title}
CD2 = {'shadow': artist_name, 'all hail shadow': album_title}
CD3 = {'silver': artist_name, 'dream of an absolution': album_title}
if num_tracks:
CD = artist_name + ' ' + album_title + ' ' + num_tracks
else:
CD = artist_name + ' ' + album_title
return CD.title()
while True:
print("\nEnter album's artist and title: ")
print("\nEnter 'q' at anytime to quit")
a_name = input("Artist name: ")
if a_name == 'q':
break
a_title = input("Album title: ")
if a_title == 'q':
break
make_album(a_name, a_title)
formatted_album = make_album(a_name, a_title)
print(formatted_album)
有没有人知道我可能做错了什么?任何反馈将不胜感激。
答案 0 :(得分:0)
我建议打印出“a_name”的类型并查看它的内容。
我的猜测是你对input
的使用不会产生你所期望的结果。请改为raw_input
。
python课程在input
上有以下说法:
将解释用户的输入。如果用户例如投入 整数值,输入函数返回此整数值。如果 用户另一方面输入一个列表,该函数将返回一个列表。
这意味着如果你想要一个字符串,例如'q'
,您必须输入'q'
。
您可能希望将输入作为字符串,无论您键入什么,并将解释留给您的实现。然后你最好打电话给raw_input
。