PYTHON學習筆記

2021-06-29 08:32:18 字數 2834 閱讀 7153

python, 是一種物件導向、解釋型計算機程式語言,由guido van rossum於2023年底發明。python語法簡潔而清晰,具有豐富和強大的類庫。它常被暱稱為膠水語言,能夠把用其他語言製作的各種模組(尤其是c/c++)很輕鬆地聯結在一起。 

print arg 

raw_input(string)

從raw_input()讀取的內容永遠以字串的形式返回,把字串和整數比較就不會得到期待的結果,必須先用int()把字串轉換為我們想要的整型

if expression:

#do something

else:

#do something

python還允許用 r'' 表示 '' 內部的字串預設不轉義:

print '\\\t\\'

\ \

print r'\\\t\\'

\\\t\\

空值是python裡乙個特殊的值,用none表示。

a = 123 # a是整數

print a

a = 'abc' # a變為字串

print a

這種變數本身型別不固定的語言稱之為動態語言,與之對應的是靜態語言。靜態語言在定義變數時必須指定變數型別,如果賦值的時候型別不匹配,就會報錯。

但是,要定義乙個只有1個元素的tuple,如果你這麼定義:

>>> t = (1)

>>> t

1

定義的不是tuple,是1這個數!這是因為括號()既可以表示tuple,又可以表示數學公式中的小括號,這就產生了歧義,因此,python規定,這種情況下,按小括號進行計算,計算結果自然是1。

所以,只有1個元素的tuple定義時必須加乙個逗號,,來消除歧義:

>>> t = (1,)

>>> t

(1,)

python的迴圈有兩種,一種是for...in迴圈,依次把list或tuple中的每個元素迭代出來:

names = ['michael', 'bob', 'tracy']

for name in names:

print name

第二種迴圈是while迴圈,只要條件滿足,就不斷迴圈,條件不滿足時退出迴圈。比如我們要計算100以內所有奇數之和,可以用while迴圈實現:

sum = 0

n = 99

while n > 0:

sum = sum + n

n = n - 2

print sum

my_abs的定義,對引數型別做檢查,只允許整數和浮點數型別的引數。資料型別檢查可以用內建函式isinstance實現:

def my_abs(x):

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

raise typeerror('bad operand type')

if x >= 0:

return x

else:

return -x

新增了引數檢查後,如果傳入錯誤的引數型別,函式就可以丟擲乙個錯誤:

>>> my_abs('a')

traceback (most recent call last):

file "", line 1, in file "", line 3, in my_abs

typeerror: bad operand type

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

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

def add_end(l=):

return l

當你正常呼叫時,結果似乎不錯:

>>> 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這個不變物件來實現:

def add_end(l=none):

if l is none:

l =

return l



 

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 ...