python 運算符與表達式


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM