Python 退出无限循环和处理错误条件

Python 退出无限循环和处理错误条件,python,infinite-loop,Python,Infinite Loop,我是Python新手。这里我编写了一个Python程序,它从映射中检索值。 到目前为止,它运行良好 当用户输入“M”时,它将检索它将请求主no,并且再次请求用户输入,并且根据用户输入从字典中检索值,依此类推 现在我关心的是 如何从循环中退出 如果我在请求M/N时给出无效的输入怎么办 当它请求Main或Name时,如果我给它一个无效的输入怎么办 有人能帮我吗??我想知道如何实现上述三个条件。我用Java实现了这些条件,但我不知道如何用Python实现 streetno={"1":"Sachin T

我是Python新手。这里我编写了一个Python程序,它从映射中检索值。 到目前为止,它运行良好

当用户输入“M”时,它将检索它将请求主no,并且再次请求用户输入,并且根据用户输入从字典中检索值,依此类推

现在我关心的是

  • 如何从循环中退出
  • 如果我在请求M/N时给出无效的输入怎么办
  • 当它请求Main或Name时,如果我给它一个无效的输入怎么办
  • 有人能帮我吗??我想知道如何实现上述三个条件。我用Java实现了这些条件,但我不知道如何用Python实现

    streetno={"1":"Sachin Tendulkar","2":"Sehwag","3":"Dravid","4":"Dhoni","5":"Kohli"}
    streetname = dict((y,x) for x,y in streetno.items())
    while True:
        inp= raw_input('Enter a M/N:')
        if inp=="M" or inp=="m":
            key=raw_input( "Enter the main number :")
            result=streetno[key]
    
        else:
            key = raw_input("Enter the street name: ")
            result = streetname[key]
    
    
        print result
    

    1:您可以使用
    break
    中断for或while循环

    2/3:说明这些例外情况。我们无法真正告诉您如何处理异常,因为这取决于您想要什么,但这里有一种方法可以让您开始

    while True:
        inp = raw_input('Enter a M/N or Q to quit:')
    
        if inp.lower() == 'q':
            break
    
        if inp.lower() == "m":
            key = raw_input("Enter the main number :")
            try:
                print(streetno[key])
            except KeyError:
                print("You picked an invalid street number")
    
        elif inp.lower() == 'n':
            key = raw_input("Enter the street name: ")
            try:
                print(streetname[key])
            except KeyError:
                print("You picked an invalid street name")
    
        else:
            print("{0} is an invalid choice.".format(inp))
    

    通常,您会使用Try/Except块捕获异常。请参阅本教程。如果输入不正确的main或name,则会引发keyrerror,因为dicts没有匹配的键。Except块将捕捉到这一点,您可以使用“continue”重新启动提示。最后,要退出循环,您需要一个触发器,比如输入一个“Q”作为elif选项退出。要退出循环,您需要调用。

    您是如何在Java中完成的,为什么您认为Python中的逻辑会有任何不同?在条件2和条件3中,“假设”是什么意思?您是在询问如何处理异常,还是python遇到非法输入时的默认行为?我在Java中使用了异常。是的,我在问例外情况。我想处理非法输入。。