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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python3兼容python2 print_python 字符串 r raw Python2 和 Python3 的区别及兼容技巧

發(fā)布時(shí)間:2025/3/8 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python3兼容python2 print_python 字符串 r raw Python2 和 Python3 的区别及兼容技巧 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

最近 Python 之父 Guido van Rossum(龜爺)終于在 Python 官方郵件組落實(shí)了 Python 2.7 的終焉之日(EOL)。

說(shuō)的是 Python 2.7 的 EOL 日期最終確定為 2020 年 1 月 1 日,之后不會(huì)有任何更新,包括源碼的安全補(bǔ)丁。

所以兼容Python3已經(jīng)可以說(shuō)非常必要了,但有些常用的庫(kù)還沒(méi)有升級(jí)到Python3,所以我們看下如何寫出兼容2和3的代碼。

Python 2 or 3 ?

Python 3 被欽定為 Python 的未來(lái),于 2008 年末發(fā)布,是目前正在開(kāi)發(fā)的版本。旨在解決和修正 Python 2 遺留的設(shè)計(jì)缺陷、清理代碼庫(kù)冗余、追求有且僅有一種最佳實(shí)踐方式來(lái)執(zhí)行任務(wù)等問(wèn)題。

起初,由于 Python 3 不能向后兼容的事實(shí),導(dǎo)致了用戶采用緩慢,對(duì)初學(xué)者不友好等問(wèn)題。但在 Python 社區(qū)的努力和決絕態(tài)度下,截至龜爺發(fā)出郵件之前,已經(jīng)有了 21903 個(gè) Packages 可以支持 Python 3.5,其中包括了絕大多數(shù)最受歡迎的封裝庫(kù),與此同時(shí)也有越來(lái)越多的封裝庫(kù)(e.g. Django、Numpy)表示其新版本將不再支持 Python 2。

Python 2.7 于 3.0 之后的 2010 年 7 月 3 日發(fā)布,計(jì)劃作為 2.x 的最后一個(gè)版本。Python 2.7 的歷史任務(wù)在于通過(guò)提供 2 和 3 之間的兼容性措施,使 Python 2.x 的用戶更容易將代碼移植到 Python 3.x 上。那么如果你希望自己的代碼能夠兼容兩個(gè)不同的版本,首先你起碼要讓代碼能夠正常的運(yùn)行在 Python 2.7 上。

注:下文使用 P2 表示 Python 2.7;使用 P3 表示 Python 3.x。

不同與兼容

__future__ 模塊是我們首先需要了解的,該模塊最主要的作用是支持在 P2 中導(dǎo)入那些在 P3 才生效的模塊和函數(shù)。是一個(gè)非常優(yōu)秀的兼容性工具庫(kù),在下文中給出的許多 兼容技巧 實(shí)例都依賴于它。

特性在此版本可選在此版本內(nèi)置效果

電腦技術(shù)002pc網(wǎng)認(rèn)為此文章對(duì)《python 字符串 r raw Python2 和 Python3 的區(qū)別及兼容技巧》說(shuō)的很在理。

nested_scopes2.1.0b12.2PEP 227:靜態(tài)嵌套作用域

generators2.2.0a12.3PEP 255:簡(jiǎn)單生成器

division2.2.0a23.0PEP 238:除法操作符改動(dòng)

absolute_import2.5.0a13.0PEP 328:Imports 多行導(dǎo)入與絕對(duì)相對(duì)路徑

with_statement2.5.0a12.6PEP 343:with 語(yǔ)句

print_function2.6.0a23.0PEP 3105:print 語(yǔ)句升級(jí)為函數(shù)

unicode_literals2.6.0a23.0PEP 3112:Bytes 類型

(__future__ 功能列表)

統(tǒng)一不等于語(yǔ)法

P2 支持使用 <> 和 != 表示不等于。

P3 僅支持使用 != 表示不等于。

兼容技巧:

統(tǒng)一使用 != 語(yǔ)法

統(tǒng)一整數(shù)類型

P2 中整數(shù)類型可以細(xì)分為短整型 int 和長(zhǎng)整型 long。

P3 廢除了短整型,并統(tǒng)一使用 int 表示長(zhǎng)整型(不再有 L 跟在 repr 后面)。

兼容技巧:#?Python?2?only

k?=?9223372036854775808L

#?Python?2?and?3:

k?=?9223372036854775808#?Python?2?only

bigint?=?1L

#?Python?2?and?3

from?future.builtins?import?int

bigint?=?int(1)

統(tǒng)一整數(shù)除法

P2 的除法 / 符號(hào)實(shí)際上具有兩個(gè)功能:

當(dāng)兩個(gè)操作數(shù)均為整型對(duì)象時(shí),進(jìn)行的是地板除(截除小數(shù)部分),返回整型對(duì)象;

當(dāng)兩個(gè)操作數(shù)存在至少一個(gè)浮點(diǎn)型對(duì)象時(shí),進(jìn)行的是真除(保留小數(shù)部分),返回浮點(diǎn)型對(duì)象。

P3 的除法 / 符號(hào)僅僅具有真除的功能,而地板除的功能則交由 // 來(lái)完成。

兼容技巧:#?Python?2?only:

assert?2?/?3?==?0

#?Python?2?and?3:

assert?2?//?3?==?0

“True?division”?(float?division):#?Python?3?only:

assert?3?/?2?==?1.5

#?Python?2?and?3:

from?__future__?import?division????#?(at?top?of?module)

更多:python 字符串 r raw Python2 和 Python3 的區(qū)別及兼容技巧

https://www.002pc.comhttps://www.002pc.com/python/1254.html

你可能感興趣的Python3,Python2,兼容,技巧,區(qū)別

No alive nodes found in your cluster

0踩

0 贊

總結(jié)

以上是生活随笔為你收集整理的python3兼容python2 print_python 字符串 r raw Python2 和 Python3 的区别及兼容技巧的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。