日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python3的样子_python3与python2不一样的地方

發布時間:2025/3/20 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)。”如果不設置好locale的話,根據默認的"C" locale,底層的wcstombs函數會使用latin-1編碼(單字節編碼)來編碼格式化字符串,然后導致題主提供的多字節編碼的字符串在編碼時出錯。

法2:

print(nt.strftime('%Y{y}%m{m}%dozvdkddzhkzd').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不一样的地方的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。