Python2与Python3有哪些不同之处

Python2和Python3中print的不同之处 file是python3 print新加的一个参数。另一个很handy的参数是sep, 例如打印一个整数数组, 但你想用星号而不是空格连接。区别:Python2中的print是一个关键字,而Python3里的print是一个函数。函数用法“print(要打印的内容)”。总地来说, Python2.7的print不是一个function,而Python3里的print是一个function。注意, from __future__ import ...一类的语句一定要放在代码开始处。 阅读详情

        众所周知,Python3是Python2的升级改进版,既包含了Python2的绝大部分内容,同时又做出了一些不一样的改变。据说,Python2将于2020年左右不再免费更新维护,作为Python2的坚定支持者,是不是有一种被抛弃的感觉呢。所以,此时最好的选择就是在努力维护python2在心中的核心地位的同时,好好地扩展python3才是上上之策。不过呢,笔者在用过python3之后,发现其确实在很多方面提出了改进,更具人性化。好了,闲话少说吧。那么Python3与Python2到底有哪些不同之处呢?

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值


目前为止,遇到的比较常用的基本上就这些了。可能由于时间的缘故,有些想不起来或者还没有遇到的,欢迎补充!

如何更好的理解PFC(功率因数校正) 此电路虽然简单,可以在前期设计的无PFC功能的设备上,简单的增加一个合适的电感(适当的选取L和C的值),从而达到具有PFC的作用,但是这种简单的、低成本的无源PFC输出纹波较大,滤波电容两端的直流电压也较低,电流畸变的校正及功率因数补偿的能力都很差,而且L的绕制及铁芯的质量控制不好,会对图像及伴音产生严重的干扰,只能是对于前期无PFC设备使之能进入市场的临时措施。)在t4~t5期间尽管二极管左边电压在逐步上升,但是由于二极管右边的Uc放电缓慢右边的电压Uc仍旧大于左边,二极管仍旧反偏截止。 阅读详情

相关推荐

OpenBmc开发11:添加传感器(I2C)

1 查看传感器信息 通过qemu以本地端口映射方式运行编译后的镜像,访问bmcweb页面的网址是:https://localhost:2443/,如果想用IP地址启动请参考:openbmc开发4:启动运行编译镜像。(这里以网桥方式启动,以ip地址方式访问BMC) 输入用户名和密码,密码是:0penBmc(第一个是数字)。 选择Health,然后点击Sensor,可以看到传感器信息。 2 查看传感器配置文件 进入meta-live/meta-test/recipes-phosphor/...

master 1万+

python 2和python 3的区别

python 2和python 3的区别

岳来的博客 5987

别再为Power BI瀑布图发愁了!用这个DAX公式+堆积柱状图,5分钟搞定现金流量表可视化

本文介绍了一种使用DAX公式和堆积柱状图快速实现Power BI现金流量表可视化的高效方法。通过详细的步骤和代码示例,帮助财务分析人员5分钟内完成专业级报表制作,解决传统瀑布图配置复杂、灵活性差的问题,显著提升工作效率。

weixin_28677005的博客 246

python3 和python2 的区别

这些区别体现了 Python 3 在设计上更加现代化、简洁和一致,也更符合国际化和内存优化的需求。在实际开发中,建议使用 Python 3 以获得更好的编程体验和性能。

weixin_42460792的博客 980

RFSOC实战解析:MTS多片同步的时序校准与相位相干实现

本文深入解析了在RFSOC平台上实现MTS多片同步的关键技术与实战流程。文章从相位相干的重要性出发,详细阐述了SYSREF与SYNC信号的协同工作机制,并提供了从硬件时钟配置到软件API调用的完整MTS实现步骤。重点探讨了时序校准的核心方法,旨在帮助工程师解决多通道系统相位不一致的难题,确保ADC与DAC达到精确的相位相干,从而构建高性能的MIMO和相控阵系统。

weixin_29206669的博客 192

Sourcetree与Gitee的完美协作:从身份验证到推送成功的全流程指南

本文提供了一份详细的Sourcetree与Gitee协作全流程指南,重点解决身份验证失败、Git版本配置及远端仓库设置等常见问题。通过分步讲解,帮助用户掌握从克隆、提交到成功推送的完整操作,并整合了使用个人访问令牌进行身份验证等关键热词信息,确保Windows与MacOS用户都能顺畅完成代码管理。

m2n3b4v5c6的博客 708

小白看过来,今天带你了解python2和python3的区别

小白看过来,今天带你了解python2和python3的区别

python03011的博客 3139

DeepSeek:为文化创意产业注入AI新动能

沪南胜境,闵行新章。随后,2024 年 5 月,DeepSeek 宣布开源第二代 MoE 大模型 DeepSeek-V2,以其比肩 GPT-4Turbo 的卓越性能,以及仅为 GPT-4 百分之一的价格优势,迅速在市场中掀起波澜,收获了 “AI 届拼多多” 的独特名号,让更多人看到了高性价比 AI 大模型的可能性。创作者自身也应提高对创作伦理的认识,树立正确的创作观念,在使用 AI 工具时,保持对创作的主导权,充分发挥自己的创造力和想象力,将 AI 作为创作的辅助工具,而不是替代品。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 1959

Python2 与 Python3 的区别

Python2 与 Python3 的区别 1) 核心类差异 Python3 对 Unicode(万国码) 字符的原生支持。 Python2 中使用 ASCII 码作为默认编码方式导致 string 有两种类型 str 和 unicode,Python3 只支持 unicode 的 string。 Python3 采用的是绝对路径的方式进行 import。 Python2 中相对路径...

weixin_43004724的博客 397

【网络安全】零基础入门网络安全劝退指北

作为从16年接触网络安全的小白,谈谈零基础如何入门网络安全,有不对的地方,请多多指教。 这些年最后悔的事情莫过于没有把自己学习的东西积累下来形成一个知识体系。 后续我也会陆续的整理网络安全的相关学习资料及文章,与大家一起探讨学习。 如何入门 简单了解网络安全 网络安全就是指的确保网络系统中的数据不被别人破坏,而网安工程师就是涉及程序来维护网络安全。 网安方向有很多职位,比如安全产品工程师,安全分析师,数据恢复工程师,网络架构工程师,安全编程工程师,以及网络集成工程师等。 工作内容主要包括: 安全评测,风

互联网老辛 4580

宇树G1开发实践--PPT汇报(遥控版)

本文介绍了一种基于遥控器交互的机器人演示控制系统。系统通过DDS中间件接收遥控器信号,采用位掩码边沿检测技术实现按键精准响应,将不同按键映射为播放控制命令(暂停/重播、跳转、跳过等)。核心交互逻辑包含主播放循环、命令处理和暂停机制,支持播放过程中的实时控制。与自动顺序播放版相比,该系统显著提升了演示灵活性,适用于需要人机互动的演讲场景。使用前需确保网络连接和设备安全,并熟悉按键功能映射。该系统实现了专业级的人机协同演示体验。

m0_47999117的博客 680

Python2和Python3的区别,以及为什么选Python3的原因

其次,Python 2和Python 3确实有一些差异,但是,并没有大家想象的那么大,Python 2和Python 3之间的差异不到Python语法的10%,我们可以快速地了解哪些Python 2里面的语法在Python 3中已经被弃用,在我们写代码的过程中,规避掉这一部分语法即可。所以,如果你说,我一开始学的就是Python 3,Python 3也是Python的未来,我不想去了解和学习Python 2。所以,学习Python,想直接抛弃Python 2学习Python 3,几乎是不可能的事情。

Machine Learning with Tutors 18万+

智能家居系统设计:基于MATLAB的智能家居系统设计和仿真,包括智能家居控制、家庭能源管理和家庭安全监控

基于 MATLAB 的智能家居系统设计方法可以有效地解决各类智能家居问题。

走向CTO的路上... 1775

python2 python3 对比字典、列表相同以及不同之处

set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种。创建集合set、集合set添加、集合删除、交集、并集、差集的操作都是非常实用的方法。 1、列表的交集(取相同的元素) a = [1,2,3] b = [1,2,3,4] A = set(a) B = set(b) c = A & B print(c,type(c)) 结果:{1, 2...

iris_csdn的博客 1657

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

paip.python3 的类使用跟python2 的不同之处

paip.python3 的类使用跟python2 的不同之处 #------python3的写法而且使用.. #class syllable(BaseClassA, BaseClassB): class syllable():     i = 123 # 类成员     ##todox selft.xxx is err,tips selef is not def     consona...

weixin_33894640的博客 111

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

python2和python3的部分不同之处

如果你是一个初学者,或者你以前接触过其他的编程语言,你可能不知道,在开始学习python的时候都会遇到一个比较让人很头疼的问题 版本问题!!是学习python2 还是学习 python3 ?这是非常让人纠结的! 搜索一下便会发现python3 和 python2 是不兼容的,而且差异比较大,到底学习哪个版本呢? 下面就来为大家分析一下 其实python是linux上最常用的软件之一,但是linu...

ymeng9527的博客 401

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Python2 与 Python3 不同之处

Python2 与 Python3 不同之处 P2 print不用加括号;P3 print(), 输出内容需写在括号里 P2 3/2 = 1;P3 3/2 = 1.5

rexxa的博客 184

python2和python3的不同之处

python2和python3的不同之处

叶强的博客 291

关于Python2与Python3的不同之处(持续更新)

1、简单粗暴的将python2编写的代码变成python3版本可执行:        步骤1:python安装目录下:Tools\scripts文件夹中找到“2to3.py”(Python3自带转换工具),按住Shift+鼠标右键,选择“在此处打开命令窗口”;       步骤2:在命令行输入:python 2to3.py -w 待转换脚本的目录(若批量转换则写到目录文件夹,例如:D:\pyt

qq_37321253的博客 391

python2 python3 range_range()——python2与python3不同之处

当你在不同python版本下使用 range() 时, 需要注意了PY2def range(start=None, stop=None, step=None): # known special case of range"""range(stop) -> list of integersrange(start, stop[, step]) -> list of integersReturn a l...

weixin_39629631的博客 73

python2.7与python3中print的一点不同之处

headfirst python。实验的时候 print("\t",end='')打印制表符不换行, 出错。 print在python3.0中与python 2.x中是不同的 在python 2.7中打印输出不换行可以这样写 : i = 10 while i > 0:           print i,           i = i-1 10 9 8 7 6 5 4 3 2 1

chenglansky的专栏 4915

range()——python2与python3不同之处

当你在不同python版本下使用 range() 时, 需要注意了我们先在原始IDE下分别码出来:python 2.>>>range(2,19) [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]python 3.>>>range(2,19) range(2,1...

weixin_33785108的博客 115

python2和python3range的区别_range()——python2与python3不同之处

当你在不同python版本下使用 range() 时, 需要注意了我们先在原始IDE下分别码出来:python 2.>>>range(2,19)[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]python 3.>>>range(2,19)range(2,19)而这样>>...

weixin_34769715的博客 183

python2和python3中int整型数据的不同之处

python2中的除法,结果为整型数字(int型),例如 10/5=2,10/3=3,小数位向下取整 python3中的除法,结果为浮点型数字(float型)结果小数位最多保留16位小数 转载于:https://www.cnblogs.com/jingjunke/p/11322885.html...

arsv26905的博客 728

python2和python3 中 input()方法的不同之处

python2在input()获取输入值时,所获取的值等于本身的数据类型 a = input("请输入:") print(a,type(a)) #如果输入的时int行数字,a 获取到的就是int 型数字 #如果输入的时字符串,a 获取到的就是字符串类型 python3在input()获取输入值时,获取到的都为字符串类型(str类型) 在python3中,无论数如什么类型,最终 a 都是...

arsv26905的博客 296
下一篇: 深入浅出地理解HTTP常见响应状态码
Ta来自江湖
博客等级 码龄9年 24粉丝 31原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值