資料型別——集合與while迴圈

haolaishijian發表於2020-12-30

集合(set)

  • 集合介紹

    • 集合(set)是一個無序不重複元素的集,基本功能包括關係測試和消除重複元素。是可變資料型別
    • 集合資料型別的核心在於自動去重
  • 集合建立

    • 集合使用大括號{} 框定元素,並以逗號進行分隔。
    s = {ele1,ele2,ele3...}
    s = set()
    s = set(iterable)
    
    • 注意:
      • {}並不是建立空集合,而是空字典。建立空集合需使用set()
  • 新增元素

    • 通過set.add(key)方法可以新增元素到set,mMZMli,m中
    • 注意:
      • 可以重複新增,但是會自動去重,所以無效果
      • 不能新增可變物件
  • 集合更新

    • 可以通過set.update()方法,將另一個物件更新到已有的集合中,這一過程同樣會進行去重
  • 刪除元素

    • set.remove(key): 刪除指定元素
    • set.pop():隨機刪除元素(注意:無引數)
    • 注意:
      • 集合不能取出某個元素,因為集合既不支援下標索引也不支援字典那樣的通過鍵值對獲取。

順序執行

  • Python程式碼在執行過程中,遵循下面的基本原則:
    • 普通語句,直接執行;
    • 碰到函式,將函式體載入記憶體,並不直接執行
    • 碰到類,執行類內部的普通語句,但是類的方法只載入,不執行
    • 碰到if、for等控制語句,按相應控制流程執行
    • 碰到@、break、continue等,按規定語法執行
    • 碰到函式、方法呼叫等,轉而執行函式內部程式碼,執行完畢繼續執行原有順序程式碼

程式主入口

  • 一個.py,除了可以被直接執行外,還可以作為模組,被其他.py檔案匯入。不管是直接執行還是被匯入,.py檔案的最頂層程式碼都會被執行(Python用縮排來區分程式碼層次)。
  • 但是當一個.py檔案作為模組被匯入時,我們可能不希望一部分程式碼被執行。那麼就可以將這部分程式碼的呼叫寫在主程式中。
if __name__ == '__main__':
	pass

條件判斷

  • 條件判斷是通過一條或多條判斷語句的執行結果(True或者False)來決定執行的程式碼塊。在Python語法中,使用if、elif和else三個關鍵字來進行條件判斷。
  • 條件判斷使用原則:
    • 每個條件後面要是用冒號作為判斷行的結尾,表示接下來是滿足條件(結果為True)後要執行的語句塊。
    • 除了if分支必須有elifelse分支都可以根據情況省略
    • 使用縮排劃分語句塊,相同縮排數的語句在一起組成一個語句塊。
    • 順序判斷每一個分支,任何一個分支首先被命中並執行,則其後面的所有分支被忽略,直接跳過!
    • 可以由多個elif,但只能有一個else
    • 在Python中沒有switch-case語句。
  • ###條件判斷巢狀
    • if…elif…else語句可以巢狀,也就是把if…elif…else結構放在另一個if…elif…else結構中。

迴圈控制

  • 迴圈控制介紹

    • 迴圈控制,就是讓程式迴圈執行某一段程式碼直到滿足退出的條件,才退出迴圈Python用關鍵字forwhile來進行迴圈控制
  • while迴圈表示式

    • 當程式從上至下執行時,遇到while迴圈語句,則會判斷表示式是否成立,當成立時則會進入while迴圈體內,執行迴圈體內部執行的程式碼塊。直到判斷表示式不成立時,則終止迴圈
while True_expressin:
	pass
  • break與continue語句

    • break:當迴圈體執行的過程中想要退出迴圈體,就可以使用到break語句。
    • continue:continue語句用於跳過當前迴圈體剩餘部分的程式碼,直接開始下一輪迴圈。它不會退出和終止迴圈。
  • while的else從句

    • while迴圈還可以增加一個else從句。當while迴圈正常執行完畢,會執行else語句
    • 注意:
      • else與while平級的縮排方式
      • 如果是被break等強制提前終止的迴圈,不會執行else語句
  • while迴圈巢狀使用

    • if判斷可以巢狀,while當然也可以巢狀。但是建議大家不要巢狀3層以上,那樣的效率會很低。

作業

在這裡插入圖片描述

loin_1 = input('最近學習了嗎?yes/no:')
if loin_1 == 'yes':
    while True:
        print('very good')
        print('1.python')
        print('2.高數')
        print('3.退出')
        loin_2 = input('請輸入學習選項:')

        if loin_2 == '1':
            print('python真不戳')
            break
        elif loin_2 == '2':
            print('我待高數如初戀,高數掠我千萬遍')
            break
        elif loin_2 == '3':
            print('已退出')
            break
        else:
            print('選項有誤,請重新輸入')
elif loin_1 == 'no':
    print('年輕人,耗子尾汁')
else:
    print('輸入有誤')

相關文章