本文目錄
這是我Python數(shù)據(jù)分析系列文章的第一篇,主要介紹Python基礎(chǔ)部分,Python知識(shí)面比較廣,本文主要是介紹平時(shí)使用比較多的知識(shí)點(diǎn),更多的問(wèn)題,大家可以后臺(tái)私信我。 基礎(chǔ)知識(shí)1、第一個(gè)Python代碼 print('hello world') #Python3中print是一個(gè)函數(shù)
2、Python不區(qū)分大小寫,嚴(yán)格縮進(jìn)。 3、單行注釋以#開頭,多行注釋以''' '''(三引號(hào),可以是單引或者雙引)開始結(jié)尾。 基本數(shù)據(jù)類型數(shù)據(jù)類型是每一種編程語(yǔ)言的必有的知識(shí),Python也有其對(duì)應(yīng)的基本數(shù)據(jù)類型,本節(jié)主要介紹其四種基本類型:整形、浮點(diǎn)型、布爾型。 #賦值操作=,==表示等于 int_value = 520 type(int_value) #<class 'int'> float_value = 19.9 type(float_value) #<class 'float'> boolean_value = True type(boolean_value) #<class 'bool'> 可以通過(guò)dir()或者h(yuǎn)elp()查看其對(duì)應(yīng)的屬性和方法,比如查看整形: ['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']
其中帶雙劃線的就是整形的可用方法,其他就是整形的屬性。 基本數(shù)據(jù)結(jié)構(gòu)Python基本的數(shù)據(jù)結(jié)構(gòu)主要包括字符串、列表、元組、字典、集合等 字符串 1、基本方法 string_value = 'python' type(string_value) #<class 'str'> 字符串的內(nèi)置方法可以通過(guò)dir()查詢。 ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
str1 = 'hello world' str1.split() #['hello','world'] str1.find('hello') #0 str1.replace('hello','Hello') #'Hello world' str1.capitalize() #'Hello world' '_'.join(str1) #'h_e_l_l_0_ _w_o_r_l_d' 2、切片 str2 = 'python'
s[0:1] #'p'
s[-1] #'n'
s[:-1]:'pytho'
tips:
列表 1、創(chuàng)建列表 l1 = [] l2 = [1,2,3] #中括號(hào),以逗號(hào)間隔 type(l1) #<class 'list'> 2、方法 列表是一種Python基本數(shù)據(jù)結(jié)構(gòu),是可變類型,支持刪減查等操作,相對(duì)來(lái)說(shuō)遍歷查找效率較低,不過(guò)使用方面。 l1.append(2) #列表元素添加
l1.extend([6,7,8,9]) #列表合并,注意與append的區(qū)別
l1.remove(2) #列表元素刪除
l1.pop(0) #按index刪除元素,注意與remove的區(qū)別
l1.index(2) #獲取元素對(duì)應(yīng)的index
l1.reverse() #列表翻轉(zhuǎn)
l1.insert(0,2) #按照index插入元素
l1.count(2) #元素計(jì)數(shù)
l1.sort() #列表排序,區(qū)別于sorted()
l1.clear() #列表清除
l[0]=10 #列表元素修改
3、切片 與字符串類似,具體操作如下 l = [1,2,3,4,5,6,7,8] l[0] #[1],索引從0開始 l[-1] [8]支持正負(fù)縮影,-1表示列表最后一個(gè)元素 l[2:4] #[3,4] 注意左閉右開 l[:] #[1,2,3,4,5,6,7,8],相當(dāng)于淺拷貝,在深淺拷貝知識(shí)點(diǎn)會(huì)講到 l[::2] #[1,3,5,7],step為2 l[::-1] #相當(dāng)于列表翻轉(zhuǎn) l l[:3] #[1,2,3,4,5,6,7,8,1,2,3] [0]*5 #列表生成[0,0,0,0,0] 4、遍歷 [i for i in range(5)] #[0,1,2,3,4]
元組 Python基本數(shù)據(jù)結(jié)構(gòu),不可變類型,不支持刪查等操作 t = tuple() #空元組,小括號(hào) t1 = (1,2,[3,4]) #注意嵌套 t1[0] = 0 #TypeError t1[2].remove(3) #(1,2,[4]) 注意列表可以刪減操作 1、方法 t1 = (1,2,3,2,4,1)
t1.count(1) #2,計(jì)數(shù)
t1.index(3) #2,查找元素索引
2、賦值 a,b = (1,2) #a=1,b=2 a,*b1 = (1,2,3,4) #a=1,b=(2,3,4),注意*操作,函數(shù)參數(shù)有應(yīng)用 元組創(chuàng)建和遍歷優(yōu)于列表。 字典 用{}包含,以鍵值對(duì)的形式存在,劍指不可重復(fù),可變類型,支持基本操作。 d = {} #空字典,或者d=dict()
d1 = {'name:libai','gender':'男','age':55}
1、方法 #基本方法 cmp(d1, d2) #比較兩個(gè)字典元素。 len(d1) #計(jì)算字典元素個(gè)數(shù),即鍵的總數(shù)。 str(d1) #輸出字典可打印的字符串表示。 type(d1) #返回輸入的變量類型,如果變量是字典就返回字典類型。 # 訪問(wèn)字典中的值 d1['name'] # 查找不到會(huì)出錯(cuò) d1.get('name') # 查找不到,返回None,查找效率更高 #1.get('name','not find') # 查找不到,返回not find d1.keys() #獲取字典所有的鍵的列表 d1.values() #獲取字典所有的值的列表 d1.items() #獲取字典的鍵值對(duì) #字典的修改 d1['key'] = value #key存在即修改,key不存在即新增 d1.setdefault('key',value) #新增鍵值對(duì),存在會(huì)出錯(cuò) d1.pop('key') #必須要傳值,因?yàn)樽值涫菬o(wú)序的 d1.popitem() #隨機(jī)刪除一個(gè) del d1['key'] #刪除元素 d1.clear() #清空字典 d1.update(d2) #將d2更新到d1,如果key存在則修改,不存在則添加 #字典的fromkeys方法創(chuàng)建字典,所有元素有一個(gè)默認(rèn)值 {}.fromkeys(['key1', 'key2', 'key3'], 'value') d1.has_key('key')#判斷d1中是否有ke 集合 用大括號(hào)表示,或者用set(),集合里面的元素唯一、無(wú)序。 s = {} #空集合或者set()
s1 = {1,2,3,4,5}
s1[0] #KeyError,沒(méi)有切片操作
1、方法 #基本方法 s1.add(5) #向集合中添加元素 s1.remove(5) #從集合中刪除元素,當(dāng)刪除的元素不存在時(shí),返回TypeError s1.discard(6) #從集合中刪除元素,當(dāng)刪除的元素不存在時(shí)不出錯(cuò) s1.pop() #任意刪除一個(gè)值,如果集合為空,返回KeyError s1.clear() #清除集合中的值 #對(duì)集合進(jìn)行排序 sorted(s1,reverse=True) list(set(l1)) #刪除l1列表中的重復(fù)項(xiàng) #并交補(bǔ) s1.union(s2) #兩個(gè)集合取并集 s1|s2 #等價(jià)上式 s1.intersection(s2) #兩個(gè)集合取交集 s1&s2 #等價(jià)上式 s1.difference(s2) #兩個(gè)集合取差集,在s1中,不在s2中 s1-s2 #等價(jià)上式 s2.issubset(s1) #判斷s2是不是s1的子集 集合不能存儲(chǔ)可變對(duì)象,也能去判斷重復(fù)的對(duì)象。 基礎(chǔ)語(yǔ)句語(yǔ)句可以稱之為代碼結(jié)構(gòu),在任何編程語(yǔ)言中都是基礎(chǔ)和重點(diǎn),不同代碼編寫,我們需要使用不同的語(yǔ)句。本節(jié)主要介紹Python語(yǔ)言的條件語(yǔ)句和循環(huán)語(yǔ)句。 條件語(yǔ)句 條件語(yǔ)句主要包括三種:
#if語(yǔ)句
if x=520:
print('我愛你!')
#if-else語(yǔ)句
if x=520:
print('我愛你!')
else:
print('我不愛你!')
#if-elif-else 語(yǔ)句
if x=520:
print('我一定愛你!')
elif x=88:
print('我可能愛你!')
else:
print('我不愛你!')
循環(huán)語(yǔ)句 循環(huán)語(yǔ)句主要包括for循環(huán)和white循環(huán) #for循環(huán) for i in range(10): print(i) #在for循環(huán)中,有一個(gè)常用的內(nèi)置函數(shù)enumerate(),使用它比range()高效 for index,value in enumerate([1,2,3,4,5]): print(index,value) #white循環(huán) n = 0 while n<5: n = 1 print(n) 函數(shù)Python內(nèi)置函數(shù)和匿名函數(shù) 1、內(nèi)置函數(shù) 函數(shù)是是任何一門語(yǔ)言中最主要的部分之一,在介紹Python之前先了解一下,Python內(nèi)置的一些函數(shù)(所謂Python內(nèi)置函數(shù)是指Python里面已經(jīng)封裝好的,不需要人為去編寫,可以直接拿來(lái)使用的),下面是一些常用的Python內(nèi)置函數(shù)。 大部分內(nèi)置函數(shù)在Python前面部分已經(jīng)有所介紹,本節(jié)主要介紹三個(gè)內(nèi)置函數(shù)map(),filter(),reduce()(注:Python3中reduce不在是一個(gè)內(nèi)置函數(shù))以及和Python匿名函數(shù)的使用。 #map
map(str,[1,2,3]) #['1','2','3']
# filter
filter(lambda x:x>2,[1,2,3,4,5]) #[3,4,5]
#reduce,在Python3中需要導(dǎo)入
from functools import reduce
reduce(lambda x,y: x y, range(1,8)) #36
2、匿名函數(shù) 用 lambda 關(guān)鍵字來(lái)創(chuàng)建一個(gè)小的匿名函數(shù)。這個(gè)函數(shù)返回兩個(gè)參數(shù)的和:lambda a, b: a b 。lambda函數(shù)可以在需要函數(shù)對(duì)象的任何地方使用。它們?cè)谡Z(yǔ)法上限于單個(gè)表達(dá)式。從語(yǔ)義上來(lái)說(shuō),它們只是正常函數(shù)定義的語(yǔ)法糖。與嵌套函數(shù)定義一樣,lambda函數(shù)可以引用包含范圍的變量: def make_incrementor(n): #和一個(gè)普通函數(shù)一樣 return lambda x: x n f = make_incrementor(42) f(0) #42 f(1) #43 #在一些如字典的排序中常用到 pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')] pairs.sort(key=lambda pair: pair[1]) pairs #[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')] Python函數(shù) 1、Python函數(shù)定義 關(guān)鍵字 def 引入一個(gè)函數(shù)定義。它必須后跟函數(shù)名稱和帶括號(hào)的形式參數(shù)列表。構(gòu)成函數(shù)體的語(yǔ)句從下一行開始,并且必須縮進(jìn)。 #看一個(gè)基本的斐波那契函數(shù)
def fib2(n): #n是函數(shù)參數(shù)
result = []
a, b = 0, 1
while a < n:
result.append(a) # see below
a, b = b, a b
return result
fib2(100) #[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
2、函數(shù)參數(shù)形式 函數(shù)定義主要包括四種形式。
(1)必需參數(shù) 必需參數(shù)須以正確的順序傳入函數(shù)。調(diào)用時(shí)的數(shù)量必須和聲明時(shí)的一樣,不然函數(shù)運(yùn)行會(huì)出錯(cuò)。 def get_age(age): return 'he is {}'.format(age) get_age(28) #'he is 28' (2)關(guān)鍵字參數(shù) 關(guān)鍵字參數(shù)和函數(shù)調(diào)用關(guān)系緊密,函數(shù)調(diào)用使用關(guān)鍵字參數(shù)來(lái)確定傳入的參數(shù)值。使用關(guān)鍵字參數(shù)允許函數(shù)調(diào)用時(shí)參數(shù)的順序與聲明時(shí)不一致,因?yàn)?Python 解釋器能夠用參數(shù)名匹配參數(shù)值。 def parrot(voltage, state='a stiff', action='voom'):
print('-- This parrot wouldn't', action, end=' ')
print('if you put', voltage, 'volts through it.')
print('-- It's', state, '!')
#接受一個(gè)必需的參數(shù)(voltage)和兩個(gè)可選的參數(shù)(state, action)。這個(gè)函數(shù)可以通過(guò)下面的任何一種方式調(diào)用.
parrot(1000)
parrot(voltage=1000)
parrot(voltage=1000000, action='VOOOOOM')
parrot(action='VOOOOOM', voltage=1000000)
注意:在函數(shù)調(diào)用中,關(guān)鍵字參數(shù)必須跟隨在位置參數(shù)的后面。傳遞的所有關(guān)鍵字參數(shù)必須與函數(shù)接受的其中一個(gè)參數(shù)匹配(比如 actor 不是函數(shù) parrot 的有效參數(shù)),它們的順序并不重要。這也包括非可選參數(shù), (3)默認(rèn)參數(shù) 調(diào)用函數(shù)時(shí),如果沒(méi)有傳遞參數(shù),則會(huì)使用默認(rèn)參數(shù)。以下實(shí)例中如果沒(méi)有傳入 age 參數(shù),則使用默認(rèn)值。 def printinfo( name, age=35 ): print ('名字: ', name) print ('年齡: ', age) return #注意默認(rèn)參數(shù)的使用 def add_end(L=[]): L.append('END') return L #連續(xù)運(yùn)行兩次,結(jié)果不一致 add_end() #['END'] add_end() #['END', 'END'] #注:Python函數(shù)在定義的時(shí)候,默認(rèn)參數(shù)L的值就被計(jì)算出來(lái)了,即[],因?yàn)槟J(rèn)參數(shù)L也是一個(gè)變量,它指向?qū)ο骩],每次調(diào)用該函數(shù),如果改變了L的內(nèi)容,則下次調(diào)用時(shí),默認(rèn)參數(shù)的內(nèi)容就變了,不再是函數(shù)定義時(shí)的[]了。 #正確寫法 def add_end(L=None): if L is None: L = [] L.append('END') return L #兩次調(diào)用結(jié)果一致 add_end() #['END'] add_end() #['END'] (4)不定長(zhǎng)參數(shù) 不定長(zhǎng)參數(shù)以*或者**的形式存在。
def concat(*args, sep='/'):
return sep.join(args)
#傳入一個(gè)元組
concat('earth', 'mars', 'venus')
#'earth/mars/venus'
concat('earth', 'mars', 'venus', sep='.')
#'earth.mars.venus'
#包含四種參數(shù)類型
def func(a, b, c=0, *args, **kw):
print 'a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw
args = (1, 2, 3, 4)
kw = {'x': 99}
func(*args, **kw)
#a = 1 b = 2 c = 3 args = (4,) kw = {'x': 99}
迭代器和生成器 1、迭代器 迭代器的使用并使得 Python 成為一個(gè)統(tǒng)一的整體。 比如使用for 語(yǔ)句時(shí)會(huì)調(diào)用容器對(duì)象中的 iter()。 該函數(shù)返回一個(gè)定義了 __next__() 方法的迭代器對(duì)象,該方法將逐一訪問(wèn)容器中的元素。 當(dāng)元素用盡時(shí),__next__() 將引發(fā) StopIteration 異常來(lái)通知終止 for 循環(huán)。 你可以使用 next() 內(nèi)置函數(shù)來(lái)調(diào)用 __next__() 方法: s = 'abc' it = iter(s) it #<iterator object at 0x00A1DB50> >>> next(it) 'a' >>> next(it) 'b' >>> next(it) 'c' >>> next(it) Traceback (most recent call last): File '<stdin>', line 1, in <module> next(it) StopIteration 看過(guò)迭代器協(xié)議的幕后機(jī)制,給你的類添加迭代器行為就很容易了。 定義一個(gè) __iter__() 方法來(lái)返回一個(gè)帶有 __next__() 方法的對(duì)象。 如果類已定義了 __next__(),則 __iter__() 可以簡(jiǎn)單地返回 self: class Reverse:
'''Iterator for looping over a sequence backwards.'''
def __init__(self, data):
self.data = data
self.index = len(data)
def __iter__(self):
return self
def __next__(self):
if self.index == 0:
raise StopIteration
self.index = self.index - 1
return self.data[self.index]
rev = Reverse('spam')
iter(rev)
<__main__.Reverse object at 0x00A1DB50>
for char in rev:
print(char)
m
a
p
2、生成器 Generator 是一個(gè)用于創(chuàng)建迭代器的簡(jiǎn)單而強(qiáng)大的工具。 它們的寫法類似標(biāo)準(zhǔn)的函數(shù),但當(dāng)它們要返回?cái)?shù)據(jù)時(shí)會(huì)使用 yield 語(yǔ)句。 每次對(duì)生成器調(diào)用 next() 時(shí),它會(huì)從上次離開位置恢復(fù)執(zhí)行(它會(huì)記住上次執(zhí)行語(yǔ)句時(shí)的所有數(shù)據(jù)值)。 顯示如何非常容易地創(chuàng)建生成器的示例如下: def reverse(data): for index in range(len(data)-1, -1, -1): yield data[index] for char in reverse('golf'): print(char) f l o g 可以用生成器來(lái)完成的操作同樣可以用迭代器來(lái)完成。 但生成器的寫法更為緊湊,因?yàn)樗鼤?huì)自動(dòng)創(chuàng)建 __iter__() 和 __next__() 方法。另一個(gè)關(guān)鍵特性在于局部變量和執(zhí)行狀態(tài)會(huì)在每次調(diào)用之間自動(dòng)保存。 這使得該函數(shù)相比使用 self.index 和 self.data 這種實(shí)例變量的方式更易編寫且更為清晰。除了會(huì)自動(dòng)創(chuàng)建方法和保存程序狀態(tài),當(dāng)生成器終結(jié)時(shí),它們還會(huì)自動(dòng)引發(fā) StopIteration。 這些特性結(jié)合在一起,使得創(chuàng)建迭代器能與編寫常規(guī)函數(shù)一樣容易。 類與對(duì)象類提供了一種組合數(shù)據(jù)和功能的方法。創(chuàng)建一個(gè)新類意味著創(chuàng)建一個(gè)新 類型 的對(duì)象,從而允許創(chuàng)建一個(gè)該類型的新 實(shí)例 。每個(gè)類的實(shí)例可以擁有保存自己狀態(tài)的屬性。一個(gè)類的實(shí)例也可以有改變自己狀態(tài)的(定義在類中的)方法。 類的定義 類定義內(nèi)的語(yǔ)句通常都是函數(shù)定義,但也允許有其他語(yǔ)句。 class ClassName:
<statement-1>
.
.
<statement-N>
類對(duì)象 類對(duì)象支持兩種操作:屬性引用和實(shí)例化。 屬性引用 使用 Python 中所有屬性引用所使用的標(biāo)準(zhǔn)語(yǔ)法: obj.name。 有效的屬性名稱是類對(duì)象被創(chuàng)建時(shí)存在于類命名空間中的所有名稱。 因此,如果類定義是這樣的: class MyClass: '''A simple example class''' i = 12345 def f(self): return 'hello world' 那么 MyClass.i 和 MyClass.f 就是有效的屬性引用,將分別返回一個(gè)整數(shù)和一個(gè)函數(shù)對(duì)象。 類屬性也可以被賦值,因此可以通過(guò)賦值來(lái)更改 MyClass.i 的值。 __doc__ 也是一個(gè)有效的屬性,將返回所屬類的文檔字符串: 'Asimple example class'。 類的 實(shí)例化 是使用函數(shù)表示法。 可以相像類對(duì)象就是會(huì)返回一個(gè)新的類實(shí)例的不帶參數(shù)的函數(shù)。 舉例來(lái)說(shuō)(假設(shè)使用上述的類): x = MyClass()
創(chuàng)建類的新實(shí)例 并將此對(duì)象分配給局部變量 x。 實(shí)例化操作會(huì)創(chuàng)建一個(gè)空對(duì)象。 許多類喜歡創(chuàng)建帶有特定初始狀態(tài)的自定義實(shí)例。 因此類定義可能包含一個(gè)名為 __init__() 的特殊方法,比如: def __init__(self): self.data = [] 當(dāng)一個(gè)類定義了 __init__() 方法時(shí),類的實(shí)例化操作會(huì)自動(dòng)為新創(chuàng)建的類實(shí)例發(fā)起調(diào)用 __init__()。而且__init__() 方法還可以有額外參數(shù)以實(shí)現(xiàn)更高靈活性。 在這種情況下,提供給類實(shí)例化運(yùn)算符的參數(shù)將被傳遞給 __init__()。 例如: class Complex:
def __init__(self, realpart, imagpart):
self.r = realpart
self.i = imagpart
x = Complex(3.0, -4.5)
x.r, x.i #(3.0, -4.5)
類和實(shí)例變量 實(shí)例變量用于每個(gè)實(shí)例的唯一數(shù)據(jù),而類變量用于類的所有實(shí)例共享的屬性和方法: class Dog: def __init__(self, name): self.name = name self.tricks = [] def add_trick(self, trick): self.tricks.append(trick) d = Dog('Fido') e = Dog('Buddy') d.add_trick('roll over') e.add_trick('play dead') d.tricks #['roll over'] e.tricks #['play dead' 類的繼承 一般情況下子類會(huì)繼承一些父類的方法,并切可能會(huì)對(duì)父類的一些方法進(jìn)行重寫。 class DerivedClassName(BaseClassName):
<statement-1>
.
.
<statement-N>
Python有兩個(gè)內(nèi)置函數(shù)可被用于繼承機(jī)制:
編程風(fēng)格從學(xué)習(xí)python的那一刻起,你就已經(jīng)準(zhǔn)備好了寫更長(zhǎng),更復(fù)雜的Python代碼了,這時(shí)候有必要討論一下代碼風(fēng)格。對(duì)于Python,PEP 8 已經(jīng)成為大多數(shù)項(xiàng)目所遵循的風(fēng)格指南;它促進(jìn)了一種非常易讀且令人賞心悅目的編碼風(fēng)格。每個(gè)Python開發(fā)人員都應(yīng)該在某個(gè)時(shí)候閱讀它。以下是為你提取的最重要的幾個(gè)要點(diǎn):
總結(jié)本文是Python數(shù)據(jù)分析系列文章的第一篇,簡(jiǎn)單的介紹一些Python語(yǔ)言特性,下一篇將帶來(lái)numpy庫(kù)的使用介紹。 |
|