亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

Python【賦值語(yǔ)句】專(zhuān)講,可不能只會(huì) a=b 啊!建議掌握!

zlyBear / 2642人閱讀

摘要:二高級(jí)賦值語(yǔ)句何為高級(jí)賦值語(yǔ)句就是常規(guī)的賦值方法進(jìn)行操作是會(huì)報(bào)錯(cuò)的,得進(jìn)行一些更高級(jí)一點(diǎn)的操作。小技巧三舉例用賦值語(yǔ)句把列表進(jìn)行每次減少個(gè)元素并輸出列表。

從Python基礎(chǔ)到高級(jí)編程學(xué)完,基本上Python入門(mén)的知識(shí)就已經(jīng)學(xué)完了,為了給更多學(xué)完P(guān)ython入門(mén)要過(guò)度到Python進(jìn)階方向(比如爬蟲(chóng)/后端/數(shù)據(jù)分析等等)的新手鞏固好基礎(chǔ)知識(shí),專(zhuān)門(mén)做了一期關(guān)于Python新手入門(mén)時(shí)關(guān)于賦值語(yǔ)句的內(nèi)容。

在Python當(dāng)中,賦值有很多的方式,比如說(shuō)變量、元組、列表等等的賦值都是不一樣的,所以如果在賦值這一塊模棱兩可,可想而知后面的進(jìn)階內(nèi)容,讓你多帶帶寫(xiě)代碼也是會(huì)寸步難行的。

廢話不多說(shuō),學(xué)而時(shí)習(xí)之,有則改之無(wú)則加勉。


一、常見(jiàn)賦值語(yǔ)句

我們來(lái)看看Python中常用的賦值語(yǔ)句有哪些:

方法解釋
a = 10基本形式
a,b = 10,20元組賦值
[a,b] = [10,20]列表賦值
a,b = “AB”序列賦值
a,b = [10,20]序列賦值
a,*b = “hello”擴(kuò)展的序列解包
a = b = c =10多目標(biāo)賦值
a+=1增強(qiáng)賦值

序列是有序集的通用術(shù)語(yǔ),在Python中,字符串、列表、元組、字節(jié)數(shù)組、緩沖區(qū)、Xrange對(duì)象均是屬于不同的序列類(lèi)型,也就是說(shuō)(10,20)既可以說(shuō)是1個(gè)元組,也可以說(shuō)是1個(gè)序列。

舉例1:利用1個(gè)元組給另一個(gè)元組賦值

a,b = 10,20print(a)print(b)

運(yùn)行結(jié)果:

1020

注意:等號(hào)兩邊的元素?cái)?shù)量要相當(dāng),如果是a,b=10 或者a = 10,20 ,那么就會(huì)報(bào)錯(cuò)。

舉例2:利用序列給另一個(gè)序列賦值

a,b = [20,30]print(a)print(b)

運(yùn)行結(jié)果:

2030

a,b 默認(rèn)是一個(gè)元組,[20,30]是一個(gè)列表,不同的序列類(lèi)型之間也可以通過(guò)這種方式進(jìn)行賦值。


二、高級(jí)賦值語(yǔ)句

何為高級(jí)賦值語(yǔ)句?就是常規(guī)的賦值方法進(jìn)行操作是會(huì)報(bào)錯(cuò)的,得進(jìn)行一些更高級(jí)一點(diǎn)的操作。比如說(shuō)要把字符"SPAM"賦值給a和b,常規(guī)賦值是這樣的:

s = "SPAM"a,b = sprint(a,b )

然后運(yùn)行之后就會(huì)報(bào)錯(cuò),字符串元素多于元組(a,b)里面的元素,直接復(fù)制是會(huì)報(bào)錯(cuò)的。

1.小技巧一

遇到這種情況,我們就需要用到切片的操作進(jìn)行賦值了:

s = "SPAM"a,b = s[:3],s[2:]   print(a,b )

運(yùn)行結(jié)果:

SPA AM

2.小技巧二

除了用切片的方式,我們還可以用其他的方式給a和b賦值:

s = "SPAM"(a,b),c = s[:2],s[2:]print(a,b,c )

運(yùn)行結(jié)果:

S P AM

這種操作相當(dāng)于在大元組((a,b),c)里面分了一個(gè)小元組(a,b),然后對(duì)a,b進(jìn)行賦值。

3.小技巧三

舉例:用賦值語(yǔ)句把列表[1,2,3,4,5]進(jìn)行每次減少1個(gè)元素并輸出列表。

l = [1,2,3,4,5]while l :    l = l[1:]    print(l)

運(yùn)行結(jié)果:

[2, 3, 4, 5][3, 4, 5][4, 5][5][]

4.案例

現(xiàn)有一個(gè)二維列表[[[1,2,3],[4,5,6],[7,8,9]] ,如何用序列賦值的方法進(jìn)行輸出列表里的每一個(gè)元素?方法如下:

s = [[1,2,3],[4,5,6],[7,8,9]]for (a,b,c) in s:    print(a,b,c)

運(yùn)行結(jié)果:

1 2 34 5 67 8 9

(a,b,c)和 s 是不同類(lèi)型的序列類(lèi)型,通過(guò)序列賦值的方法也能夠?qū)崿F(xiàn)。


三、拓展的序列解包

前面的常見(jiàn)賦值語(yǔ)句表里面我們講過(guò)拓展的序列解包操作:

方式解釋
a,*b = “hello”擴(kuò)展的序列解包

那么它該如何使用?首先我們應(yīng)該知道 *b 是有何用:

*b:獲取分配完之后所剩的數(shù)據(jù),封裝成列表進(jìn)行輸出

舉例:

a,*b = "abcdefg"print(a)print(b)

運(yùn)行結(jié)果:

a["b", "c", "d", "e", "f", "g"]

通過(guò)這個(gè)例子可以看出,a被第一個(gè)元素賦值,剩下的都給了b,并且剩下的元素都被封裝成了列表。

1.小技巧一

既然上面我們講了

a,*b = "字符串"

那么如果我們多加一個(gè)元素來(lái)賦值呢?又會(huì)如何?

a,*b,c = "abcdefg"print(a)print(b)print(c)

運(yùn)行結(jié)果:

a["b", "c", "d", "e", "f"]g

可以看出來(lái)的是,還真給c留出來(lái)了一個(gè)對(duì)象并賦值,這個(gè)方法可以靈活運(yùn)用。

2.小技巧二

如果說(shuō)我們對(duì)調(diào)一下位置:

*b,a = "abcdefg"print(a,b)

運(yùn)行結(jié)果:

g ["a", "b", "c", "d", "e", "f"]

可以看出,字符串的最后一個(gè)元素g還是賦值給了a,所以對(duì)調(diào)位置也是可以的,此時(shí)的a將會(huì)從后面取。

3.小技巧三

如果我們只給3個(gè)元素,但有4個(gè)元素要賦值,那么 * b 能拿到值嗎?

a,c,*b,d = "abc"print(a,b,c,d)

運(yùn)行結(jié)果:

a [] b c

結(jié)果b是1個(gè)空列表,因?yàn)樽址挥腥齻€(gè)字符,不夠給b,同樣的,不管你怎么交換 * b 的位置,結(jié)果都一樣,也就是說(shuō),會(huì)優(yōu)先給其他元素賦值, b 的優(yōu)先級(jí)最低,有時(shí)候會(huì)拿不到值*。

4.注意點(diǎn):*b 不能直接賦值

有一個(gè)點(diǎn)我們需要注意一下,*b 是不能直接賦值的:

前面被賦值的對(duì)象只能是列表或者元組的序列類(lèi)型,而 *b 多帶帶存在時(shí)是不屬于這種類(lèi)型的。

這個(gè)時(shí)候我們?nèi)绾胃恼亢芎?jiǎn)單,把前面變成元組或者列表就可以了:

哪怕是加個(gè)逗號(hào),*b都可以變成元組。

5.案例

那么拓展的序列解包我們也來(lái)一個(gè)案例,我們還是用上面講過(guò)的把列表[1,2,3,4,5]逐次減少1個(gè)元素并輸出列表,這次我們用序列解包的方法來(lái)做:

l = [1,2,3,4,5]while l:    a,*l = l    print(l)

運(yùn)行結(jié)果:

[2, 3, 4, 5][3, 4, 5][4, 5][5][]

那么前面高級(jí)賦值語(yǔ)句內(nèi)容我們還講過(guò)一個(gè)for循環(huán)輸出二維列表的例子,那么for循環(huán)能不能也用帶 * 的參數(shù)來(lái)進(jìn)行賦值呢?答案也是可以的:


四、多目標(biāo)賦值

多目標(biāo)賦值的形式:

a = b = c = 10

這也是Python優(yōu)雅的一個(gè)點(diǎn)所在,在底層邏輯是等號(hào)右邊先給左邊賦值,依次賦值,共用的是1個(gè)首地址,也就是說(shuō)10先賦值給c,c的值變成了10,c再賦值給b,b再賦值給a,它們的地址都是一樣的:


五、增強(qiáng)賦值

增強(qiáng)賦值運(yùn)算不止有 += ,基礎(chǔ)的時(shí)候我們還講過(guò):

+= -= *=  /= //= %= **=  

它們的作用主要是:

1. 執(zhí)行效率高2. 用于系統(tǒng)優(yōu)化3. 減少代碼量  

這里我就不做舉例了,這個(gè)我們經(jīng)常用到,也很簡(jiǎn)單,知道它們有這個(gè)效果就可以了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/122003.html

相關(guān)文章

  • ??爆肝十二萬(wàn)字《python從零到精通教程》,從零教你變大佬??(建議收藏)

    文章目錄 強(qiáng)烈推薦系列教程,建議學(xué)起來(lái)??! 一.pycharm下載安裝二.python下載安裝三.pycharm上配置python四.配置鏡像源讓你下載嗖嗖的快4.1pycharm內(nèi)部配置 4.2手動(dòng)添加鏡像源4.3永久配置鏡像源 五.插件安裝(比如漢化?)5.1自動(dòng)補(bǔ)碼神器第一款5.2漢化pycharm5.3其它插件 六.美女背景七.自定義腳本開(kāi)頭八、這個(gè)前言一定要看九、pyt...

    booster 評(píng)論0 收藏0
  • Python進(jìn)階:如何將字符串常量轉(zhuǎn)化為變量?

    摘要:例如,整數(shù)浮點(diǎn)數(shù)字符串等基本類(lèi)型,就是字面量。所以,取出的字符串內(nèi)容,并不能直接用作變量名,需要另想辦法??偨Y(jié)抽象一下最初的問(wèn)題,它實(shí)際問(wèn)的是如何將字符串內(nèi)容作為其它對(duì)象的變量名,更進(jìn)一步地講是如何將常量轉(zhuǎn)化為變量。 前幾天,我們Python貓交流學(xué)習(xí)群 里的 M 同學(xué)提了個(gè)問(wèn)題。這個(gè)問(wèn)題挺有意思,經(jīng)初次討論,我們認(rèn)為它無(wú)解。 然而,我認(rèn)為它很有價(jià)值,應(yīng)該繼續(xù)思考怎么解決,所以就在私密...

    lolomaco 評(píng)論0 收藏0
  • #yyds干貨盤(pán)點(diǎn)# 9. Python 學(xué)習(xí)過(guò)程的第一個(gè)山坡,99%的人都倒在了山坡下

    摘要:返回值,非必須,返回多個(gè)值使用逗號(hào)分隔即可。注意第一行末尾的分號(hào)無(wú)參數(shù)無(wú)返回值的函數(shù)該內(nèi)容將演示函數(shù)的使用便捷性。函數(shù)的返回值可以賦值給一個(gè)變量,通過(guò)打印該變量,即可知道返回的具體內(nèi)容。先學(xué)習(xí)一下局部變量與全局變量。 Python 學(xué)習(xí)的第一個(gè)難關(guān) -- 函數(shù),這個(gè)地方學(xué)會(huì)的人覺(jué)得沒(méi)有啥,沒(méi)學(xué)過(guò)的學(xué)的時(shí)候迷迷瞪...

    番茄西紅柿 評(píng)論0 收藏2637

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<