SOS,进行IP地址验证时出现问题
python3吧
全部回复
仅看楼主
level 2
金壶说 楼主
代码片段:
while True:
set_command = input("请输入IPv4地址,格式:xxx.xxx.xxx.xxx,其中xxx为数字(范围为0到255)。输入back以返回。\n>>")
validation = 0
ip_check = set_command.split(".")
if len(ip_check) == 4:
validation = 1
try:
if eval(ip_check[0]) and eval(ip_check[1]) and eval(ip_check[2]) and eval(ip_check[3]) in range(0,256):
validation = 2
except NameError:
print("---无效输入---\n你的IPv4地址输入无效。")
else:
if validation < 2:
print("---无效输入---\n你的IPv4地址输入无效。")
else:
device_ip = set_command
break
运行结果:
请输入IPv4地址,格式:xxx.xxx.xxx.xxx,其中xxx为数字(范围为0到255)。输入back以返回。
>>123.3123.4324.1231
---无效输入---
你的IPv4地址输入无效。
请输入IPv4地址,格式:xxx.xxx.xxx.xxx,其中xxx为数字(范围为0到255)。输入back以返回。
>>127.0.0.1
---无效输入---
你的IPv4地址输入无效。
为什么我输入是127.0.0.1时,这个东西没用?
顺带一提:
0 in range(0,2)
True
0 and 0 and 0 and 0 in range(0,2)
0
0 and 0 in range(0,234)
0
0 and 0 in range(213)
0
我在idle里试了试,结果发出是这玩意,这个是怎么回事?
2023年07月15日 12点07分 1
level 10
try下面的if判断不能这么写
2023年07月15日 13点07分 2
@leinsdj 那是不是必须展开
2023年07月15日 15点07分
2023年07月16日 01点07分
1