1、運算符
1.1 算數運算符
+、-、*、/、//、%(取余)、**(冪)
注意:
1> 除法運算中除數不為0,/:結果為浮點數,//:結果為整數
2> 在算數操作符中使用%求余,結果只與除數(第二個操作數)的正負有關
1.2 賦值運算符
賦值運算符與四則運算符組合:實現把賦值運算符左右兩側的內容進行相應的四則運算后,把結果賦值給變量
實例:
# -*- coding:utf-8 -*-
# version:python3.7
a = 2 a += 1 print(a) 執行結果: 3
1.3 比較(關系)運算符
用於對變量或表達式的結果進行大小、真假等比較。比較的結果為真,則返回True,為假,則返回False。通常用在條件語句中作為判斷的依據。
實例:判斷python和english的成績是否合格 # -*- coding:utf-8 -*- # version:python3.7 python = float(input("please enter your python score:")) english = float(input("please enter your english score:")) if python >= 60: print("Your python score is qualified.") if python < 60: print("Your python score is disqualified.") if english >= 60: print("Your english score is qualified.") if english < 60: print("Your english score is disqualified.") 執行結果: please enter your python score:56 please enter your english score:72 Your python score is disqualified. Your english score is qualified.
1.4 邏輯運算符
對布爾值(真和假)進行邏輯與、邏輯或、邏輯非運算
1> 邏輯與(and):一假則假
2> 邏輯或(or):一真則真
3> 邏輯非(not):條件為真,結果為假;條件為假,結果為真
實例: # -*- coding:utf-8 -*- # version:python3.7 a = float(input("請輸入a的值:")) b = float(input("請輸入b的值:")) if a > 60 and b > 60: print("a和b都大於60") else: print("a和b不都大於60") 執行結果: 請輸入a的值:56 請輸入b的值:66 a和b不都大於60
1.5 位運算符
把數據看成二進制數進行計算:
1> 位與運算(&):兩個操作數按二進制數表示,對應位都為1,結果位才為1
2> 位或運算(|):兩個操作數按二進制數表示,對應位都為0,結果位才為0
3> 位異或運算(^):兩個操作數按二進制數表示,對應位同為1或同為0,結果為0,否則為1
9 % 2 == 1 #判斷是否為奇數 9 & 1 == 1 #判斷是否為奇數 #&與運算,都為1才為1,奇數轉換為二進制最后一位必為1
位異或實例1:兩個數互換值 # -*- coding:utf-8 -*- # version:python3.7 a = int(input("請輸入a的值:")) b = int(input("請輸入b的值:")) a = a ^ b b = a ^ b a = a ^ b print("a的值為:",a) print("b的值為:",b) 執行結果: 請輸入a的值:5 請輸入b的值:6 a的值為: 6 b的值為: 5
位異或實例2:簡單加密 # -*- coding:utf-8 -*- # version:python3.7 pwd = int(input("請輸入密碼:")) key = int(input("請輸入秘鑰:")) password = pwd ^ key print("加密后的結果:",password) print("解密后的結果:",password ^ key) 執行結果: 請輸入密碼:123456 請輸入秘鑰:55 加密后的結果: 123511 解密后的結果: 123456
4> 位取反運算(~):把二進制操作數,對應位1變為0,0變為1
5> 左移位運算符(<<):把二進制操作數,向左移動相應位數,左邊最高位溢出時被丟棄,右邊空位用0補齊(左移位相當於乘以2的n次冪)
6> 右移位運算符(>>):把二進制操作數,向右移動相應位數,右邊溢出位被丟棄,左邊最高位如果是0補0,是1補1(右移位相當於除以2的n次冪)
實例:左移一位相當於乘以2的n次冪,右移一位相當於除以2的n次冪 # -*- coding:utf-8 -*- # version:python3.7 number = 32 print("左移一位:",number << 1) print("右移一位:",number >> 1) 執行結果: 左移一位: 64 右移一位: 16
1.6 成員運算符
in、not in
1.7 身份運算符
is、is not
1.8 運算符的優先級
按運算符優先級從高到低運算,同一級別從左到右順序執行,可以使用()改變優先級
2、條件表達式
基本語法:結果1 if 表達式 else 結果2
結果1為表達式結果為True的值,結果2位表達式結果為False的值
語法演變:variable = [結果1] if [表達式] else [結果2]
實例1:輸出a、b中的較大數 # -*- coding:utf-8 -*- # version:python3.7 a = float(input("請輸入a的值:")) b = float(input("請輸入b的值:")) r = a if a > b else b print("輸出較大數:",r) 執行結果: 請輸入a的值:4.5 請輸入b的值:6.88 輸出較大數: 6.88
實例2:輸出a的絕對值 # -*- coding:utf-8 -*- # version:python3.7 a = float(input("請輸入a的值:")) b = a if a > 0 else -a print("a的絕對值為:",b) 執行結果: 請輸入a的值:-7.4 a的絕對值為: 7.4
短路:提高效率
#短路: 1 > 2 and 3 > 2 #1>2 第一個比較運算符為False,根據and邏輯運算符,則整體為False 2 > 1 or 3 > 4 #2>1第一個比較運算符為True,根據or邏輯運算符,則整體為True