退出无限循环并处理错误情况
我刚开始学习Python。这里我写了一个Python程序,可以从地图中获取值。现在这个程序运行得很好。
当用户输入“M”时,它会要求输入一个主号码,然后再询问用户输入,接着根据用户的输入从字典中获取值,依此类推。
现在我有几个问题:
- 我该如何退出这个循环。
- 如果我在输入M/N时给了一个无效的输入,会怎样?
- 如果我在输入主号码或名字时给了一个无效的输入,又会怎样?
有没有人能帮我解决这些问题?我想知道如何实现上面这三种情况。我在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
2 个回答
0
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))