python2和python3常见的区别

本文详细对比了Python2和Python3的差异,涵盖输入函数、打印语句、运算符、编码、数据库交互、模块使用等方面。如输入用raw_input和input,打印用print和print(),编码默认分别为ASCII和utf - 8等,为开发者在版本选择和代码迁移时提供参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1. raw_input与input

从键盘中输入内容时,python2用的是raw_input,而python3使用的是input(如下图所示)

Python2:

Python3:

2. print与print()

打印时python2使用的是print + 内容

而python3则使用的是print(内容)

3. /与//的区别

python2中 / 表示整除(取整数),// 也表示整除(取整数),也就是说,python2中/和//都表示整除(取整数)

python3中 / 表示的是做除法运算(不一定为整数),而//表示的是整除(取整数)

因此,可以这样子理解,整除时,python2使用 / ,而python3使用 // 。这样子就不会乱了,个人理解哈

4. 不等运算符<>与!=

python2中<>与!=都可以使用,都表示不相等的判断

而python3就不一样了,python3表示不相等的判断时只能用!=

5.编码问题

python2默认编码为ASCII,这就是为什么我们在编写代码出现中文时需要在第一行加上#coding=utf-8

python3默认编码为utf-8,因此python3不需要再出现中文时需要在第一行加上#coding=utf-8

6.与MySQL的交互

python2与MySQL进行交互时,需要安装MySQLdb

而python3与MySQL交互时,需要安装的是pymsql

此外,python2与MySQL进行交互时,数据库密码为passwd="密码"

而python3与pymysql进行交互时,数据库密码为password="密码"

这个坑我踩过2333,当初用Django做第一个项目时,用的是python3,结果在与数据库交互生成迁移文件时报了一大推错,足有一张A4纸那么大。还好我不是吓大的,可还是花了不少精力去发现这个问题。可能是当初学mysql时,与python交互时用的是python2有关。

7. urllib2与urrlib3

python2中urrlib2与urllib3都可以,爬虫时往往需要urllib与urllib2一起使用,因为urllib提供了urlencode()

而在python3中只能用urllib3,urllib2已经不能用了。爬虫时只需urllib3即可,因为python3默认编码为utf-8

8. ConfigParser.py与configparser.py

python2中ConfigParser.py模块作用是使配置文件生效

python3中ConfigParser.py改为了configparser.py,作用不变

这个坑很容易踩2333,特别时用django做项目时,在python3 manage.py startapp 应用名创建应用时往往会报错,此时就需要看你的usr/lib/python3.x/目录下是ConfigParser.py还是configparser.py。

9. Django中导入文件

如在django项目下的某一个应用中views需要导入本应用中的models时

python2:直接导入

python3:from .models import *

10. 异常捕获

python2必须使用except....as.....

而python3没有此要求

11. 打开或创建文件

python2中可以使用open()或file()

而python3只能使用open()

12. 队列

python2中队列用的是Queue

python3中队列用的则是queue

13. 多线程

python中使用的是thread模块

python3中改成了_thread或threading(推荐使用)

14.加密

md5加密中,Python2使用import md5或者import hashlib;

而Python3只能使用import hashlib,使用方法hashlib.md5()。

15.urllib和urllib2

python2爬虫一般用urllib2,而python3之后,urllib2已经退出江湖了,也就是python3以上版本之后,不再用urllib2这个包了。而取而代之的就是urllib了,爬虫时一般使用urllib包中的request方法

python2.7

python3.5

16.cookielib与http.cookiejar

在想要获取某网站在浏览器中的cookie值时,可以使用cookiejar方法,不过这个方法在python2与python3中的用法有点不一样。

python2——使用cookielib包,然后使用CookieJar()方法创建一个cookie实例对象来保存cookie值

python3——使用的是http.cookiejar包,然后使用CookieJar()方法创建一个cookie实例对象来保存cookie值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值