三分鐘搞定python基礎

2021-09-26 13:35:48 字數 4636 閱讀 1336

庫的匯入和新增

在機器學習和人工智慧為主導的工業4.0時代,python猶如一股龍捲風襲捲著一切。python作為一門解釋性的物件導向的語言雖然在運算速度上有不足,但是相比於程式運算速度,程式專案開發速度更為重要,而且在在這個裝備氪金時代,運算速度的缺憾完全可以拿硬體來補,何況python還支援並行多執行緒開發。python之所以在專案開發速度方面獨樹一幟,在於它的開源思想和活躍的社群,在網路爬蟲、科學計算、機器學習和生物資訊等諸多領域都有大量成熟、穩健的模組,這些造好的『輪子』省去了大量的開發時間,讓我們在接到專案時可以在極短的時間內完成架構,快速解決問題。

其實,這不是問題,無論python2還是python3對於初學者來說差別不大,但是須知python3在效能上做了優化,更加規範化了某些用法,支援python3的模組日益增多,python3可謂勢在必行,所以這裡還是強烈推薦大家按照python3的語法來學習。

不僅是python,大多數語言的執行方式一般包括兩種,互動式執行和接受指令碼執行。

所謂互動式,即進入python終端,所鍵即所得,這種好處對於初學者來說甚好,便於直觀理解各個函式的語法、功能。尤其推薦大家使用ipython,可以帶來更好的互動式體驗。另外一種是通過執行寫好的指令碼,這種是真正的生產環境下的執行方式,但是在執行之前需要大量測試,避免各種報錯和隱藏的bug,這裡推薦大家使用python專門的開發編輯器pycharm。

print

('hello word!'

)a =1+

1#這是單行注釋,=是賦值操作,表示將右邊的表示式結果賦值給變數a;符號兩邊加上空格以增加可閱讀性

'''多行注釋

3個單/雙引號開頭和結尾

'''a =

2a *

2a **

2# 多重賦值

a, b, c =1,

2,'a''''

上述命令相當於:

a = 1

b = 2

c = 'a'

'''# 字串操作

s ='i like python'

s +'very much!'

#將s與字串拼接,中間以單個空格連線

$ i like python very much

s.split(

' ')

#將s以單個空格符切割,得到列表

$ ['i'

,'like'

,'python'

]# 判斷語句

if 條件1

: 執行體1

elif 條件2

: 執行體2

else

: 最後的執行體

'''python一般不用花括號{},也沒有end語句,他是用縮排對齊作為語句的層次標記。同一層次的縮排量要嚴格的一一對應,否則報錯。如下語句是錯誤的。

'''if a ==1:

print

(a)#縮排2個空格

else

:print

('不等於1'

)#縮排3個空格

'''個人理解,這種語法規範簡潔而典雅,非常符合python的思想。其他的語言往往通過關鍵字來標註語法結構,但是隨著巢狀的層次增加,關鍵字也難以直觀的顯示語法結構,這個時候也須借助於縮排,所以python乾脆去掉這些語句內部的標誌性詞,用更為嚴格的縮進來表示,實在是簡潔而又典

'''# 迴圈語句

s, k =

0while k <

101:

#判斷k是否滿足小於101,不滿足則跳出迴圈

k = k +

1#從k=0開始每迴圈1次加1

s = s + k #s累加k的和即1+2+3...

print

(s)$ 5050

s =0

for k in

range

(101):

#in判斷某個元素是否在乙個集合內;range生成乙個序列,一般為range(a,b,c),表示生成乙個首相為a,公差為c且不超過b-1的等差數列。

s = s + k

print

(s)$ 5050

# 函式

# python用def來自定義函式

defadd2num

(x, y)

:#定義函式,同時定義2個引數

return

(x + y)

#return返回函式值

print

(add2num(1,

2))#呼叫函式

$ 3# 與一般函式不同的是python函式返回值可以是各種形式,例如列表(list)甚至返回多個值。

defadd2num

(x=0

, y=0)

:return

([x+

1, y+1]

)#返回值是乙個列表

defadd3

(x, y)

:return

(x+3

, y+3)

#雙重返回

a, b = add3(1,

2)# lambda:匿名函式

# 對於定義add2num這樣簡單的函式,通過def需要正式命名、計算和返值顯得過於麻煩,此時lambda函式橫空而出

f =lambda x, y : x + y #定義函式f(x,y)=x+yf(1

,1)#呼叫函式

$ 2

python有4個內建的資料結構(即儲存資料的容器),容器裡不要求元素型別一致:

列表(lsit):如l = [1, 2, 3],可索引可變

元組(tuple):如t = (1, 2, 3),可索引不可變

字典(dictionary):如d[『***』] = 『male』,以有意義的鍵名(key)為索引,無序

集合:如s = ,唯

一、無序,不可索引

列表可以修改,元組相對固定,不能修改。例如上述列表l[0] = 『a』,即將列表l第乙個元素1修改為』a』,這裡注意兩點:

(1)python索引是從0開始,即第乙個元素索引(index)是0

(2)列表是原地修改

如想複製列表需要通過copy = l[:],而通過copy = l只是重新貼了乙個標籤,修改copy仍然會讓原始l改變,即所謂的假拷貝。

list/tuple函式可將物件變成列表/元素型別,例如tuple([1, 2])是(1,2)

列表/元組相關函式

函式功能

len(a)

列表/元組元素個數

max(a)

返回列表/元組最大值

min(a)

返回最小值

sum(a)

求和sorted(a)

公升序排序

cmp(a,b)

比較2個列表/元組的元素

此外,作為物件,列表本身有很多方法,元組不允許修改因此方法很少

函式功能

將1新增到列表a末尾

a.count(1)

列表a中元素1出現的次數

a.extend([1,2])

將列表[1,2]內容追加到列表a末尾

a.index(1)

從列表a中找出第乙個1的索引位置

a.insert(2,1)

將1插入列表a索引為2的位置

a.pop(1)

移除列表a索引為1的元素

列表解析:

對於列表a = [1, 2, 3]

每個元素加1可這樣寫:

[i +1 for i in a ]

返回[2, 3, 4]

像list/tuple都是以元素位置為索引的,如果存貯的資料過大,通過這種方式迭代查詢的效率勢必十分低下,因此有了字典。字典的好處在於通過dic[key] = value的形式將鍵值對聯絡起來,通過相應的key就能找到對應的值,類似於查字典一樣,將十分高效。

建立字典的方法:

(1)dic[『key』]=『v』 #需先宣告dic是字典:dic=dict()

(2)d= #冒號聯絡鍵值對,逗號隔開每個元素

(3)dict.fromkeys([『key』,『age』],20) #相當於

取值方法:

dic[『key』]

$ 『v』

python中的集合與數學上的集合概念基本一致,元素唯

一、無序,不支援索引。

set([1, 2, 3]) #將列表轉化成集合

集合可以進行一些運算:

t | s #集合t和s的並集

t & s #t和s的交集

t - s #求差集,項在t中不在s中

t ^ s #對稱差集(項在t或s中,但不會同時出現在二者中)

python之所以強大就是因為有很多庫,例如數學相關庫math庫,通過import關鍵字匯入

import math

math.pi #內建圓周率常數

math.exp(1)

#計算指數

math.sin(1)

#計算正弦

# 匯入時給庫起乙個別名

import math as m

m.pi

# 指定庫中函式匯入(節省記憶體資源,也避免命名衝突)

from math import exp as e #只匯入math庫中的exp函式,取名ee(1

)# 通過help('modules')檢視庫的幫助

三分鐘搞定JS繼承

基本思想 通過改變prototype的指向形成例項和原型之間的原型鏈 instancesub subtype.prototype instancesuper supertype.prototype object.prototype null 子物件的原型是父物件的例項subtype.prototyp...

沉默三分鐘

網上見此真情之文,藉以自表 原文 http www.hecaitou.net p 3018 沉默三分鐘是心祭。那麼多年了,國旗終於為平民而降。那麼多天了,全民哀悼終於實現。與此同時,火炬停止傳遞,因為這不是乙個歡慶的時刻。很多年後回顧2008年,我 也許寧可它從日曆中消失。還沒有哪一年和今年一樣,才...

三分鐘搞定Python中的裝飾器

python的裝飾器是python的特色高階功能之一,言簡意賅得說,其作用是在不改變其原有函式和類的定義的基礎上,給他們增添新的功能。裝飾器存在的意義是什麼呢?我們知道,在python中函式可以呼叫,類可以繼承,為何要必須保證不改變函式和類的定義,就使得函式有了新的功能呢?其實很好解釋。提高 的簡潔...