在异常之后保持while循环

时间:2017-04-24 18:23:08

标签: input while-loop infinite-loop serversocket

我希望用户通过输入要查找的IP地址来保持while循环,他们可以在提示时保持查找ip,如果他们想要通过输入y或n来继续,因为异常经常发生并不是所有的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  

1 个答案:

答案 0 :(得分:2)

不要使用[break],[break]意味着跳出循环。使用[继续]开始循环的下一步。

如果你想在第一个[try]中继续第二个[try],第一个[try]中的[break]可以改为[pass],这意味着什么都不做。