Python没有在while循环中打印我的输入

时间:2016-09-08 23:52:21

标签: python

我的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)

有没有人知道我可能做错了什么?任何反馈将不胜感激。

1 个答案:

答案 0 :(得分:0)

我建议打印出“a_name”的类型并查看它的内容。

我的猜测是你对input的使用不会产生你所期望的结果。请改为raw_input

python课程在input上有以下说法:

  

将解释用户的输入。如果用户例如投入   整数值,输入函数返回此整数值。如果   用户另一方面输入一个列表,该函数将返回一个列表。

这意味着如果你想要一个字符串,例如'q',您必须输入'q'

您可能希望将输入作为字符串,无论您键入什么,并将解释留给您的实现。然后你最好打电话给raw_input