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