先正则再判断每段的大小 import re while True: try: ad = input() if re.match(r'^((?!0\d)[\d]+\.){3}((?!0\d)[\d]+)$', ad): add = ad.split(sep = '.') flag = 'YES' for n in add: n = bin(int(n)) if len(str(n)) - 2 > 8: flag = 'NO' break print(flag) else: print('NO') except: break