如何在 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
我有以下代码:
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