#1.多种情况需要判断,一开始没考虑到输入形如“a.1.1.1”和“01.2.3.8”类似的情况,只能不断添加判断;
#2.尽可能的简化return语句,设置flag标志位来作为判断依据;
#3.if...else语句嵌套还是有点多,达到了三层,后续可以在优化;
def check_ip():
ip_lst = input().split('.')
if len(ip_lst) != 4:
return 0
flag = 1
for i in ip_lst:
if not i.isdigit():
flag = 0
break
else:
if i.startswith('0') and len(i) > 1:
flag = 0
break
else:
if int(i) < 0&nbs***bsp;int(i) > 255:
flag = 0
break
return flag
if __name__ == '__main__':
if check_ip():
print("YES")
else:
print("NO")

京公网安备 11010502036488号