从字典中提取的Python raw_input

时间:2018-09-26 17:31:27

标签: python dictionary while-loop conditional

我正在尝试实现一个解决方案,其中我调用displayPerson()来接受用户输入的ID号,并将为用户打印信息。我应该注意,我正在从Internet下载包含以下格式数据的csv文件:

id,姓名,生日
1,杰克·斯派洛,2000年9月20日

我的目标是从用户那里获得一个号码,该号码将查找并显示ID。我希望提示继续出现,并要求用户输入数字,直到输入负数或0退出。

    loop= True
    while loop== True:
        prompt = int(raw_input(" Enter ID of person you would like to search for: "))
        break

    if prompt >0:

        displayPerson(prompt,persons)


    else:
        print("Terminated.")

就目前而言,如果用户在1到100之间输入一个正数,我就能够正确输出输出,但是当我想问用户另一个数字并且我无法理解该怎么做时,程序就会停止要进行此操作,以便它会向用户提供一条消息,要求输入另一个小于101的数字(而不是给我一个KeyError),显示数据,然后询问另一个数字。如果用户输入零,则会显示“已终止”消息,然后停止,但我发现很难做其他任何事情。

这是displayPerson()函数供参考:

def displayPerson(id, personDataDictionary):
    """

    :param id:
    :param personDataDictionary: Look at displayPerson in __name__ function. But I thought bday was pieces[2].
    :return:
    """
    print("id = {}, name = {}, birthday = {}".format(id, personDataDictionary[id][0],
                                                     personDataDictionary[id][1].strftime("%Y-%m-%d")))

1 个答案:

答案 0 :(得分:0)

解决方案

while True:
    prompt = int(raw_input(" Enter ID of person you would like to search for: "))

    if prompt > 100:
        print("Please try again")
        continue 
    elif prompt < 1: 
        displayPerson(prompt,persons)
    else:
        break

print("Terminated.")

说明

您进入循环并从用户那里获得ID。

如果prompt > 0:显示人物
否则,请跳出循环并打印“已终止”。