发布于2026-07-20 阅读(0)
扫一扫,手机访问
最近看到提醒说Python2即将停更,于是顺手装了个Python3.7。Windows下让两者共存,最简单粗暴的办法其实还是在安装目录里动手脚——把Python2.7的python.exe改名为python2.exe,Python3.7的改成python3.exe。这样一来,想用哪个版本就在命令行里敲对应的命令,互不干扰。
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
Python2里判断字典是否包含某个键,习惯用if adict.has_key(key1):。到了Python3,这个方法被移除了,改写成if key1 in adict:即可,更简洁也更符合直觉。
Python2时代,读取文件经常在文件头加一句# _*_ coding:utf-8 _*_,然后直接with open(fileName, 'r') as f:。这套组合拳在Python3里就不灵了——必须显式指定编码:
with open(fileName, 'r', encoding='utf-8') as f:
有意思的是,这个encoding参数在Python2里又不支持。所以迁移代码时,得根据版本做条件判断,或者干脆统一用io.open之类的兼容方案。
待不断改坑补充中……
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8