1. 程式人生 > >python學習-1

python學習-1

集合 方法 一次循環 循環 art 其他 語句 速度 數據類型轉換

1.輸出中文

Python在後來添加了對Unicode的支持,以Unicode表示的字符串用u‘...‘表示
如果中文字符串在Python環境下遇到 UnicodeDecodeError,這是因為.py文件保存的格式有問題。可以在第一行添加註釋

# -*- coding: utf-8 -*-

2. 四則運算

如果我們要計算 11 / 4 的精確結果,按照“整數和浮點數混合運算的結果是浮點數”的法則,把兩個數中的一個變成浮點數再運算就沒問題了:

3. 正則運算法則:短路計算。

4. 列表增刪改

L.append(‘Paul‘) #末尾插入
L.insert(0, ‘Paul‘) #自定義索引插入


L.pop() #末尾刪除
L.pop(2) #自定義索引刪除
L[2] = ‘Paul‘ #自定義修改
同樣是表示班裏同學的名稱,用tuple表示如下:

>>> t = (‘Adam‘, ‘Lisa‘, ‘Bart‘)
t = (‘a‘, ‘b‘, [‘A‘, ‘B‘])
縮進請嚴格按照Python的習慣寫法:4個空格,不要使用Tab,更不要混合Tab和空格,否則很容易造成因為縮進引起的語法錯誤。

if 語句後接表達式,然後用:表示代碼塊開始。
在Python交互環境下敲代碼,還要特別留意縮進,並且退出縮進需要多敲一行回車:


L = [‘Adam‘, ‘Lisa‘, ‘Bart‘] for name in L: print name

要特別留意while循環的退出條件。
要在循環體內直接退出循環,可以使用 break 語句。

還可以用continue跳過後續循環代碼,繼續下一次循環。
for x in [‘A‘, ‘B‘, ‘C‘]: for y in [‘1‘, ‘2‘, ‘3‘]: print x + y

花括號 {} 表示這是一個dict,然後按照 key: value, 寫出來即可。最後一個 key: value 的逗號可以省略。

要避免 KeyError 發生,有兩個辦法:

一是先判斷一下 key 是否存在,用 in 操作符:


if ‘Paul‘ in d: print d[‘Paul‘]
二是使用dict本身提供的一個 get 方法,在Key不存在的時候,返回None:

>>> print d.get(‘Bart‘) 59 >>> print d.get(‘Paul‘) None

dict內部是無序的,不能用dict存儲有序的集合。
dict的第三個特點是作為 key 的元素必須不可變,

要把新同學‘Paul‘的成績 72 加進去,用賦值語句:

>>> d[‘Paul‘] = 72

>>> d = { ‘Adam‘: 95, ‘Lisa‘: 85, ‘Bart‘: 59 } >>> for key in d: ... print key ... Lisa Adam Bart

因為set內部存儲的元素是無序的。

因為set不能包含重復的元素

訪問 set中的某個元素實際上就是判斷一個元素是否在set中。>>> ‘Bart‘ in s
True

set並判斷用戶輸入的月份是否有效。

set的內部結構和dict很像,唯一區別是不存儲value,因此,判斷一個元素是否在set中速度很快。

set存儲的元素和dict的key類似,必須是不變對象,因此,任何可變對象是不能放入set中的。

直接使用 for 循環可以遍歷 set 的元素:

>>> s = set([‘Adam‘, ‘Lisa‘, ‘Bart‘]) >>> for name in s: ... print name ... Lisa Adam Bart

一是把新的元素添加到set中,二是把已有元素從set中刪除。
所以用add()可以直接添加,而remove()前需要判斷。

求絕對值的函數 abs
比較函數 cmp(x, y) 就需要兩個參數,如果 x<y,返回 -1,如果 x==y,返回 0,如果 x>y,返回 1

int()函數可以把其他數據類型轉換為整數

str()函數把其他類型轉換成 str

def my_abs(x): if x >= 0: return x else: return -x

Python的函數返回多值其實就是返回一個tuple,但寫起來更方便。
由於函數的參數按從左到右的順序匹配,所以默認參數只能定義在必需參數的後面:

自定義變量數值:def average(*args):

python學習-1