如何在 python 中设置值错误异常

How can I set a value error exception in python

我有以下代码:

while True:
            try:
                HOST = input(float(('Enter host IP'))
            except ValueError:
                print('Error. That is not a valid IP address.')
                continue

我要求用户输入一个 IP 地址。我想设置一个错误,这样如果他使用一个字母,他就会得到一个错误。我该怎么做,为什么我的代码不起作用?

尝试这样的事情

while True:
    try:
        HOST = input('Enter host IP: ')
        if len(HOST.split(".")) != 4:
            raise ValueError
        for char in HOST:
            if char not in "0123456789.":
                raise ValueError
    except ValueError:
        print('Error. That is not a valid IP address.')
        continue
    else:
        break

不需要try/except。您只需要一个 IP 验证。此代码应该有效。

import re

while True:
    HOST = input("Enter IP adress: ")
    if re.match(
        r"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$",
        HOST,
    ):
        print(f"{inp} is valid IP adress")
        break
    else:
        print("Enter valid IP adress")

首先我会指出您提交的代码的一些问题。首先,您的代码永远不会退出 while 循环,因为您没有提供 break out。其次,一个有效的 IP 地址的形式类似于 IPV4 的 192.168.2.10 或 IPV6 的“2001:0db8:0a0b:12f0:0000:0000:0000:0001”,并且永远不能被解释为浮点数,因此您将始终生成值错误响应。为了正确验证 IP 地址,请检查以下 check if a string matches an IP address pattern in python?.

import ipaddress
Host = None
while True:
    try:
        Host = ipaddress.ip_address(input('Enter host IP'))
        break
    except:
        print('Error. That is not a valid IP address.')
        continue