python 學習筆記

2021-07-24 18:31:13 字數 4028 閱讀 6812

python 學習筆記

我使用的是廖雪峰的python教程感覺蠻不錯的

python基礎

print 『hello, world』

name = raw_input()

整數 python可以處理任意大小的整數 十六進製製用0x字首和0-9,a-f表示

浮點數 但是對於很大或很小的浮點數,就必須用科學計數法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5

字串

- 字串是以」或」「括起來的任意文字,

- python還允許用r」表示」內部的字串預設不轉義,

- 如果字串內部有很多換行,用\n寫在一行裡不好閱讀,為了簡化,python允許用」』…」』的格式表示多行內容,可以自己試試:

-python在後來新增了對unicode的支援,以unicode表示的字串用u』…』表示,比如:

布林值

true、false

布林值可以用and、or和not運算。

空值 空值是python裡乙個特殊的值,用none表示。none不能理解為0,因為0是有意義的,而none是乙個特殊的空值。

常量所謂常量就是不能變的變數,比如常用的數學常數π就是乙個常量。在python中,通常用全部大寫的變數名表示常量。但是不保證常亮不變

在python中,採用的格式化方式和c語言是一致的,用%實現

『age: %s. gender: %s』 % (25, true)

『age: 25. gender: true』

常見的佔位符有:

%d 整數

%f 浮點數

%s 字串

%x 十六進製制整數

是一種有序的集合,可以隨時新增和刪除其中的元素。

classmates = [『michael』, 『bob』, 『tracy』]

len()函式可以獲得list元素的個數:

classmates = (『michael』, 『bob』, 『tracy』) 不可變

if 《條件判斷1>:

《執行1>

elif 《條件判斷2>:

《執行2>

elif 《條件判斷3>:

《執行3>

else:

《執行4>

一種for in

names = [『michael』, 『bob』, 『tracy』]

for name in names:

print name

range(5)

[0, 1, 2, 3, 4]

一種 while

while n > 0:

sum = sum + n

n = n - 2

print sum

d =

d[『thomas』] 這種如果不存在key會崩潰 可以使用get方法d.get(『thomas』, -1) 這樣會有乙個預設的值或者返回的是none

s = set([1, 2, 3])

add(key)

remove(key)方法

set支援集合操作 set只能存放不可變物件

&交 |並

def

my_abs

(x):

if x >= 0:

return x

else:

return -x

pass 乙個什麼都不做的佔位符

如果函式的引數個數不對python自動檢查。如果引數型別不對需要自己檢查

def my_abs(x):

if not isinstance(x, (int, float)):

raise typeerror(『bad operand type』)

if x >= 0:

return x

else:

return -x

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

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

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

return nx, ny

其實返回的是乙個元組

def power(x, n=2):

預設引數很有用,但使用不當,也會掉坑里。預設引數有個最大的坑,演示如下:

先定義乙個函式,傳入乙個list,新增乙個end再返回:

add_end([1, 2, 3])

[1, 2, 3, 『end』]

add_end([『x』, 『y』, 『z』])

[『x』, 『y』, 『z』, 『end』]

當你使用預設引數呼叫時,一開始結果也是對的:

add_end()

[『end』]

但是,再次呼叫add_end()時,結果就不對了:

add_end()

[『end』, 『end』]

add_end()

[『end』, 『end』, 『end』]

很多初學者很疑惑,預設引數是,但是函式似乎每次都「記住了」上次新增了』end』後的list。

原因解釋如下:

python函式在定義的時候,預設引數l的值就被計算出來了,即,因為預設引數l也是乙個變數,它指向物件,每次呼叫該函式,如果改變了l的內容,則下次呼叫時,預設引數的內容就變了,不再是函式定義時的了。

所以,定義預設引數要牢記一點:預設引數必須指向不變物件!

要修改上面的例子,我們可以用none這個不變物件來實現:

add_end()

[『end』]

add_end()

[『end』]

我們把函式的引數改為可變引數:

def calc(*numbers):

sum = 0

for n in numbers:

sum = sum + n * n

return sum

如果已經有乙個list或者tuple,要呼叫乙個可變引數怎麼辦

所以python允許你在list或tuple前面加乙個*號,把list或tuple的元素變成可變引數傳進去:

nums = [1, 2, 3]

calc(*nums)

14

可變引數允許你傳入0個或任意個引數,這些可變引數在函式呼叫時自動組裝為乙個tuple。而關鍵字引數允許你傳入0個或任意個含引數名的引數,這些關鍵字引數在函式內部自動組裝為乙個dict。請看示例:

def person(name, age, **kw):

print 『name:』, name, 『age:』, age, 『other:』, kw

函式person除了必選引數name和age外,還接受關鍵字引數kw。在呼叫該函式時,可以只傳入必選引數:

person(『michael』, 30)

name: michael age: 30 other: {}

也可以傳入任意個數的關鍵字引數:

person(『bob』, 35, city=』beijing』)

name: bob age: 35 other:

person(『adam』, 45, gender=』m』, job=』engineer』)

name: adam age: 45 other:

當然,上面複雜的呼叫可以用簡化的寫法:

kw =

person(『jack』, 24, **kw)

name: jack age: 24 other:

在python中定義函式,可以用必選引數、預設引數、可變引數和關鍵字引數,這4種引數都可以一起使用,或者只用其中某些,但是請注意,引數定義的順序必須是:必選引數、預設引數、可變引數和關鍵字引數。

python教學筆記 python學習筆記(一)

1.eval 函式 eval是單詞evaluate的縮寫,就是 求.的值的意思。eval 函式的作用是把str轉換成list,dict,tuple.li 1 1,2,3 print eval li 1 di 1 print eval di 1 tu 1 2,4,6 print eval tu 1 執...

python學習筆記

coding utf 8 coding utf 8 應該像八股文一樣在每個指令碼的頭部宣告,這是個忠告 為了解決中文相容問題,同時你應該選擇支援 unicode 編碼的編輯器環境,保證在執行指令碼中的每個漢字都是使用 utf 8 編碼過的。cdays 5 exercise 3.py 求0 100之間...

Python 學習筆記

python 學習筆記 def run print running.def execute method method execute run result running.condition false test yes,is true if condition else no,is false ...