python學習記錄(三)

2021-08-20 12:05:22 字數 3227 閱讀 5923

1、if else

(1)是從上往下判斷,如果在某個判斷上是true,把該判斷對應的語句執行後,就忽略掉剩下的elifelse

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()返回的資料型別是strstr不能直接和整數比較,必須先把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...