小白學python日誌(04)- 字典、集合的概念及簡單應用,控制語句的中選擇、迴圈結構的基本使用

Allure love.發表於2020-10-24

已經是第四次寫日誌了,這次的日誌應該是昨天完成的,但是由於時間關係只能放到了今天上午,今天主要學習的內容是緊接著上次課學完列表、元組之後的內容即為字典和集合,這兩部分內容相對來說比較少,結構也比較簡單。

字典的是有鍵值對的無序可變序列,主要組成部分是鍵和值,首先是字典的建立,可以通過{}和dict()來進行建立,也可以用zip()建立字典物件以及通過fromkeys建立值為空的字典。

字典的訪問彙總可以通過鍵來獲得相對應的值,也可以用get()函式獲得相對應的值還有就是通過a.items()來獲得相對應的值也可以用key()列出素有的鍵和用value()列出所有的值。len()是用來監測字典中的鍵值的對數,用in可以檢測鍵是否在字典中,這個和字串適應方法是一致的。

字典的新增時的規則是新增的鍵值對,如果鍵存在則覆蓋舊的鍵值對,如果鍵不存在則新增鍵值對,這個要注意,使用update()將新字典中鍵值全部天極愛倒酒的字典物件上去,如果鍵有重複,則直接覆蓋,這個還是要看一些程式碼例項才能更加清楚。字典中元素的刪除用到的方法為del()或是clear()刪除所有的鍵值對;pop()用來刪除指定的鍵值對,並返回對應的值物件,例項如下:

popitem()是用來隨機刪除和返回該鍵值對,字典是無序可變序列,就是沒有相對應的第一個和最後一個元素之分,例項如下:

序列解包:是用於元組、列表、字典,比較方便對多個變數賦值。

隨後講述了表格資料使用字典和列表儲存和實現訪問的程式碼:

r1={'name':'高小一','age':18,'salary':30000,'city':'北京'}
r2={'name':'高小二','age':19,'salary':20000,'city':'上海'}
r3={'name':'高小一','age':20,'salary':10000,'city':'深圳'}
tb=[r1,r2,r3]
#獲得第二行人的薪資
print(tb[1].get('salary'))

#獲得所有人的薪資

for i in range(len(tb)):
    print(tb[i].get('salary'))

#列印所有的資料

for i in range(len(tb)):
    print(tb[i].get('name'),tb[i].get('age'),tb[i].get('salary'),tb[i].get('city'))

程式碼是寫出來了也看懂了,但是說實話自己還是不會用,要是碰到類似的問題,還是做不出來。

後面講的字典核心底層原理以及根據鍵查詢鍵值對的底層過程說實話沒聽懂,老師說聽不懂也沒有關係,後面還會繼續學習,那就先放一放了。

接著就學習了集合的建立和刪除,新增的話用的是add()函式,或是使用set()將列表、元組等可迭代的物件轉化成集合,然後原來的資料存在重複資料中,則只保留一個。

集合的刪除是使用remove()刪除指定的元素;clear()函式使用來清空整個集合的,後續講到如何實現集合的並交差,和前面的字串以及列表相似,這個地方我就不再詳細寫了。

然後序列的部分就全部講完了,這次後面有個實操作業,但是我看了一下比較難,就沒有做,其實也不是難,就是沒有時間再做這個。感覺後面的課雖然比較少,但是相對來說比較花費時間和精力,可能是因為前面的知識點之前是學過的導致學習起來相對來說比較簡單,但是後面的基本上很多東西如果一時沒有聽懂,到後面就相對來說比較困難了。

接著就是講述了控住語句,前面講的資料型別以及序列都是為後面的控制語句做基礎的,演算法的基本框架都是控制語句來實現的,相對來說比較重要。

之前實現程式碼都是通過IDLE也就是python自帶的直譯器來實現的,從今天開始就要使用pycharm來進行程式碼的編寫,跟著教程安裝了pycharm,熟悉了其中的程式介面。

開始的是選擇結構:單分支選擇結構、雙分支選擇結構、多分支選擇結構,前兩個相對來說比較簡單,但是中間也有很多需要注意的細節問題,比如條件表示式中不能出現賦值操作符“=”,選擇和迴圈結構中條件表示式的值為False的情況,以及三元條件運算子的實現這個相對來說不是很好理解。多分支的條件結構中,幾個分支之間是有邏輯關係的,不能所以顛倒順序。然後接著學習了選擇結構巢狀的內容,一定要注意程式碼的縮排問題,例項程式碼如下:

score=int(input('請輸入一個0-100之間的數字:'))
grade=''
if score>100 or score<0:
    score=int(input('輸入錯誤!請重新輸入一個0-100之間的數字'))
else:
    if score>=90:
        grade='A'
    elif score>=80:
        grade="B"
    elif score>=70:
        grade="C"
    elif score>=60:
        grade="D"
    else:
        grade='E'
    print('分數為{0},等級為{1}'.format(score,grade))

        接著是迴圈結構,迴圈結構是重複執行一條或是多條的語句直到滿足條件。

使用迴圈語句的為while語句,還有for語句和可迭代物件遍歷。突然發現for語句這麼陌生,說過了,這個地方還沒有學習,暫時說到這裡,後面等學習了這個再說吧。

相關文章