小白必看python學(xué)習(xí)基本知識點筆記

Python 作為近幾年越來越流行的語言憾儒,吸引了大量的學(xué)員開始學(xué)習(xí)询兴,為了方便新手小白在學(xué)習(xí)過程中,更加快捷方便的查漏補缺起趾。根據(jù)網(wǎng)上各種亂七八糟的資料以及實驗樓的 Python 基礎(chǔ)內(nèi)容整理了一份極度適合新手小白的 Python 基礎(chǔ)入門必學(xué)知識點筆記蕉朵。

1. 換行與縮進

1. 1條代碼為1行,例如:1個賦值阳掐、1個請求始衅、1個運算、1個打印缭保,結(jié)尾不需要添加任何標(biāo)點符號汛闸。

2. 根據(jù)代碼的執(zhí)行邏輯進行區(qū)分,同一級別的代碼需要保持對齊艺骂,對與不同級別的代碼進行縮進即可诸老。

3. 根據(jù)PEP的規(guī)定,必須使用4個空格來表示每級縮進(不清楚4個空格的規(guī)定如何钳恕,在實際編寫中可以自定義空格數(shù)别伏,但是要滿足每級縮進間空格數(shù)相等)蹄衷。

2.單行注釋和多行注釋

1. 單行注釋 #。

2. 多行注釋厘肮,前后三個單引號或雙引號'''... '''; """ ..."""愧口。... 為需要解釋的內(nèi)容。

3. 兩種不同的執(zhí)行方式

1. 直接調(diào)用 Python 解釋器執(zhí)行文件类茂。

Python? test.py

2. 修改test.py文件的屬性耍属,為可執(zhí)行,在用 `./` 執(zhí)行test.py文件巩检。

chomd +x test.py

./test.py

4. 數(shù)據(jù)類型和變量

Python 的數(shù)據(jù)類型有 int(整數(shù))厚骗、float(浮點數(shù))、字符串兢哭、布爾值领舰、None、列表迟螺、元組提揍、字典、集合等煮仇。

1. 變量不需要聲明劳跃,可以直接輸入。大小寫敏感浙垫。

2. 內(nèi)置函數(shù)type(),可以查詢變量的數(shù)據(jù)類型刨仑。

var = 8

print(var) # 8

print(type(var)) # <type 'int'>? 整數(shù)類型

3. 字符串是以''和""括起來的任意文本。

var = 'shiyanlou'

var = "learn by doing"

4. 布爾值(Ture夹姥,F(xiàn)alse)可以用and杉武,or,not 運算辙售。

5. 多變量賦值轻抱。

a = b = c =1

a , b ,c = 45 , 54 旦部,'shiyanlou' # 等號兩邊都是元組

x,y =y,x #兩值交換

6. 賦值語句不可以返回值祈搜,對象是通過引用傳遞的。

5.運算和表達式

表達式由運算符和操作數(shù)組成士八,像 2+3 就是一個表達式容燕,其中 2 和 3 是操作數(shù),加號是運算符婚度。

1. 算術(shù)運算

運算符的優(yōu)先級按照從低到高排序蘸秘,同一行優(yōu)先級相同

- 加(+)、減(-)

- 乘(*)、除(/)醋虏、取整(//)寻咒、求余(%)

- 乘方(**)

2. 乘方(**) 右結(jié)合

2**2**3=256

(2**2)**3=64

3. 不同類型的數(shù)據(jù)運算,會發(fā)生隱式類型轉(zhuǎn)換颈嚼,轉(zhuǎn)換的規(guī)則是低等類型向高等類型轉(zhuǎn)換毛秘。

4. 字符串與整數(shù)相乘。

print 'shiyanlou'*3 # 結(jié)果shiyanloushiyanloushiyanlou

5. 邏輯運算邏,對于邏輯與粘舟,或,非佩研,我們使用 and柑肴,or,not 這幾個關(guān)鍵字旬薯。

0晰骑、空字符''和None都是False,其他數(shù)值都是True绊序。

Python 解釋器在進行布爾運算硕舆,只要提前確定運算結(jié)果就不會繼續(xù)往后計算了。

True and 'a=T' # 結(jié)果是 'a=T'

'a=T' or 'a=F' # 結(jié)果是 'a=T'

6. 不支持自加(i++)和自減(i--)骤公。

6.輸入

input() 在對待純數(shù)字輸入返回所輸入的數(shù)字的類型(int抚官,float)。

raw_input() 將所有輸入作為字符串看待阶捆,返回字符串類型凌节。

x = input() # 輸入 1+2

print(type(x)) # 輸出 <type 'int'>

y = raw_input() # 輸入 1+2

print(type(y)) # 輸出

一般情況下使用 raw_input() 來與用戶交互,可以避免類型發(fā)生錯誤洒试。

7.輸出

1. print 語句也可以跟上多個字符串,用逗號“,”隔開倍奢,遇到逗號“,”會輸出一個空格。

print('1+2=', 1+2)? # 1+2= 3

2. 多行輸出使用三個引號和使用換行符`\n`一致垒棋。

print '''Python

Python

Python'''

print "Python\nPython\nPython"

8.序列

序列是一組有順序的元素的集合,可以包含一個或多個元素卒煞,也可以沒有任何元素。

1. 序列分為可變序列 List 和不可變序列 tuple叼架,range畔裕。

2. 序列的通用操作(s 和 t 表示同類型的序列;n乖订,i柴钻,j,k 為整數(shù)垢粮;x 為任意類型)贴届。

x in s :若序列s中包含x元素則返回True,否則返回False。

x not in s: 若序列s中不包含x元素則返回True,否則返回False。

s = [1,2,[3,4],'g']

x = 'g'

a = [3,4]

b = 5

print(x in s,a in s,b in s,b not in s)

s + t:s和t拼接在一起毫蚓。

s = [1,2,[3,4],'g']

t = ['5',6]

w = s + t

print(w)

sn(或ns)*:將 s 重復(fù) n 次,當(dāng) n 小于 0占键,sn 為空序列。

s = ['a',3,4]

n = 3

w = s*n

print(w)

s[i]:s中下標(biāo)為i的元素(下標(biāo)從0開始)元潘。

s[i:j]:s中下標(biāo)從i到j(luò)-1的元素集合(下標(biāo)從0開始)畔乙。

s[i:j:k]:s中下標(biāo)從i到j(luò)-1且間隔為K的元素集合(下標(biāo)從0開始)。

s = ['a',1,2,3,4,5,6,7,8,9]

print(s(0),s(2))

w1 = s[1:3]

t1 = s[1:-1]

print(w1,t1)

w2 = s[1:7:2]

t2 = s[::-1]

print(w2,t2)

len(s):s中元素個數(shù)翩概。

min(s):s中最小的元素牲距。

max(s):s中最大的元素。

s = ['a',1,2,3,4]

print(len(s),min(s),max(s))

s.index(x[,i[,j]]):s中首次出現(xiàn)x的下標(biāo)(i,j為下標(biāo)范圍限制)钥庇。

s.count(x):s中x的總個數(shù)牍鞠。

s = [1,2,3,4,1,2,3,1,2,9]

print(s.index(1),s.index(2,2),s.index(2,2,10),s.count(1))

3. 可變列表 List(s為可變序列,t為可迭代對象评姨;n难述,i,j吐句,k為整數(shù)胁后;x為任意類型)。

s.append(x):在s尾部添加x嗦枢,相當(dāng)于s[len(s):len(s)]攀芯。

s.insert(i,x): 將s中編號為i的位置插入x,相當(dāng)于s[i:i] = [x]。

s.pop([i]):返回編號為i的元素文虏,并將其從s中移除敲才,默認(rèn)為最后一個元素

s = [0,1,2,3,4,5]

s.append(7)? #append()總是把新元素添加到s的尾部

print s? # [0, 1, 2, 3, 4, 5, 7]

s.insert(0,-1)? #insert()接受兩個參數(shù),第一個是索引择葡,第二個是元素

print s? # [-1, 0, 1, 2, 3, 4, 5, 7]

s.insert(-1,6) #insert(-1)是最后一個元素之前紧武,即倒數(shù)第二個元素,因為insert()前插

print s? # [-1, 0, 1, 2, 3, 4, 5, 6, 7]

s.pop()? #pop()方法總是刪掉最后一個元素

print s? # [-1, 0, 1, 2, 3, 4, 5, 6]

s.pop(0) #參數(shù)為索引

print s? # [0, 1, 2, 3, 4, 5, 6]

s[6]=7 #對 s 中的某一個索引賦值敏储,就可以直接用新的元素替換掉原來的元素

print s? # [0, 1, 2, 3, 4, 5, 7]

s[0],s[-1]=s[-1],s[0] #第一與最后位置調(diào)換

print s? # [7, 1, 2, 3, 4, 5, 0]

4. 不可變的元組 Tuple:字符串是一種特殊的元組阻星,沒有 append()方法,也沒有insert()和pop()方法已添,也不能賦值妥箕。

5. range 類型表示一個不可變的數(shù)字序列,通常用于在for循環(huán)中循環(huán)特定次數(shù)更舞。

9.相等比較

`==` 和 `is` 是不一樣的畦幢,== 比較的是值,is 比較的是引用缆蝉。

x = [1, 2, 3]

y = x

z = [1, 2, 3]

print(x == y) #True

print(x == z) #True

print(x is y) #True

print(x is z) #False

10.選擇

1. 語法格式

if 條件1:

? ? statement

if 條件2:

? ? statement

2. 三元運算符

x, y = 4, 3

if x < y:

? ? result = x

else

? ? result = y

print result

**等同于**

result = x if x < y else y

print result

11.循環(huán)

1. while 循環(huán)宇葱,不會迭代 list 或 tuple 的元素瘦真,而是根據(jù)表達式判斷循環(huán)是否結(jié)束。

while 條件

? ? statement

2. for循環(huán),依次把list或tuple的每個元素迭代出來黍瞧。

for 元素 in 序列:

? ? statement

3. break诸尽,用于推出當(dāng)層循環(huán)。

num = 1

while num <6:

? ? print(num)

? ? num+=1

? ? break

? ? print("end")

4. continue,用于退出當(dāng)前循環(huán)印颤,繼續(xù)下一次循環(huán)您机。

num = 1

while num <6:

? ? print(num)

? ? num+=1

? ? continue

? ? print("end")

5. range()的用法。

range(1,5) #代表從1到5(不包含5)? [1, 2, 3, 4]

range(1,5,2) #代表從1到5年局,間隔2(不包含5)? [1, 3]

range(5) #代表從0到5(不包含5)? [0, 1, 2, 3, 4]

6. 迭代器:它為類序列對象提供了一個類序列的接口际看。迭代非序列集合(例如映射和文件)時, 可以創(chuàng)建更簡潔可讀的代碼。

myTuple = (123, 'xyz', 45.67)

i = iter(myTuple)

print i.next()? #123

print i.next()? #xyz

print i.next()? #45.67

i.next()? ? ? ? #報錯

12. 字典

字典類似于列表矢否,但能將不同的信息關(guān)聯(lián)起來仲闽。

1. 字典的元素沒有順序。是按 key 進行查找兴喂,字典中的 key 不能重復(fù)蔼囊。

2. 一個簡單的字典焚志,包含學(xué)生姓名和年齡的字典衣迷。

Students = {'name':'Tom','age':14}

3. 學(xué)生姓名稱為 key,年齡稱為 value酱酬。字典通過 key 來查找 value壶谒。

4. 花括號 {} 表示這是一個dict,然后按照 key: value, 寫出來即可膳沽。最后一個 key: value 的逗號可以省略近上。

5. 由于dict也是集合右核,len()函數(shù)可以計算任意集合的大小。

print len(students) # 1

6.? 在字典中添加一個新元素。

students = {'Tom':12,'Jack':13}

print students # {'Tom':12,'Jack':13}

students['lilei']=11

print students # {'Tom':12,'Jack':13,'lilei':11}

7. 循環(huán)調(diào)用帮毁。

for key in students:

? ? print students[key]

輸出結(jié)果

12

13

11

8. 字典的常用方法

print d.keys()? # 返回d所有的鍵

print d.values() # 返回d所有的值

print d.items()? # 返回d所有的元素(鍵值對)

d.clear()? ? ? ? # 清空d,dict變?yōu)閧}

del d[‘xxx’]? ? ? # 刪除 d 的‘xxx’元素

13. 集合

集合使用花括號將元素之間用逗號隔開即可靖秩。集合的輸出里不會出現(xiàn)相同的元素蚁袭。

1. 創(chuàng)建一個集合。

s = set(['A', 'B', 'C'])

print s? #set(['A', 'C', 'B'])

2. 添加阱当、刪除俏扩。

s.add('D')

print s? #set(['A', 'C', 'B', 'D'])

s.add('D') # 已存在不會報錯

s.remove('D')

print s? #set(['A', 'C', 'B'])

s.remove('D')? # 報錯,需要先判斷

14. 函數(shù)

函數(shù)是指將一組語句的集合通過一個名字(函數(shù)名)封裝起來弊添,要想執(zhí)行這個函數(shù)录淡,只需調(diào)用其函數(shù)名即可。

1. 定義一個函數(shù)油坝。使用 def 語句嫉戚,依次寫出函數(shù)名刨裆、括號、括號中的參數(shù)和冒號:彼水,然后崔拥,在縮進塊中編寫函數(shù)體,函數(shù)的返回值用 return 語句返回凤覆。

def hello():

? ? print "hello"

hello()? # 調(diào)用函數(shù)链瓦,打印出hello

2. 沒有return語句,函數(shù)執(zhí)行完畢后也會返回結(jié)果盯桦,只是結(jié)果為 None慈俯。

3. 函數(shù)返回多個值。

import math

def move(x, y, step, angle):

? ? nx = x + step * math.cos(angle)

? ? ny = y - step * math.sin(angle)

? ? return nx, ny

x, y = move(100, 100, 60, math.pi / 6)

print x, y? # 151.961524227 70.0

r = move(100, 100, 60, math.pi / 6)

print r? ? # (151.96152422706632, 70.0)

這只是一種假象拥峦,Python 函數(shù)返回的仍然是單一值贴膘,是一個tuple。

4. 遞歸函數(shù):函數(shù)內(nèi)部調(diào)用自身略号。

def fibo(n):

? ? if n <= 2:

? ? ? ? return 1

? ? return (fibo(n - 1) + fibo(n - 2))

print(fibo(8))

5. 定義函數(shù)的時候刑峡,還可以有默認(rèn)參數(shù)。

def power(x, n=2):

? ? s = 1

? ? while n > 0:

? ? ? ? n = n - 1

? ? ? ? s = s * x

? ? return s

print power(2)? #默認(rèn)計算2的平方

print power(2,3)? #計算2的三次方

6. 一個函數(shù)能接受任意個參數(shù)玄柠,我們就可以定義一個可變參數(shù)突梦。

def fn(*args):

? ? print arg

fn('a')? #('a',)

fn('a', 'b')? #('a', 'b')

fn('a', 'b', 'c')? #('a', 'b', 'c')

可變參數(shù)的名字前面有個 * 號,我們可以傳入 0 個羽利、1 個或多個參數(shù)給可變參數(shù)宫患。

7. 基本數(shù)據(jù)類型的參數(shù):值傳遞;表作為參數(shù):指針傳遞这弧。

長期分享python編程知識和技巧娃闲,從入門到精通,小白必備匾浪,為未來的編程大樓打下穩(wěn)固的基礎(chǔ)皇帮。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蛋辈,隨后出現(xiàn)的幾起案子属拾,更是在濱河造成了極大的恐慌,老刑警劉巖梯浪,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捌年,死亡現(xiàn)場離奇詭異,居然都是意外死亡挂洛,警方通過查閱死者的電腦和手機礼预,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來虏劲,“玉大人托酸,你說我怎么就攤上這事褒颈。” “怎么了励堡?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵谷丸,是天一觀的道長。 經(jīng)常有香客問我应结,道長刨疼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任鹅龄,我火速辦了婚禮揩慕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘扮休。我一直安慰自己迎卤,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布玷坠。 她就那樣靜靜地躺著蜗搔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪八堡。 梳的紋絲不亂的頭發(fā)上樟凄,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機與錄音秕重,去河邊找鬼不同。 笑死厉膀,一個胖子當(dāng)著我的面吹牛溶耘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播服鹅,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼凳兵,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了企软?” 一聲冷哼從身側(cè)響起庐扫,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎仗哨,沒想到半個月后形庭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡厌漂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年萨醒,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苇倡。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡富纸,死狀恐怖囤踩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情晓褪,我是刑警寧澤堵漱,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站涣仿,受9級特大地震影響勤庐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜好港,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一埃元、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧媚狰,春花似錦岛杀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至辨宠,卻和暖如春遗锣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嗤形。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工精偿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赋兵。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓笔咽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親霹期。 傳聞我的和親對象是個殘疾皇子叶组,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容