Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中设置值错误异常_Python_Python 3.x_While Loop_Valueerror_Try Except - Fatal编程技术网

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

如何在python中设置值错误异常,python,python-3.x,while-loop,valueerror,try-except,Python,Python 3.x,While Loop,Valueerror,Try Except,我有以下代码: 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(float(('Enter host IP'))
            except ValueError:
                print('Error. That is not a valid IP address.')
                continue

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

试试这样的方法

为True时:
尝试:
主机=输入('输入主机IP:')
如果len(主机拆分(“.”)!=4:
升值误差
对于主机中的字符:
如果字符不在“0123456789”中:
升值误差
除值错误外:
打印('错误。这不是有效的IP地址')
持续
其他:
打破

不需要尝试/例外。你只需要一个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循环,因为您没有提供中断。其次,对于IPV4,有效IP地址的形式为192.168.2.10;对于IPV6,有效IP地址的形式为“2001:0db8:0a0b:12f0:0000:0000:0000:0001”,并且永远不能解释为浮点数,因此您将始终生成值错误响应。为了正确验证IP地址,请检查以下各项


您无法将字符串转换为浮点值,因此此代码不会检查任何内容,因为代码总是会抛出错误。我可能会在if语句中对IP地址使用正则表达式验证。如何修复此问题?我是pythonIt的新手,它有点不清楚您到底想要实现什么,但是如果输入与IP地址不匹配,听起来您想
提高ValueError
。使用
re
检查输入,如果不匹配
raise
a
ValueError
。请将其输入代码中?我对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