1 . 除了常規比較操作,以下值或返回true或false:
- 數字(0,0.0返回false)
- 資料型別none返回false
- 集合型別(list,tuple,dict,set)元素數量為0返回false
2 . python內建上述四種集合可用於迭代(for… in …),其中字典型別以key值返回,且和set一樣內容是亂序(可改用collections模組)。
3 . 只要類中有iter和next函式,可以作為迭代器物件在for語句中使用。
# define a fib class
class
fib(object):
def__init__
(self, max):
self.max = max
self.n, self.a, self.b = 0, 0, 1
def__iter__
(self):
return self
def__next__
(self):
if self.n < self.max:
r = self.b
self.a, self.b = self.b, self.a + self.b
self.n = self.n + 1
return r
raise stopiteration()
# using fib object
for i in fib(5):
print(i)
yield關鍵字也可實現迭代效果。yield 語句每次執行時,立即返回結果給上層呼叫者,而當前的狀態仍然保留,以便迭代器下一次迴圈呼叫。
def
fib(max):
a,b=0,1
while max:
r=ba,b=b,a+b
max-=1
yield r
#using generator
for i in fib(5):
print(i)
4 . 三目運算子:python沒有類似 condition ? value1 : value2 三目操作符,不過python可以通過 if-else 的行內表示式完成類似的功能。
var=var1 if condition else var2
5 . 使用if __name__ == '__main__':
的**稱為自呼叫,可用於單元測試等。
6 . 函式引數擺放位置:特定引數》預設引數》可變引數》關鍵字引數。可變引數以()和變數名組合,為可迭代的物件。關鍵字引數(*)在函式內部封裝成字典。
def
report
(name, *grades):
total_grade = 0
for grade in grades:
total_grade += grade
print(name, 'total grade is ', total_grade)
defportrait
(name, **kw):
print('name is', name)
for k,v in kw.items():
print(k, v)
9 . 高階函式
- zip
a=[1,2,3]
b=[4,5,6]
ab=zip(a,b)
print(list(ab))
for i,j in zip(a,b):
print(i/2,j*2)
'''[(1, 4), (2, 5), (3, 6)]
0.5 8
1.0 10
1.5 12
'''
fun= lambda x,y:x+y
x=int(input('x=')) #這裡要定義int整數,否則會預設為字串
y=int(input('y='))
print(fun(x,y)
def
fun(x,y):
return x+y
print(list(map(fun,[1],[2])))
print(list(map(fun,[1,2],[2,4])))
print(fun([1,2],[3,4]))
'''[3]
[3, 6]
[1, 2, 3, 4]
'''
10 . 深copy和淺拷貝
乙個物件的id值在cpython直譯器裡就代表它在記憶體中的位址,如id(var)
。
淺拷貝只是拷貝了最外圍的物件本身,內部的元素都只是拷貝了乙個引用而已。如copy.copy(var)
,深拷貝對外圍和內部元素都進行了拷貝物件本身,如copy.deepcopy(var)
。
11 . 正規表示式
python知識筆記 python筆記 基礎知識
輸入輸出 輸入 inputnum input 輸入乙個數字 輸出 print 列印你輸入的數字 inputnum 字串字串格式化 標記轉換說明符的開始 轉換標記 可選 左對齊 轉換之前要加上 號 正數之前保留空格 0位數不夠用0填充 最小字段寬度 可選 轉換後的字串至少應該具有指定的寬度 精度 可選...
python筆記 基礎知識
輸入 inputnum input 輸入乙個數字 輸出 print 列印你輸入的數字 inputnum 字串格式化 標記轉換說明符的開始 轉換標記 可選 左對齊 轉換之前要加上 號 正數之前保留空格 0位數不夠用0填充 最小字段寬度 可選 轉換後的字串至少應該具有指定的寬度 精度 可選 如果時實數,...
python基礎知識筆記
比如 想列印 i m a little girl 有兩種方法可以實現。1 使用轉義符號 對字串中的引號進行轉義 print i m a little girl 需要注意轉義符號 的位置 i m a little girl 2 使用print直接列印 print i m a little girl i...