#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")