某天在写一个获取ip的函数并根据ip条件做出判断代码如下:
#导入模块
import urllib.request
定义本机IP
ip = "112.139.198.114"
#获取本机IP函数
def get_ip():
response = urllib.request.urlopen("http://members.3322.org/dyndns/getip")
response = response.read().decode()
return response
#赋值
get_ip = get_ip()
#分别打印IP
print(ip)
print(get_ip)
print(type(ip))
print(type(get_ip))
#判断ip是否相等
if ip == get_ip:
print("IP相等")
else:
print("IP不相等")
由于我提前知道了本机IP,理论上,这个代码返回的应该是
IP相等
可是输入结果一直是
IP不相等
输出结果
112.139.198.114
112.139.198.114
<class 'str'>
<class 'str'>
IP不相等
查看两者的类型,发现都是字符型,而且内容都是一样的,一直找不到原因。
后来发现,get_ip获取的值,多了一个换行符号,才导致不想等。
修改如下函数方法:
def get_ip():
response = urllib.request.urlopen("http://members.3322.org/dyndns/getip")
response = response.read().decode()
return response.strip() # 添加一个strip()方法,去掉符号
之后输入结果就相等了
112.139.198.114
112.139.198.114
<class 'str'>
<class 'str'>
IP相等