python3的样子_python3与python2不一样的地方
進入不同語言版本的Python交互環境
py -2
py -3
pip 命令的執行 :
py -2 -m pip install xxxx
py -3 -m pip install nose
執行python文件
py -2 a.py
py -3 a.py
py2:
print "hello"
py3:
print("hello")
如果不想py -2這樣進入python2,可以
進入到python27的安裝目錄
把python.exe 修改為python2.exe
在環境變量里面加入這個Python27的路徑
python3 a.py
pip3 install
python3:str類型---》相當于py2的unicode類型
str類型encode之后變為了bytes類型---》相當于python2的str類型
print(s.encode("gbk"))
b'\xce\xd2\xc3\xc7'
print(s.encode("gbk").decode("gbk"))
我們
文件操作
在python3中,默認編碼環境為utf8,故不需要像py2那樣在文件頭指定編碼,但是在open()函數多一個encoding參數,在python2是沒有的
with open('d:\\gloryroad\\1.txt','r',encoding='utf8') as fp:
... print(fp.read())
...
abbcddeeegiiiilmnnooooorrrstuvyz
中文
在python3中,write函數里面必須是str類型的
with open('d:\\gloryroad\\1.txt','w',encoding='utf8') as fp:
... fp.write("我們\n你們\n".encode('utf8'))
...
Traceback (most recent call last):
File "", line 2, in
TypeError: write() argument must be str, not bytes
在python3中連接數據庫的包是PyMySQL,python2是MySQLdb,連接方法都一樣。
序列化
python3沒有cpickle,只有pickle
多線程
thread 模塊已被廢棄。用戶可以使用 threading 模塊代替。所以,在 Python3 中不能再使用"thread" 模塊。為了兼容性,Python3 將 thread 重命名為 "_thread"。
隊列
python3的queue模塊是小寫,py2是Queue,因此
import queue
q=queue.Queue(5)
q.put(2)
q.get()
2
q
使用中文格式化時間
from datetime import datetime
nt=datetime.now()
print(nt.strftime('%Y年%m月%d日 %H時%M分%S秒')) --->報錯
法1:
import locale
locale.setlocale(locale.LC_CTYPE, 'chinese')
print(nt.strftime('%Y年%m月%d日'))
2015年08月10日
原理是:“在Windows里,time.strftime使用C運行時的多字節字符串函數strftime,這個函數必須先根據當前locale配置來編碼格式化字符串(使用PyUnicode_EncodeLocale)?!比绻辉O置好locale的話,根據默認的"C" locale,底層的wcstombs函數會使用latin-1編碼(單字節編碼)來編碼格式化字符串,然后導致題主提供的多字節編碼的字符串在編碼時出錯。
法2:
print(nt.strftime('%Y{y}%m{m}%dze8trgl8bvbq').format(y='年', m='月', d='日'))
原理是:既然直接丟中文字符進去會出錯,那么就繞過這個問題,丟(可能)永遠不會出錯的ascii字符進去充當占位符,格式化完畢后再將占位符換回中文字符。
法3:
print(time.strftime('%Y年%m月%d日'))
2019年05月23日
寫文件時不一樣:
with("filename.txt","w",encoding="utf-8") as fp:
fp.write("我們\n很好\n")
python3和python2的導入有點不一樣,import xxx不適用,后續需要詳讀核心編程的模塊導入
python2的python27/Lib下 的是ConfigParser
python3的python27/Lib下是configparser
所以引入的時候是不同的,需要注意
py2.7.11:
import ConfigParser
py3.7.3:
import configparser
python2.7.11
try:
pass
except Exception, e:
raise e
python3.7.3:
try:
pass
except Exception as e:
raise e
python2.7.11
d={'a':123}
if d.haskey(a):
pass
python3.7.3:
if 'a' in d.keys():
pass
總結
以上是生活随笔為你收集整理的python3的样子_python3与python2不一样的地方的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python编写木马攻击_用Python
- 下一篇: python数据结构是建好的吗_Pyth