天天看點

Python運算符與三種基本結構

1. 運算符

1.1 算數運算符

  • 是完成基本的算術運算使用的符号,用來處理四則運算
Python運算符與三種基本結構

  • 在 Python 中 * 運算符還可以用于字元串,計算結果就是字元串重複指定次數的結果
  • In [1]: "-" * 50
    Out[1]: '----------------------------------------'            

    1.2 比較(關系)運算符

    Python運算符與三種基本結構

    1.3 邏輯運算符

    Python運算符與三種基本結構

    a = True
    print(a and 'a = T')  # a = T           
    Python把0、空字元串''、None看成False,其他數值和非空字元串都看成True
    print('a = T' or 'a = R')  # a = T           
    邏輯運算需要特别注意的是 and 和 or 運算時會發生短路現象 當 and 運算時,左邊如果是False時,and 右邊代碼不再執行了 當 or 運算時,右邊如果是True時,or 右邊代碼不再執行了

    1.4 指派運算符

    • 在 Python 中,使用 = 可以給變量指派
    • 在算術運算時,為了簡化代碼的編寫,Python 還提供了一系列的 與 算術運算符 對應的 指派運算符
    • 注意:指派運算符中間不能使用空格

    Python運算符與三種基本結構

    1.5 運算符的優先級

    • 以下表格的算數優先級由高到最低順序排列

    Python運算符與三種基本結構

    2. 三種基本結構

    • 在程式開發中,一共有三種基本結構,也叫三種流程方式:
      • 順序 —— 從上向下,順序執行代碼
      • 分支 —— 根據條件判斷,決定執行代碼的 分支
      • 循環 —— 讓 特定代碼 重複 執行

    Python運算符與三種基本結構

    2.1 順序結構

    代碼從上向下,順序執行代碼

    name = '小明'
    weight = '90公斤'
    sex = '男'
    print('姓名是%s,性别是%s,體重是%s' % (name, sex, weight))           

    2.2 選擇結構

    2.2.1 選擇結構的定義

    • 選擇結構用于判斷給定的條件,根據判斷的結果判斷某些條件,根據判斷的結果來控制程式的流程
    • 如果 條件滿足,才能做某件事情,
    • 如果 條件不滿足,就做另外一件事情,或者什麼也不做
    比如我去北京,我可以選擇坐飛機,也可以選擇坐火車,也可以選擇走路

    2.2.2 if 判斷語句基本文法

    在 Python 中,if 語句 就是用來進行判斷的,格式如下:

    if 要判斷的條件:
        條件成立時,要做的事情
        ……           
    注意:代碼的縮進為一個 tab 鍵,或者 4 個空格 —— 建議使用空格
    i = 10
    if i > 2:
        print('我是最帥的')
    print('打的去北京')           

    2.2.3 if-else 判斷語句基本文法

    if 要判斷的條件:
        條件成立時,要做的事情
        ……
    else:
        條件不成立時,要做的事情
        ……           
    i = 1
    if i > 2:
        print('我是最帥的')
    else:
        print('你們是最帥的')
    
    print('打的去北京')           
    # 判斷變量 f 是否存在
    
    if 'f' in dir():
        print('變量存在')
    else:
        print('變量不存在')           

    2.2.4 if-elif……-else 判斷語句基本文法

    # 一棟樓5層,一次隻能按一個樓層
    i = int(input('請按樓層:'))
    if i == 2:
        print('他去2樓')
    elif i == 3:
        print('他去3樓')
    elif i == 4:
        print('他去4樓')
    else:
        print('他去5樓')           

    2.2.5 if語句的嵌套使用

    if 條件1:
        if 條件2:
            print('滿足條件1,同時滿足條件2')
        else:
            print('滿足條件1,但是不滿足條件2')
    else:
        print('不滿足條件1')           

    猜拳遊戲1

    player = int(input('請出拳,剪刀(1)、石頭(2)、布(3)'))
    # 假設電腦隻會出剪刀1
    computer = 1
    if computer == player:
        print("平局")
    elif player == 1 and computer == 2 or \
                            player == 2 and computer == 1 or \
                            player == 3 and computer == 2:
        print("耶,赢啦")
    else:
        print("不行,我要跟你決戰到天亮")           

    猜拳遊戲2

    • 在 Python 中,要使用随機數,首先需要導入 随機數 的 子產品 —— “工具包”
    import random           
    • 導入子產品後,可以直接在 子產品名稱 後面敲一個 . 然後按 Tab 鍵,會提示該子產品中包含的所有函數
    • random.randint(a, b) ,傳回 [a, b] 之間的整數,包含 a 和 b
    • 例如:
    random.randint(12, 20) # 生成的随機數n: 12 <= n <= 20 
    random.randint(20, 20) # 結果永遠是 20 
    random.randint(20, 10) # 該語句是錯誤的,下限必須小于上限           
    import random
    
    player = int(input('請出拳,剪刀(1)、石頭(2)、布(3)'))
    # 假設電腦隻會出剪刀1
    computer = random.randint(1, 3)
    if computer == player:
        print("平局")
    elif player == 1 and computer == 2 or \ 
    																		player == 2 and computer == 1 or \ 
                                        player == 3 and computer == 2: 
        print("耶,赢啦")
    else:
        print("我要跟你決戰到天亮")           

    2.3 循環結構

    循環結構,用來描述重複執行某段算法的問題 。循環結構可以看成是一個條件判斷語句和一個向回轉向語句的組合。

    2.3.1 while 語句基本文法

    初始條件設定
    while 條件(判斷條件是否為True):
        條件滿足時,做的事情1
        條件滿足時,做的事情2
        條件滿足時,做的事情3
        ...(省略)...
        
        處理條件(計數器 + 1)           

    注意:

    • while 語句以及縮進部分可以看成是一個 完整的代碼塊
    # 小明上課看小人書,罰跑操場5圈
    i = 1
    while i <= 5:
        # 要重複執行的代碼
        print("小明跑完第%d圈" %i)
    
        i = i + 1           

    2.3.2 無限循環

    無限循環就是循環裡面條件永遠都是為 True,無止盡的循環下去!也叫死循環 程式員在寫代碼的時候,不小心,也容易寫出死循環,死循環很消耗記憶體,容易當機挂掉

    2.3.3 利用循環求和

    • 計算 0 ~ 100 之間所有整數的和
    # 計算 0 ~ 100 之間所有數字的累計求和結果
    
    # 0. 定義一個變量存放計算結果
    result = 0
    
    # 1. 定義循環的變量
    i = 0
    
    # 2. 開始循環
    while i <= 100:
        # 循環體
    
        # 每一次循環,都讓 result 這個變量加上 i 這個值
        result += i
    
        # 循環變量值處理
        i += 1
    
    print("0~100之間整數的和是 = %d" % result)
               
    • 計算 0 ~ 100 之間所有偶數的和
    result = 0
    
    # 1. 定義循環的變量
    i = 0
    
    # 2. 開始循環
    while i <= 100:
        # 循環體
    
        # 每一次循環,判斷這個數是否是偶數
        if i % 2 == 0:
            result += i
    
        # 循環變量值處理
        i += 1
    
    print("0~100之間整數的和是 = %d" % result)           

    2.3.4 break 和 continue

    break 和 continue 是專門在循環中使用的關鍵字
    • break 某一條件滿足時,退出循環
    • continue 某一條件滿足時,隻是結束本次循環 打個比方,有個人上6天班,循環6次。某天生病請假,病好了繼續上班就是用continue;某天一睡不醒了,那就徹底不來上班了就是用break

    在循環過程中,滿足某個條件後,隻是結束本次循環,使用 continue

    i = 1
    
    while i <= 6:
    
        # 當星期三時生病請假一天
        if i == 3:
    
            i += 1
    
            # continue 之前要記得時間變成星期四,否則一直在星期三死循環
            continue
    
        # 重複執行的代碼
        print(i)
    
        i += 1           

    在循環過程中,滿足某個條件後,需要徹底退出循環,使用 break

    i = 1
    
    while i <= 6:
    
        # 星期三這天一睡不醒了,徹底不用上班了,break
        if i == 3:
            break
    
        print(i)
    
        i += 1
    
    print("over")           

    2.3.5 while循環嵌套

    while 嵌套就是:while 裡面還有 while

    while 條件 1:
        條件滿足時,做的事情1
        條件滿足時,做的事情2
        條件滿足時,做的事情3
        ...(省略)...
        
        while 條件 2:
            條件滿足時,做的事情1
            條件滿足時,做的事情2
            條件滿足時,做的事情3
            ...(省略)...
        
            處理條件 2
        
        處理條件 1           

    循環嵌套演練 —— 九九乘法表

    print 函數的用法

    • 在預設情況下,print 函數輸出内容之後,會自動在内容末尾增加換行
    • 在使用print時,如果不希望換行,在使用 print 函數時,第二參數給 end=""
    • end=""可以添加\t,表示輸出一個 制表符,協助在輸出文本時 垂直方向 保持對齊
    • end=""可以添加\n,表示輸出一個 換行符
    • 文法格式如下:
    # 向控制台輸出内容結束之後,不會換行
    print("*", end="")
    
    # 單純的換行
    print("")           
    end="" 表示向控制台輸出内容結束之後,不會換行
    • 第 1 步:使用循環嵌套列印小星星
    • 在控制台連續輸出9行 *,每一行星号的數量依次遞增
    # 定義第一行開始循環
    row = 1
    # 總共循環 9 次
    while row <= 9:
        # 定義每行第一列開始輸出 *
        col = 1
        # 每行一個列輸出一個 * ,一共輸出幾列,就看 col <= row 條件是否滿足
        while col <= row:
            # 輸出 * 不換行
            print("*", end="")
            col += 1
        row += 1
        # 隻換行
        print("")           
    • 使用字元串 * 列印
    # 1. 定義一個計數器變量,從數字1開始,循環會比較友善
    row = 1
    
    while row <= 5:
    
        print("*" * row)
    
        row += 1
               
    • 第 2 步:将每一個 * 替換成對應的行與列相乘
    # 定義第一行開始循環
    row = 1
    # 總共循環 9 次
    while row <= 9:
        # 定義每行第一列開始輸出 *
        col = 1
        # 每行一個列輸出一個 * ,一共輸出幾列,就看 col <= row 條件是否滿足
        while col <= row:
            # 輸出 * 不換行
            print("%d * %d = %d" % (row, col, row * col), end="\t")
            col += 1
        row += 1
        # 隻換行
        print("")           
    • 第 3 步:運作,輸出"九九乘法表",格式如下
    1 * 1 = 1   
    1 * 2 = 2   2 * 2 = 4   
    1 * 3 = 3   2 * 3 = 6   3 * 3 = 9   
    1 * 4 = 4   2 * 4 = 8   3 * 4 = 12  4 * 4 = 16  
    1 * 5 = 5   2 * 5 = 10  3 * 5 = 15  4 * 5 = 20  5 * 5 = 25  
    1 * 6 = 6   2 * 6 = 12  3 * 6 = 18  4 * 6 = 24  5 * 6 = 30  6 * 6 = 36  
    1 * 7 = 7   2 * 7 = 14  3 * 7 = 21  4 * 7 = 28  5 * 7 = 35  6 * 7 = 42  7 * 7 = 49  
    1 * 8 = 8   2 * 8 = 16  3 * 8 = 24  4 * 8 = 32  5 * 8 = 40  6 * 8 = 48  7 * 8 = 56  8 * 8 = 64  
    1 * 9 = 9   2 * 9 = 18  3 * 9 = 27  4 * 9 = 36  5 * 9 = 45  6 * 9 = 54  7 * 9 = 63  8 * 9 = 72  9 * 9 = 81
               

    2.3.6 for 語句基本文法

    • for跟while一樣也可以實作循環,在Python中for循環可以周遊任何序列的項目,如一個清單(下節課會講)或者一個字元串
    for 臨時變量 in 字元串或清單等:
        執行代碼塊1
        執行代碼塊2
        執行代碼塊3
        ...(省略)...           
    str = "I love you,china"
    for temp in str:
        print(temp)