[python小白]入門py 2.0
python字串
(1) ''或者 " " 或者.. (2)不支援單字串(仍看做一個字串使用)
(3)訪問子字串可以使用方括號來擷取字串,例如var1[0] var2[1:5]
(4)可以修改、賦值:
var1[: 6} +'Runoob!'
(5)可以使用轉義字元,如\ \n啊什麼的,\\就是反斜槓符號了。
【*是重複輸出字串,如 a*2 就是輸入a兩次啦】
【還有 in 就是在不在其中 :】
if( "M" not in a) :
(6)支援格式化字串的輸出 。儘管這樣可能會用到非常複雜的表示式,但最基本的用法是將一個值插入到一個有字串格式符 %s 的字串中。
print "My name is %s and weight is %d kg!" % ('Zara', 21)
這裡呢,%c是字元和ascii,%s字串, d證書,f浮點數,具體格式化操作 http://www.runoob.com/python/python-strings.html
(7)python三引號,可以序列多行,可以包含換行符製表符巴拉巴拉。。。
可以定義unicode字串,u。。
(8)行內函數 連結相同,遇到了再說吧。
python列表
(1)從0開始,可以用list[0] / list[2:5] 訪問
(2)可以更新; list.append('Google')
那麼就添加了一個元素,他們是分開的(從空的加的話,下標就從0開始)
(3)可以刪除:del list[2]
(4)列表指令碼操作符:
+用於組合列表,*用於重複列表。
len([1,2,3[) 長度
['hi']*4 直接生成了長度為4的列表哇
(5)擷取: L[-2] 讀取倒數第二個元素
(6)函式:(沒看,用時新增)
http://www.runoob.com/python/python-lists.html
cmp(list 1,list 2)
len, max是直接返回最大值
包含方法:
l.count(obj)出現次數
l.extend(seq)一次加多個值
list.insert(index, obj)
list.index(obj)
(第一個匹配值)
list.reverse()用於倒轉
還有sort啊,remove,pop。
【方括號↑】
python元組。
(1)元組和列表類似,不同的是元素不能修改,使用小括號,建立之後隔開。
元組中只包含一個元素時,需要在元素後面新增逗號
tup1 = (50,)
(2)下標從0開始,可以直接訪問
【不允許修改,但是可以連線+組合】
【不允許刪除,但是可以刪除整個元組】
(3)同樣可以len((1,2,3))
以及+ * in
for x in (1,2,3) print x
(4)可以擷取。無符號的的物件可以以逗號分隔開,預設為元組
python字典。
(1)字典的每個鍵值 key=>value 對用冒號 : 分割,每個鍵值對之間用逗號 , 分割,整個字典包括在花括號 {} 中
(2)鍵一般是唯一的,如果重複最後的一個鍵值對會替換前面的,值不需要唯一。
>>>dict = {'a': 1, 'b': 2, 'b': '3'};
>>> dict['b']
'3'
>>> dict
{'a': 1, 'b': '3'}
(3)值可以取任何資料型別,但鍵必須是不可變的,如字串,數字或元組。
(4)向字典新增新內容的方法是增加新的鍵/值對,修改或刪除已有鍵/值對
(直接加就好了:
dict={'name':'zara, 'age': 7, 'class': 'first'};
dict['age']=8;
dict['school']='second';
(z這個分號是怎麼回事?)
“del 刪除”可能會出事情(這個字典也不復存在)
字典值可以沒有限制地取任何python物件,既可以是標準的物件,也可以是使用者定義的,但鍵不行。
(5)
兩個重要的點需要記住:
1)不允許同一個鍵出現兩次。建立時如果同一個鍵被賦值兩次,後一個值會被記住。
2)鍵必須不可變,所以可以用數字,字串或元組充當,所以用列表就不行。(列表是可見的。。)
(6)dict.clear()
刪除字典內所有元素
============
函式time.time()用於獲取當前時間戳,
import time; # 引入time模組
ticks = time.time()
print "當前時間戳為:", ticks
(沒看)
python函式
return [表示式] 結束函式,選擇性地返回一個值給呼叫方。不帶表示式的return相當於返回 None。
【下面的,劃重點】========
在 python 中,型別屬於物件,變數是沒有型別的:
a=[1,2,3]
a="Runoob"
以上程式碼中,[1,2,3] 是 List 型別,"Runoob" 是 String 型別,而變數 a 是沒有型別,她僅僅是一個物件的引用(一個指標),可以是 List 型別物件,也可以指向 String 型別物件。
可更改(mutable)與不可更改(immutable)物件
在 python 中,strings, tuples, 和 numbers 是不可更改的物件,而 list,dict 等則是可以修改的物件。
不可變型別:變數賦值 a=5 後再賦值 a=10,這裡實際是新生成一個 int 值物件 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,相當於新生成了a。
可變型別:變數賦值 la=[1,2,3,4] 後再賦值 la[2]=5 則是將 list la 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了。
python 函式的引數傳遞:
不可變型別:類似 c++ 的值傳遞,如 整數、字串、元組。如fun(a),傳遞的只是a的值,沒有影響a物件本身。比如在 fun(a)內部修改 a 的值,只是修改另一個複製的物件,不會影響 a 本身。
可變型別:類似 c++ 的引用傳遞,如 列表,字典。如 fun(la),則是將 la 真正的傳過去,修改後fun外部的la也會受影響
python 中一切都是物件,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變物件和傳可變物件。
呼叫函式時,預設引數的值如果沒有傳入,則被認為是預設值。
加了星號(*)的變數名會存放所有未命名的變數引數。(可以 一個 , 也可以多個)
===============匿名函式
python 使用 lambda 來建立匿名函式。
lambda只是一個表示式,函式體比def簡單很多。
lambda的主體是一個表示式,而不是一個程式碼塊。僅僅能在lambda表示式中封裝有限的邏輯進去。
lambda函式擁有自己的名稱空間,且不能訪問自有引數列表之外或全域性名稱空間裡的引數。
雖然lambda函式看起來只能寫一行,卻不等同於C或C++的行內函數,後者的目的是呼叫小函式時不佔用棧記憶體從而增加執行效率。
語法
lambda函式的語法只包含一個語句,
# 可寫函式說明
sum = lambda arg1, arg2: arg1 + arg2;
# 呼叫sum函式
print "相加後的值為 : ", sum( 10, 20 )
print "相加後的值為 : ", sum( 20, 20 )
return語句[表示式]退出函式,選擇性地向呼叫方返回一個表示式。不帶引數值的return語句返回None。之前的例子都沒有示範如何返回數值,下例便告訴你怎麼做:
def sum( arg1, arg2 ):
# 返回2個引數的和."
total = arg1 + arg2
print "函式內 : ", total
return total;
# 呼叫sum函式
total = sum( 10, 20 );
def sum(arg1,agr2):
total=agr1+agr2
print "hanshunei": ,total
return total;
total=sum(10,20);