Python基礎(chǔ)—list颅痊、set殖熟、dict、函數(shù)參數(shù)

Python中斑响,等號=是賦值語句菱属,可以把任意數(shù)據(jù)類型賦值給變量钳榨,同一個(gè)變量可以反復(fù)賦值,而且可以是不同類型的變量

常量纽门,習(xí)慣上用全部大寫的變量名表示薛耻,但是Python沒有任何機(jī)制保證該變量不會被修改

除法

不同于其他語言,Python中的除法是精確的赏陵,返回的是浮點(diǎn)數(shù)饼齿,即便兩個(gè)整數(shù)恰好整除,結(jié)果也是浮點(diǎn)數(shù)

    9 / 3 = 3.0
    10 / 3 = 3.3333333333335

還有種地板除法 // ,使得兩個(gè)整數(shù)的除法仍然是整數(shù)

    10 // 3 = 3

list 有序集合蝙搔,類型可以不同


    classmates = ['michael', 'bob', 'tracy']
    classmates[0]
    len(classmates)
    classmates.append('luseike') # 追加到末尾
    classmates.insert(1, 'jack') # insert 插入到指定位置
    classmates.pop()             # 刪除末尾
    classmates.pop(1)            # 刪除指定位置的元素
    classmates[1] = 'sara'       # 元素替換缕溉,直接賦值
    L = ['apple', 213, True]     # list內(nèi)的元素有序,類型可以不同

tuple 另一種有序列表杂瘸,和list很相似倒淫,但是tuple一旦初始化就不能被修改

    # 不再有append、insert這樣的方法
    classmates = ('michael', 'bob', 'tracy')

tuple在定義的時(shí)候就必須被確定下來败玉,定義空的tuple可以寫成()敌土,定義一個(gè)元素的tuple必須追加,

t = (1)     # 定義的是1這個(gè)數(shù)运翼,不是tuple
t = (1, )

dict 和 set

dict 是Python的內(nèi)置字典 key--value

d = {'luseike': 100, 'lemon': 80}

d['luseike']            # 取值  key不存在會報(bào)異常
d['adam'] = '85'        # 加值 多次對一個(gè)key放入value返干,后面的值會把前面的值沖掉

if 'luseike' in d:
    pass                # key in dict 判斷key是否存在,返回bool

d.get('luseike')        # get(key) 不存在返回None血淌,或者自己指定value
d.get('luseike', -1)

set和dict類似矩欠,一組key的集合,但不存儲value
set 可以看成數(shù)學(xué)意義上的無序和無重復(fù)元素的集合悠夯,因此兩個(gè)set可以做數(shù)學(xué)意義上的交集癌淮、并集

s = set([1, 2, 3])      # set的傳入?yún)?shù)是一個(gè)list
s                       # {1, 2, 3}
s.add(4)                # set.add(key)
s.remove(4)             # set.remove(key)


s = set([1, 2, 3, 4])
s2 = set([2, 3, 4, 5])
print(s | s2)           # 并集
print(s & s2)           # 交集

函數(shù)的參數(shù)

  • 必選參數(shù)
  • 默認(rèn)參數(shù)
  • 可變參數(shù)
  • 關(guān)鍵字參數(shù)
  • 命名關(guān)鍵字參數(shù)
def power(x, n = 2):
    total = 1

    while n > 0:
        n = n - 1
        total = total * x

    return total

# `必選參數(shù)在前,默認(rèn)參數(shù)在后`

print(power(8))
print(power(5, 3))          

def enroll(name, gender, age = 6, city = 'sh'):
    print("name: ", name)
    print("gender: ", gender)
    print("age: ", age)
    print("city: ",city)

# 有多個(gè)默認(rèn)參數(shù)沦补,即可以按照參數(shù)順序依次傳值乳蓄,也可以綁定參數(shù)名、不按照順序傳值
enroll('lemon', 'F', 20, 'nj')
enroll('luseike', 'M', city='ah')

默認(rèn)參數(shù)必須指向不變對象

def add_end(L = []):
    L.append('END')
    return L

print(add_end())
print(add_end())
# ['END']
# ['END', 'END']

Python函數(shù)在定義的時(shí)候夕膀,默認(rèn)參數(shù)L就已經(jīng)被計(jì)算出來虚倒,存在內(nèi)存中,它也是一個(gè)變量产舞。
每次調(diào)用該函數(shù)魂奥,如果改變了L的內(nèi)容,則下次調(diào)用時(shí)易猫,默認(rèn)參數(shù)的內(nèi)容就變了

def add_end2(L = None):
    if L is None:
        L = []
    L.append('END')
    return L

print(add_end2())
print(add_end2())

可變參數(shù)

可變參數(shù)在參數(shù)名前有個(gè)*耻煤,函數(shù)內(nèi)部接收的是一個(gè)tuple;如果有一個(gè)tuple或list,Python是用在list或tuple前面加*违霞,變成可變參數(shù)傳遞

def mutable_params(*nums):
    total = 0
    for num in nums:
        total += num
    return total

print(mutable_params(1, 2, 3, 4, 5))

add_nums = [6, 7, 8, 9, 10]
print(mutable_params(*add_nums))

關(guān)鍵字參數(shù) **

允許傳入0個(gè)或任意個(gè)含參數(shù)名的參數(shù)嘴办,這些關(guān)鍵字參數(shù)在函數(shù)內(nèi)部自動封裝為一個(gè)dict

def person(name, age, **other_info):
    print('name:', name, 'age:', age, "otherInfo:",other_info)
person('luseike', 28)                                       # 可以只傳入必選參數(shù)
person('luseike', 28, nickname = '男神', city = 'ah')     # 傳入任意個(gè)數(shù)的關(guān)鍵字參數(shù)


extra = {'city': 'beijing', 'job': 'ios_developer'}
person('laojiang', 27, city = extra['city'], job = extra['job'])
# **extra 表示把extra這個(gè)字典的所有key-value用關(guān)鍵字參數(shù)傳入到**other_info參數(shù)
person('laojiang', 27, **extra)

命名關(guān)鍵字參數(shù)

關(guān)鍵字參數(shù)傳入不受限制的key-value,具體傳入了啥只有在函數(shù)內(nèi)部檢查买鸽,如果要限制關(guān)鍵字參數(shù)的名字,就可以用命名關(guān)鍵字參數(shù)

def person2(name, age, *, city = 'beijing', job):
    print(name, age, city, job)

person2('luseike', 18, city = 'shanghai', job = 'pythonDev')
person2('lucy', 20, job='UI')
  • 命名關(guān)鍵字參數(shù)需要一個(gè)特殊的分隔符 *贯被, *后面的參數(shù)被視為關(guān)鍵字參數(shù)
  • 關(guān)鍵字參數(shù)必須傳入?yún)?shù)名眼五,缺少參數(shù)名,Python解釋器會理解為是一個(gè)位置參數(shù)
  • 命名關(guān)鍵字參數(shù)具有默認(rèn)值時(shí)彤灶,可以不傳入
  • 如果有可變參數(shù) (帶*的參數(shù))看幼,可以省略 * 分隔符
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市幌陕,隨后出現(xiàn)的幾起案子诵姜,更是在濱河造成了極大的恐慌,老刑警劉巖搏熄,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棚唆,死亡現(xiàn)場離奇詭異,居然都是意外死亡心例,警方通過查閱死者的電腦和手機(jī)宵凌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來止后,“玉大人瞎惫,你說我怎么就攤上這事∫胫辏” “怎么了瓜喇?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長歉糜。 經(jīng)常有香客問我乘寒,道長,這世上最難降的妖魔是什么现恼? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任肃续,我火速辦了婚禮,結(jié)果婚禮上叉袍,老公的妹妹穿的比我還像新娘始锚。我一直安慰自己,他們只是感情好喳逛,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布瞧捌。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪姐呐。 梳的紋絲不亂的頭發(fā)上殿怜,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天,我揣著相機(jī)與錄音曙砂,去河邊找鬼头谜。 笑死,一個(gè)胖子當(dāng)著我的面吹牛鸠澈,可吹牛的內(nèi)容都是我干的柱告。 我是一名探鬼主播,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼笑陈,長吁一口氣:“原來是場噩夢啊……” “哼际度!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起涵妥,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤乖菱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后蓬网,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體窒所,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年拳缠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了墩新。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,769評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡窟坐,死狀恐怖海渊,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情哲鸳,我是刑警寧澤臣疑,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站徙菠,受9級特大地震影響讯沈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜婿奔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一缺狠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧萍摊,春花似錦挤茄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽笼恰。三九已至,卻和暖如春歇终,著一層夾襖步出監(jiān)牢的瞬間社证,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工评凝, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留追葡,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓奕短,卻偏偏與公主長得像辽俗,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子篡诽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評論 2 361