商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > python2与python3区别,转python3代码

python2与python3区别,转python3代码

  发布于2026-07-20 阅读(0)

扫一扫,手机访问

目录

一、Windows中Python2和Python3共存 二、Python2和Python3的代码更改点 1. print函数不一样 2. dict没有.has_key 3. 读取文件中文字符坑

一、Windows中Python2和Python3共存

最近看到提醒说Python2即将停更,于是顺手装了个Python3.7。Windows下让两者共存,最简单粗暴的办法其实还是在安装目录里动手脚——把Python2.7的python.exe改名为python2.exe,Python3.7的改成python3.exe。这样一来,想用哪个版本就在命令行里敲对应的命令,互不干扰。

在这里插入图片描述

二、Python2和Python3的代码更改点

1. print函数不一样

Python3已经不再支持Python2那种不加括号的print 'helloKitty', y, z写法了。必须加上括号,变成print('helloKitty', x, y)。双引号当然也没问题。

不仅如此,Python3的print()还多了不少实用功能,语法变成了:

print(value1, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

可以同时打印多个字符串,用sep参数控制它们之间的分隔符,用end参数控制末尾的字符(比如换成空字符串就能实现不换行)。回想一下,Python2里想不换行还得在语句末尾加个逗号,到了Python3下就彻底行不通了。举个例子:

>>> print('hello', 'Kitty', sep='-')  
hello-Kitty  
>>> print('hello', 'Kitty', sep='+', end='')  # 结尾不换行  
hello+Kitty

2. dict没有.has_key

Python2里判断字典是否包含某个键,习惯用if adict.has_key(key1):。到了Python3,这个方法被移除了,改写成if key1 in adict:即可,更简洁也更符合直觉。

3. 读取文件中文字符坑

Python2时代,读取文件经常在文件头加一句# _*_ coding:utf-8 _*_,然后直接with open(fileName, 'r') as f:。这套组合拳在Python3里就不灵了——必须显式指定编码:

with open(fileName, 'r', encoding='utf-8') as f:

有意思的是,这个encoding参数在Python2里又不支持。所以迁移代码时,得根据版本做条件判断,或者干脆统一用io.open之类的兼容方案。

待不断改坑补充中……

本文转载于:https://blog.csdn.net/wuyoy520/article/details/91578204 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注