1、if else
(1)是從上往下判斷,如果在某個判斷上是true
,把該判斷對應的語句執行後,就忽略掉剩下的elif
和else
age = 3
if age >= 18:
print('adult')
elif age >= 6:
print('teenager')
else:
print('kid')
(2)判斷條件還可以簡寫
if x:
print('true')
只要x
是非零數值、非空字串、非空list等,就判斷為true
,否則為false
。
(3)、input()
返回的資料型別是str
,str
不能直接和整數比較,必須先把str
轉換成整數。python提供了int()
函式來完成這件事情:
s = input('birth: ')
birth = int(s)
if birth < 2000:
print('00前')
else:
print('00後')
二、迴圈
(1)、
所以for x in ...
迴圈就是把每個元素代入變數x
,然後執行縮排塊的語句。
(2)、python提供乙個range()
函式,可以生成乙個整數序列,再通過list()
函式可以轉換為list。比如range(5)
生成的序列是從0開始小於5的整數:
>>> list(range(5))
[0, 1, 2, 3, 4]
(3)、break
在迴圈中,break
語句可以提前退出迴圈。例如,本來要迴圈列印1~100的數字:
n = 1
while n <= 100:
if n > 10: # 當n = 11時,條件滿足,執行break語句
break
# break語句會結束當前迴圈
print(n)
n = n + 1
print('end')
執行上面的**可以看到,列印出1~10後,緊接著列印end
,程式結束。
(4)、continue
在迴圈過程中,也可以通過continue
語句,跳過當前的這次迴圈,直接開始下一次迴圈。
n = 0
while n < 10:
n = n + 1
if n % 2 == 0: # 如果n是偶數,執行continue語句
continue
# continue語句會直接繼續下一輪迴圈,後續的print()語句不會執行
print(n)
執行上面的**可以看到,列印的不再是1~10,而是1,3,5,7,9。
break
語句可以在迴圈過程中直接退出迴圈,而continue
語句可以提前結束本輪迴圈,並直接開始下一輪迴圈。這兩個語句通常都
必須配合if
語句使用。
三、dict
使用鍵-值(key-value)儲存,具有極快的查詢速度。
>>> d =
>>> d['michael']
95
(1)、判斷是否存在key
1、in
>>>
'thomas'
in d
false
2、get()
過dict提供的get()
方法,如果key不存在,可以返回none
,或者自己指定的value:
>>> d.get('thomas')
>>> d.get('thomas', -1)
-1
(2)、pop(key)
刪除乙個key,用pop(key)
方法,對應的value也會從dict中刪除:
>>> d.pop('bob')
75>>> d
(3)、dict的key必須是
不可變物件
通過key計算位置的演算法稱為雜湊演算法(hash)
要保證hash的正確性,作為key的物件就不能變。在python中,字串、整數等都是不可變的,因此,可以放心地作為key。而list是可變的,就不能作為key:
>>> key = [1, 2, 3]
>>> d[key] = 'a list'
traceback (most recent call last):
file "", line 1, in
typeerror: unhashable type: 'list'
四、set
set和dict類似,也是一組key的集合,但不儲存value。由於key不能重複,所以,在set中,沒有重複的key。
>>> s = set([1, 2, 3])
>>> s
(1)、
通過add(key)
方法可以新增元素到set中
>>> s.add(4)
>>> s
>>> s.add(4)
>>> s
(2)、通過remove(key)
方法可以刪除元素:
>>> s.remove(4)
>>> s
(3)、
replace()
>>> a = 'abc'
>>> b = a.replace('a', 'a')
>>> b
'abc'
>>> a
'abc'
參考文章:
python學習記錄三
def 函式名 引數列表 函式體在python中,一切都是物件,型別也屬於物件,變數是沒有型別的。a 1,2,3 a helloworld 以上 中,1,2,3 是list型別,helloworld 是string型別,而變數a是沒有型別的,它僅僅是乙個物件的引用 乙個指標 可以是指向list型別物...
學習記錄(三)
new出來的空間都會給個預設值 基本型別預設值是0,引用型別預設值是null,布林型別預設值是false 方法內的new沒給預設值的確沒有,物件內沒給會有預設值 陣列的資料空間是連續的,申請的時候預設連續 一般連續放資料,但比如桶排序會不按順序放入 導線互相匯聚,網路通過電訊號傳播 電壓,高電壓1,...
python學習記錄
python 3 整除,複數表示,slice,range,pass關鍵字,函式用引數名呼叫,函式的 arg和 arg,預設引數,unpacking argument lists,sequence 型別 list,set tuple,dictionary,queue,stack loop相關 enum...