Python 在';str';和';int';

Python 在';str';和';int';,python,function,Python,Function,“str”和“int”实例之间不支持此错误“>”如何修复 def is_valid_ip_address(numberlist): y = (list(numberlist.split("."))) z = len(y) if y[0] > 0 and y[0] < 255 and z < 4 and y[1] > 0 and y[1] < 255 and z < 4 and y[2] > 0 and y[2] < 255

“str”和“int”实例之间不支持此错误“>”如何修复

def is_valid_ip_address(numberlist):
    y = (list(numberlist.split(".")))
    z = len(y)

    if y[0] > 0 and y[0] < 255 and z < 4 and y[1] > 0 and y[1] < 255 and z < 4 and y[2] > 0 and y[2] < 255 and z < 4 and y[3] > 0 and y[3] < 255 and z < 4 and y[4] > 0 and y[4] < 255 and z < 4:
        print("true")
    else:
        print("false")

is_valid_ip_address("500.3.55.3")
def是有效的ip地址(numberlist):
y=(列表(数字列表拆分(“.”))
z=len(y)
如果y[0]>0和y[0]<255且z<4和y[1]>0和y[1]<255且z<4和y[2]>0和y[2]<255且z<4和y[3]>0和y[3]<255且z<4和y[4]>0和y[4]<255且z<4:
打印(“真实”)
其他:
打印(“假”)
ip地址是否有效(“500.3.55.3”)

您对IP地址的解析不正确。它将ip地址的部分保留为字符串,而不是整数。而且不能将字符串与int进行比较

试试这个:

def is_valid_ip_address(numberlist):
    y = list(map(int, numberlist.split(".")))
    z = len(y)

    if y[0] > 0 and y[0] < 255 and z < 4 and y[1] > 0 and y[1] < 255 and z < 4 and y[2] > 0 and y[2] < 255 and z < 4 and y[3] > 0 and y[3] < 255 and z < 4 and y[4] > 0 and y[4] < 255 and z < 4:
        print("true")
    else:
        print("false")

is_valid_ip_address("500.3.55.3")
false