最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python代碼顯得Pythonic(區(qū)別于其他語言的寫法)

 更新時間:2022年02月28日 09:14:07   作者:程序員涵涵2021  
這篇文章主要介紹了Python代碼顯得Pythonic(區(qū)別于其他語言的寫法),對于字符串連接,相比于簡單的+,更pythonic的做法是盡量使用%操作符或者format函數(shù)格式化字符串,感興趣的小伙伴和小編一起進(jìn)入文章了解更詳細(xì)相關(guān)知識內(nèi)容吧

一、字符串

對于字符串連接,相比于簡單的+,更pythonic的做法是盡量使用%操作符或者format函數(shù)格式化字符串。

name = "jack"
n = 90
?
# no
x = 'name: ' + name + '; score: ' + str(n)
? ??
# yes?
x = 'name: %s; score: %d' % (name, n)
x = 'name: {}; score: {}'.format(name, n)

避免在循環(huán)中用+和+=操作符來累加字符串。

由于字符串是不可變的, 這樣做會創(chuàng)建不必要的臨時對象, 并且導(dǎo)致二次方而不是線性的運(yùn)行時間。

比較pythonic的做法是將每個子串加入列表, 然后在循環(huán)結(jié)束后用.join 連接列表。

# no
a = ""
for i in ["a", "b", "c"]:
? ? a += i
? ??
# yes
a = "".join(["a", "b", "c"])

二、運(yùn)算

python支持鏈?zhǔn)竭\(yùn)算,pythonic的做法是優(yōu)先鏈?zhǔn)竭\(yùn)算,而不是使用and、or。

# no
a=1, b=1, c=1
if a > 1 and a < 2:
? ? pass
?
# yes
a=b=c=1
if 1 < a <2:
? ? pass

三、賦值

python 中的變量不需要聲明。每個變量在使用前都必須賦值,變量賦值以后該變量才會被創(chuàng)建。

在 python 中,變量就是變量,它沒有類型,我們所說的"類型"是變量所指的內(nèi)存中對象的類型。

python允許你同時為多個變量賦值。

a, b, c = 1, "a", 2
print(c)

這個特性的一個運(yùn)用是,在不引入第三個變量的情況下,交換兩個變量的值,非常優(yōu)雅

a, b = b, a

當(dāng)某函數(shù)有多個返回值,但只想獲取其中某值時,pythonic的做法是使用“_”在賦值時代替我們不需要的變量的位置。

# func函數(shù)有兩個返回值,但只想要第一個
need, _ = func(*args)?

四、變量命名

Python最基本的命名規(guī)則是:第一個字符必須是字母表中字母或下劃線 _,標(biāo)識符的其他的部分由字母、數(shù)字和下劃線組成,且對對大小寫敏感。

python對變量命名時應(yīng)避免變量名過長。

此外,對于較長的變量名,更 pythonic 的做法是用下劃線 _ 連接,如some_var,而非鞍型(大駝峰、小駝峰)格式,如 someVar。

# no
SomeVar = 1
?
# yes
some_var = 1

五、提升代碼可讀性

有一些寫法是Python允許的,但是卻不被推薦的,因?yàn)檫@些寫法會降低代碼的可讀性。

(一)避免用分號;在一行內(nèi)些多條語句

例如:

import sys; x = 'hello'; sys.stdout.write(x + '\n')

的可讀性,遠(yuǎn)遠(yuǎn)弱于

import sys
?
x = 'hello'
sys.stdout.write(x + '\n')

(二)避免用\符號來換行

如果代碼包含在括號、方括號或大括號中,Python將會認(rèn)為代碼是一行的:

def function(arg_one, arg_two,
? ? ? ? ? ? ?arg_three, arg_four):
? ? return arg_one

因此,為了提升可讀性,我們應(yīng)盡量避免用\符號進(jìn)行換行:

from mypkg import example1, \
? ? example2, example3

這種方式的可讀性比用括號換行的可讀性低很多。

(三)if-else 三元表達(dá)式

下面是一個if-else 三元表達(dá)式,可以將 if-else 放在一行

value_when_true if condition_is_ture else value_when_condition_is_false

例如:

a = "Hello" if foo() else "Goodbye"

我們可以用三元表達(dá)式來把if else 放在一行寫,但是不要把 if-elif-else 放在一行寫:

  • 一方面,這樣做會使得一行代碼變得過長,違反PER-8的書寫規(guī)則:規(guī)定一行代碼最長不能超過80個字符。
  • 另一方面,這么寫也違反了Python之禪:‘可讀性為王’。
  • 最后,Python 的語法也不支持這樣x寫。

因此,當(dāng)我們需要用到 elif 的時候,我們需要寫一個常規(guī)的、換行的 if-elif-else 表達(dá)式

到此這篇關(guān)于Python代碼顯得Pythonic(區(qū)別于其他語言的寫法)的文章就介紹到這了,更多相關(guān)Python代碼顯得Pythonic內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python Subprocess模塊原理及實(shí)例

    Python Subprocess模塊原理及實(shí)例

    這篇文章主要介紹了Python Subprocess模塊原理及實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • python神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)利用PyTorch進(jìn)行回歸運(yùn)算

    python神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)利用PyTorch進(jìn)行回歸運(yùn)算

    這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)利用PyTorch進(jìn)行回歸運(yùn)算的實(shí)現(xiàn)代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Python request設(shè)置HTTPS代理代碼解析

    Python request設(shè)置HTTPS代理代碼解析

    這篇文章主要介紹了Python request設(shè)置HTTPS代理代碼解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Python如何聲明以管理員方式運(yùn)行(附實(shí)戰(zhàn)案例)

    Python如何聲明以管理員方式運(yùn)行(附實(shí)戰(zhàn)案例)

    由于Windows的安全機(jī)制,Python寫的腳本缺少了管理員權(quán)限,運(yùn)行就會受到一些限制,這篇文章主要介紹了Python如何聲明以管理員方式運(yùn)行的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • 淺析Python的命名空間與作用域

    淺析Python的命名空間與作用域

    這篇文章主要介紹了Python的命名空間與作用域的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-11-11
  • python將多個py文件和其他文件打包為exe可執(zhí)行文件

    python將多個py文件和其他文件打包為exe可執(zhí)行文件

    這篇文章主要介紹了python將多個py文件和其他文件打包為exe可執(zhí)行文件,通過準(zhǔn)備要打包的工程文件展開詳情,需要的小伙伴可以參考一下
    2022-05-05
  • python判斷鏈表是否有環(huán)的實(shí)例代碼

    python判斷鏈表是否有環(huán)的實(shí)例代碼

    在本篇文章里小編給大家整理的是關(guān)于python判斷鏈表是否有環(huán)的知識點(diǎn)及實(shí)例代碼,需要的朋友們參考下。
    2020-01-01
  • Python編程實(shí)現(xiàn)從字典中提取子集的方法分析

    Python編程實(shí)現(xiàn)從字典中提取子集的方法分析

    這篇文章主要介紹了Python編程實(shí)現(xiàn)從字典中提取子集的方法,結(jié)合實(shí)例形式對比分析了Python采用字典推導(dǎo)式與序列轉(zhuǎn)換實(shí)現(xiàn)字典提取子集的相關(guān)操作技巧與優(yōu)缺點(diǎn),需要的朋友可以參考下
    2018-02-02
  • python實(shí)現(xiàn)掃雷游戲

    python實(shí)現(xiàn)掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • PyTorch中Tensor的拼接與拆分的實(shí)現(xiàn)

    PyTorch中Tensor的拼接與拆分的實(shí)現(xiàn)

    這篇文章主要介紹了PyTorch中Tensor的拼接與拆分的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08

最新評論

双牌县| 屏南县| 工布江达县| 岳西县| 肇东市| 磴口县| 娄烦县| 宁明县| 灌南县| 南和县| 林西县| 双江| 五常市| 巴林左旗| 临江市| 梁河县| 都安| 大方县| 宁河县| 永年县| 丘北县| 郓城县| 洛隆县| 裕民县| 广水市| 蓬溪县| 永昌县| 扎囊县| 丰城市| 通海县| 武安市| 石渠县| 彩票| 衡东县| 迁安市| 盈江县| 郧西县| 菏泽市| 天门市| 汕头市| 会同县|