【问题标题】:Stay in while loop after an exception异常后留在while循环中
【发布时间】:2017-09-21 13:18:43
【问题描述】:

我希望用户通过输入要查找的 ip 地址来停留在 while 循环中,当提示他们是否要通过键入 y 或 n 继续时,他们可以继续查找 ip,但经常发生的异常是因为不是所有的 IP 地址都找到了,我遇到了一个无限循环,所以我现在只是让它跳出循环。异常后如何继续询问用户是否想查找另一个 IP 而不是跳出循环?谢谢。

import socket

print("\n----------Look up Domain by IP Address----------\n")

response3 = input("Enter an IP Address: ")

while True:
    try:
        domain = socket.gethostbyaddr(response3)[0]#.split(".")[1]
        print("\nDomain Name is", domain)

    except(socket.error):
        print("\nA domain name could not be found.")
        break

    response4 = input("Would you like to look up another IP adress? type y for [yes] or n for [no]: ")            

    if response4 == "y":

        response3 = input("Enter an IP Address: ")

    elif response4 == "n":
        print("\n[END]")
        break  

【问题讨论】:

    标签: input while-loop infinite-loop serversocket


    【解决方案1】:

    不要使用[break],[break]表示跳出循环。使用 [continue] 开始循环的下一步。

    如果要在第一个[try]中继续到第二个[try],可以将第一个[try]中的[break]改为[pass],即什么都不做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-03
      • 1970-01-01
      • 2018-11-13
      • 2016-05-13
      • 1970-01-01
      相关资源
      最近更新 更多