你好:、第一:幫助文檔;第二種:dir(),小括號(hào)內(nèi)是你想要了解的對(duì)象,這個(gè)函數(shù)還是很偉大的!
創(chuàng)新互聯(lián)建站于2013年開始,先為江門等服務(wù)建站,江門等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為江門企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
python語言最常見的括號(hào)有三種,分別是:小括號(hào)( )、中括號(hào)[ ]和大括號(hào){ },分別用來代表不同的python基本內(nèi)置數(shù)據(jù)類型。
1、python中的小括號(hào)( ):代表元組數(shù)據(jù)類型,元組是一種不可變序列。
2、python中的中括號(hào)[ ],代表list列表數(shù)據(jù)類型,需要注意的是python的list索引從0開始編號(hào),并且取切片的時(shí)候是左閉右開區(qū)間,如下圖所示:
3、python大括號(hào){ }:代表 dic t字典數(shù)據(jù)類型,字典是由鍵對(duì)值組組成。冒號(hào)':'分開鍵和值,逗號(hào)','隔開組。用大括號(hào)創(chuàng)建的方法如下:
matlab中對(duì)小括號(hào)( )、中括號(hào)[ ]和大括號(hào){}也有不同的使用方法:
1、matlab中的小括號(hào)一般用在函數(shù)調(diào)用或取位置
a=[1 2 3];
a(1)=1
2、matlab的中括號(hào)一般用于字符串的操作
a='matlab'
b='python'
c=[a,' ',b]
c='matlab python'
3、matlab中的大括號(hào)一般用于元胞數(shù)組的操作
a=[1 2 3]
b='str'
c{1}=a;c{2}=b;
c=
1*2 cell
{[1 2 3]},{'str'}
小括號(hào)表示元組
如
t=(1,2,3)
中括號(hào)表示列表
如l=[1,2,3]
大括號(hào)表示字典
如
d={1:1,2:2,3:3}
,
中括號(hào)還可以表示上述三種數(shù)據(jù)類型的下標(biāo),如t[0],l[0],d[1]
大括號(hào)也可以表示set
如
s={1,2,3}
小括號(hào)也可以用在函數(shù)調(diào)用
,改變表達(dá)式的優(yōu)先級(jí)等
python生成器是用來代替"不一定能夠使用全部元素的數(shù)組",等到使用某一元素時(shí),才生成該元素,用來節(jié)省空間.
python生成器寫法有兩種
第一種:(數(shù)組生成式的中括號(hào)變成小括號(hào))
# 生成器
arr = (x for x in range(1,6))
# 生成器下一個(gè)元素用next()來取得
print("--next1--")
print(next(arr))
print("--next2--")
print(next(arr))
print("--next3--")
print(next(arr))
輸出結(jié)果:
--next1--
1
--next2--
2
--next3--
3
第二種方式: 使用關(guān)鍵字 yield 關(guān)鍵字
# 斐波那契數(shù)列生成器
def creatNum():
print("---開始執(zhí)行生成器方法---")
a,b = 0,1
for i in range(0,5):
print("--step1--")
yield b
print("--step2--")
a,b = b,a+b
print("--step3--")
print("--..stop..--")
print("直接調(diào)用方法...")
print(creatNum())
#這里用一個(gè)標(biāo)識(shí)符來指向生成器(不要把creatNum()當(dāng)做函數(shù))
func = creatNum()
#一次生成
print("使用next調(diào)用")
x = next(func)
print(x)
#又一次生成
print("使用next調(diào)用")
x = next(func)
print(x)
print("使用next調(diào)用")
x = next(func)
print(x)
輸出結(jié)果:
直接調(diào)用方法...
使用next調(diào)用
---開始執(zhí)行生成器方法---
--step1--
1
使用next調(diào)用
--step2--
--step3--
--step1--
1
使用next調(diào)用
--step2--
--step3--
--step1--
2
生成器還可以用 生成器.next 來調(diào)用,等價(jià)于 next(生成器)
如果使用next來調(diào)用,調(diào)用到生成器執(zhí)行完畢,就會(huì)崩掉. 我們基本不會(huì)使用next來執(zhí)行生成器
一般來說會(huì)用for循環(huán)來執(zhí)行生成器:
# 斐波那契數(shù)列生成器
def creatNum():
print("---開始執(zhí)行生成器方法---")
a,b = 0,1
for i in range(0,5):
print("--step1--")
yield b
print("--step2--")
a,b = b,a+b
print("--step3--")
print("--..stop..--")
print("直接調(diào)用方法...")
print(creatNum())
#這里用一個(gè)標(biāo)識(shí)符來指向生成器(不要把creatNum()當(dāng)做函數(shù))
func = creatNum()
#使用for循環(huán)來執(zhí)行生成器
for i in func:
print(i)
輸出結(jié)果: (執(zhí)行完畢不會(huì)崩潰)
直接調(diào)用方法...
---開始執(zhí)行生成器方法---
--step1--
1
--step2--
--step3--
--step1--
1
--step2--
--step3--
--step1--
2
--step2--
--step3--
--step1--
3
--step2--
--step3--
--step1--
5
--step2--
--step3--
--..stop..--
在執(zhí)行生成器時(shí),可以使用 生成器.send(param) 方法
send方法不光是執(zhí)行一步next操作,還會(huì)把send里面的參數(shù)傳到生成器中充當(dāng)yield表達(dá)式的返回值
**(注意:第一次執(zhí)行,send里面的參數(shù)應(yīng)該為None,或者使用next方法)
def test():
i = 0
while i 5:
temp = yield i
print(temp)
i += 1
t = test()
#先使用next執(zhí)行,看能出來什么結(jié)果
t.__next__()
t.__next__()
print(t.__next__())
#使用send執(zhí)行
t.send("1231231231223123")
print(t.send("hahahahhahaha"))
輸出結(jié)果: (可見next輸出temp為none , 而send 則把值傳遞進(jìn)了生成器)
None
None
2
1231231231223123
hahahahhahaha
4