1. 程式人生 > >python基本語法知識

python基本語法知識

註釋

1、單行註釋以 # 開頭。

2、多行註釋為 '''xxx'''。

字串

1、單引號與雙引號含義一樣。

2、自然字串, 通過在字串前加r或R。 如 r"this is a line with \n" 則\n會顯示,並不是換行。

print輸出

print 預設輸出是換行的,如果要實現不換行需要在變數末尾加上 end=" "(空格)。

輸入

在python2.7裡是raw_input(),3.0是input(),輸入得到的均是字串。

raw_input不管輸入什麼返回的都是字串,input輸入字串時要加‘ ’

數字

1、complex為複數型別。2+5j或者complex(2,5)。

2、 type() 函式可以用來查詢變數所指的物件型別。

3、isinstance()函式也可以用來判斷一個物件是否是已知的型別。

4、type與isinstance的區別:type()不會認為子類是一種父類型別。isinstance()會認為子類是一種父類型別。

5、數值的除法(/)總是返回一個浮點數,要獲取整數使用//操作符。

6、** 表示乘方運算。

字串

1、索引值以 0 為開始值,-1 為從末尾的開始位置。

2、str[0:-1]表示第一個到倒數第二個的所有字元。

3、python字串不能被改變,所以不可以向索引位置賦值。

4、+組合,*重複。

身份運算子

1、is 是判斷兩個識別符號是不是引用自一個物件,is not 是判斷兩個識別符號是不是引用自不同物件。(記憶體地址是否相同,id())

2、但是為了提高記憶體利用效率對於一些簡單的物件,如一些數值較小的int物件,python採取重用物件記憶體的辦法,如指向a=2,b=2時,由於2作為簡單的int型別且數值小,python不會兩次為其分配記憶體,而是隻分配一次,然後將a與b同時指向已分配的物件。

3、is 與 == 區別:
is 用於判斷兩個變數引用物件是否為同一個, == 用於判斷引用變數的值是否相等。
>>>a = [1, 2, 3]
>>> b = a
>>> b is a 
True
>>> b == a
True
>>> b = a[:]                        #沒弄明白這兩個的區別在哪裡哭


>>> b is a
False
>>> b == a
True

列表

1、建立一個列表,只要把逗號分隔的不同的資料項使用中括號括起來即可。資料項不需要是相同型別。

2、列表的方法:

(1)list.append(obj):在列表末尾新增新的物件

(2)list.count(obj):統計某個元素在列表中出現的次數

(3)list.extend(seq):在列表末尾一次性追加另一個序列中的多個值(用新列表擴充套件原來的列表)

(4)list.index(obj):從列表中找出某個值第一個匹配項的索引位置

(5)list.insert(index, obj):將物件插入列表

(6)list.pop(obj=list[-1]):移除列表中的一個元素(預設最後一個元素),並且返回該元素的值

(7)list.remove(obj):移除列表中某個值的第一個匹配項

(8)list.reverse():反向列表中元素

(9)list.sort([func]):對原列表進行排序

(10)list.clear():清空列表

(11)list.copy():複製列表

元祖

1、與列表的區別是小括號表示,元素不能改變。

2、元組中只包含一個元素時,需要在元素後面新增逗號,否則括號會被當作運算子使用。

3、元組中的元素值是不允許刪除的,但我們可以使用del語句來刪除整個元組。

4、輸入時沒有括號但用逗號隔開的值也是元組。

字典

1、格式:d = {key1 : value1, key2 : value2 }。

2、鍵是唯一的,不可變的。

3、dict.clear()清空字典。del dict刪除字典。

4、賦值、淺拷貝、深度拷貝的區別:Python 直接賦值、淺拷貝和深度拷貝解析 | 菜鳥教程  http://www.runoob.com/w3cnote/python-understanding-dict-copy-shallow-or-deep.html

5、fromkeys()方法:

用於建立一個新字典,以序列seq中元素做字典的鍵,value為字典所有鍵對應的初始值。

seq = ('name', 'age', 'sex')
dict = dict.fromkeys(seq)
print ("新的字典為 : %s" %  str(dict))
dict = dict.fromkeys(seq, 10)
print ("新的字典為 : %s" %  str(dict))
以上例項輸出結果為:
新的字典為 : {'age': None, 'name': None, 'sex': None}
新的字典為 : {'age': 10, 'name': 10, 'sex': 10}

6、dict.get(key, default=None):返回指定鍵的值,如果值不在字典中返回default值

dict.items():以列表返回可遍歷的(鍵, 值) 元組陣列

dict.keys():以列表返回一個字典所有的鍵

dict.setdefault(key, default=None):和get()類似, 但如果鍵不存在於字典中,將會新增鍵並將值設為default

dict.values():以列表返回字典中的所有值

pop(key[,default]):刪除字典給定鍵 key 所對應的值,返回值為被刪除的值。key值必須給出。 否則,返回default值。

popitem():隨機返回並刪除字典中的一對鍵和值(一般刪除末尾對)。

集合

1、可用{}建立,會自動刪除重複元素,如果要建立一個空集合,你必須用 set() 而不是 {} ;後者建立一個空的字典。

迭代器與生成器

Python yield 使用淺析 | 菜鳥教程  http://www.runoob.com/w3cnote/python-yield-used-analysis.html

好厲害的樣子,現在看不懂,以後再看吧安靜

函式

1、在 python 中,型別屬於物件,變數是沒有型別的。

2、python 函式的引數傳遞:
不可變型別:類似 c++ 的值傳遞,如 整數、字串、元組。如fun(a),傳遞的只是a的值,沒有影響a物件本身。比如在 fun(a)內部修改 a 的值,只是修改另一個複製的物件,不會影響 a 本身。
可變型別:類似 c++ 的引用傳遞,如 列表,字典。如 fun(la),則是將 la 真正的傳過去,修改後fun外部的la也會受影響
python 中一切都是物件,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變物件和傳可變物件。

3、不定長引數:加了星號(*)的變數名會存放所有未命名的變數引數。如果在函式呼叫時沒有指定引數,它就是一個空元組。兩個**時,是建立了一個列表,儲存不定長的鍵值對。

4、global將函式內部變數改為全域性變數,nonlocal將巢狀作用域改為區域性變數。