日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

剛開始學(xué)習(xí)Python/ target=_blank class=infotextkey>Python的時(shí)候,我們就了解了python的編碼風(fēng)格要求,通過python終端方式輸入import this可以看到它的具體描述。

讓你的Python代碼更加Pythonic

 

這就是著名的“python之禪”,簡(jiǎn)言之,就是要寫符合pythonic的代碼,簡(jiǎn)潔、優(yōu)雅、可讀性強(qiáng)。

下面選取了一些常見的Python規(guī)范和代碼風(fēng)格,大家可以進(jìn)行參考和學(xué)習(xí)。

 

命名

首先看一下變量的命名規(guī)范(pep8)規(guī)范:

文件夾:包名,建議僅使用小寫字母命名,不建議使用下劃線。

模塊: 小寫或者小寫加下劃線連接,比如 module.py、db_convert.py等。

類: 駝峰式,首字母大寫,單詞直接連接。

class ThisIsAClass(object):
    pass

函數(shù):小寫,用下劃線隔開

def this_is_a_func():
    pass

變量: 小寫,用下劃線隔開

this_is_a_variable = 1

**常量:**常量名所有字母大寫,由下劃線連接各個(gè)單詞,如THIS_IS_A_CONSTANT = 1

讓你的Python代碼更加Pythonic

 

 

語法風(fēng)格

1.交換a 和 b的數(shù)值

其他語言的方法:

a = 5
b = 6
temp = a
a = b
b = temp

python中,更加簡(jiǎn)潔的方法:

a = 5
b = 6
a, b = b, a
print(a, b)
輸出:6 5

 

2.多個(gè)變量賦值

python中可以一行代碼,同時(shí)給多個(gè)變量賦值

a,b,c = 2,5,12

 

3.合并字符串

傳統(tǒng)的字符串合并方法,由于字符串對(duì)象不可改變,每次修改會(huì)產(chǎn)生一個(gè)新的對(duì)象,這種方法會(huì)消耗很多內(nèi)存。

list_str = ["hello ", "python", "!"]
result = ""
for i in list_str:
    result+=i
print(result)

python中,使用join()方法更加高效,注意join()方法只適用于元素是字符串的列表、元組、集合等類型。

list_str = ["hello ", "python", "!"]
result = "".join(list_str)
print(result)

輸出:hello python!

 

4.列表去重

使用集合的唯一性,對(duì)列表進(jìn)行去重

a = [1, 2, 3, 1, 2,3 , 1, 3, 2, 4, 1, 3, 4, 5, 6, 5, 4, 4, 3, 6]
lst = list(set(a))
print(lst)
輸出:

 

5.if/else 三目運(yùn)算

python支持的三目運(yùn)算格式:

為真時(shí)的結(jié)果 if 判斷條件 else 為假時(shí)的結(jié)果(注意,沒有冒號(hào))
a=4
st = "a大于4" if a>4 else "a小于等于4"
print(st)
輸出:a小于等于4

 

6.enumerate

enumerate()是 Python 的內(nèi)置函數(shù)。可以將一個(gè)可迭代的(Iterable)對(duì)象(列表、字符串等)組成一個(gè)索引序列,可以同時(shí)獲得索引和值。

獲取列表元素及索引

# 一般寫法
names = ['Bob', 'Alice', 'Guido']
n = len(names)
for i in range(n):
    print(f'{i} {names[i]}')

# 使用enumerate()函數(shù)
names = ['Bob', 'Alice', 'Guido']
for index, value in enumerate(names):
    print(f'{index}: {value}')
輸出:
0: Bob
1: Alice
2: Guido
讓你的Python代碼更加Pythonic

 

7.解包

解包在英文里叫做 Unpacking,就是將容器里面的元素逐個(gè)取出來。

解壓列表/元組的元素,賦值給不同的變量

a, b, c = [1,2,3]
print(a, b, c)
輸出:1 2 3

函數(shù)中的解包操作

在函數(shù)調(diào)用中,* 能夠?qū)⒃M或列表解包成不同的參數(shù)。

def func(a, b, c, d):
    print(a, b, c, d)

args = [1, 2, 3, 4]
func(*args)
輸出:1 2 3 4

在函數(shù)調(diào)用中,** 會(huì)以鍵/值的形式解包一個(gè)字典,使其成為一個(gè)獨(dú)立的關(guān)鍵字參數(shù)。

def func(a, b, c, d):
    print(a, b, c, d)

kwargs = {"a": 1, "b": 2, "c": 3, "d": 4}
func(**kwargs)
輸出:1 2 3 4

 

8.列表推導(dǎo)式

列表推導(dǎo)式可以利用 range 區(qū)間、元組、列表、字典和集合等數(shù)據(jù)類型,快速生成一個(gè)滿足指定需求的列表。

[表達(dá)式 for 迭代變量 in 可迭代對(duì)象 [if 條件表達(dá)式] ]

[if 條件表達(dá)式] 可以省略。

生成一個(gè)列表,列表元素分別為 [1x1,2x2,3x3……nxn],假設(shè)n = 10

# 一般方法
lst = []
for i in range(1, 11):
    lst.Append(i*i)
print(lst)
輸出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
# 列表推導(dǎo)式
lst = [i*i for i in range(1,11)]
print(lst)
輸出:[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

要求返回的序列中不存在偶數(shù)項(xiàng)

lst = [i*i for i in range(1, 11) if i % 2 != 0]
print(lst)
輸出:[1, 9, 25, 49, 81]

 

9.使用關(guān)鍵字in

  • in:如果在指定的序列中找到值返回 True,否則返回 False。
  • not in:如果在指定的序列中沒有找到值返回 True,否則返回 False。

判斷元素是否在列表中

number=[1,2,3,4,5]
if 1 in number:
    print("1 in number")
if 0 not in number:
    print("0 not in number")

在 for 循環(huán)中,獲取列表、元組、字典的每一項(xiàng):

list = [2, 3, 4]
for num in list:
    print (num)
    
dic = {"name": "xiaoming", "age": 18}
for k, v in dic.items():
    print(k, v)

 

10.使用zip同步處理多個(gè)列表

zip() 函數(shù)是 Python 內(nèi)置函數(shù),它可以將多個(gè)序列(列表、元組、字典、集合、字符串等)中對(duì)應(yīng)位置的元素重新組合,生成一個(gè)個(gè)新的元組。

z = zip([1,2,3],[3,4,5])
print(list(z))
輸出:[(1, 3), (2, 4), (3, 5)]
讓你的Python代碼更加Pythonic

 

 

11.真值判斷

判斷一個(gè)變量是否為 True 的時(shí)候,Python 具有自身獨(dú)特的方式,不需要寫出判斷條件,只需要在 if 或 while 關(guān)鍵字后面直接寫上該對(duì)象即可。

常見的真值為False的情況:

  • 常量:None and False.
  • 數(shù)值0值: 0, 0.0, 0j
  • 序列或者集合為空:'', (), [], {}, set(), range(0)
# 對(duì)于布爾對(duì)象,建議這樣寫
x = True
if x:
    pass
# 不建議這樣寫
if x == True:
    pass

lst = []
# 對(duì)于列表對(duì)象,建議這樣寫
if lst:
    pass
# 不建議這樣寫
if len(lst) != 0:
    pass

更多關(guān)于pythonic的寫法,可以參考Python官網(wǎng)的代碼規(guī)范要求
https://www.python.org/dev/peps/pep-0008/。

原文鏈接:
https://mp.weixin.qq.com/s/fiqV_X7Aoeeq_gLEivDwLg

分享到:
標(biāo)簽:Python
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定