Python2和python3使用的一些区别

Zss 发表于:

一.在使用套接字时,发送一个数据,在python2中字符串可以直接发送,但是python3会数据类型错误

1.需要在发送的数据给编码,将字符串  data.encode(‘utf-8’),在python3中想要发送东西时,加上 .encode(‘utf-8’),若接收方也是以utf-8来解码的,则输出正常,若接收方不是,则输出异常,可以去修改接收方的编码也可以修改发送方.encode(‘utf-8’)来解决

2.在字符串前加上b来解决

3.python3中encode()编码  decode()解码,当扒下来的数据乱码时考虑使用utf-8或者gbk来解码decode()

一般收到的数据使用decode来解码。而发送数据使用encode来编码

4.编码,为了在py2中使用中文,在头部引入coding声明

py2:默认编码ascii

py3:默认编码utf-8

二.如之前的问题:爬虫程序中,我写了一个类,在类中定义了一个方法,这个方法需要传参,当我在main函数中使用进程池给进程分配任务时,若这个方法无须传参,就可以运行,假若传参,这个方法始终没有返回值,怀疑这个方法也没有运行

1.用线程替换进程

from multiprocessing.pool import ThreadPool as Pool

2.这样的程序在Python3中使用是正常的

三.关于input()

1.在Python2中的raw_input() 不管输入的是数字还是什么返回的是字符串类型,input()若输入的数字返回的是数字,输入的是字符则报NameError错误

在python3中使用input()替代python2的两个input(),默认输出全部都是字符串类型

a = raw_input('test1')
print(a)
print(type(a))

b = input('test2')
print(b)
print(type(b))
输出:
test111
11
<type 'str'>
test211
11
<type 'int'>