運算符(算術運算符,賦值運算符,比較運算符,邏輯運算符)


一、算術運算符

+
1>求和
2>正號
3>連接兩個字符串
"a" + "b" = "ab"
# ---------------------- "+"的用途 -------------------
a = 10
b = +20
c = a + b
print("%d + %d = %d"%(a,b,c))
# 10 + 20 = 30

str1 = "Hello"
str2 = "World"
str3 = str1 + str2
print(str3)
# HelloWorld
-
1>求差
2>負號
# ---------------------- "-"的用途 -------------------
a = 10
b = -20
c = a - b
print("c = %d"%c)
# c = 30    負負得正
*
1>求乘積
2>重復
# ---------------------- "*"的用途 -------------------
a = 5
b = 6
c = a * b
print("c = %d"%c)
# c = 30

# 重復將Hello打印3次
print("Hello"*3)
# HelloHelloHello
/
1>求商
//
1>取整除
# ---------------------- "/"與"//"的用途 -------------------
print(5/2)
# 2.5
print(5//2)
# 2
print(5//2.0)
# 2.0
**
1>求幾次冪
    2的3次冪
    python寫法:2 ** 3
# ---------------------- "**"的用途 -------------------
print(2 ** 3)
# 8
print(2 ** -1)
# 0.5
%
1>取余數
# ---------------------- "%"的用途 -------------------
print(100%3)
# 1

二、賦值運算符

1.單獨的賦值
=
PI = 3.14
PI = 3.14
print("PI = %g"%PI)
# PI = 3.14

#只能在python里面使用連等
a = 10
b = 20
c = a = b
print("a = %d\tb= %d\tc = %d"%(a,b,c))
# a = 20    b= 20    c = 20

# 注意,此類賦值操作,變量a和b是同時進行賦值的
a,b = 10,20
a,b = a+1,a
print("a = %d\tb= %d"%(a,b))
# a = 11    b= 10
2.結合的賦值(算術運算符結合)
+=
# ---------------------- "+="的用途 -------------------
a,b = 10,20
a += b
# 等價於 a = a + b
print("a = %d\tb= %d"%(a,b))
# a = 30    b= 20
    -=
# ---------------------- "-="的用途 -------------------
a,b = 10,20
a -= b
# 等價於 a = a - b
print("a = %d\tb= %d"%(a,b))
# a = -10    b= 20
    *=
# ---------------------- "*="的用途 -------------------
a,b = 10,20
a *= b
print("a = %d\tb= %d"%(a,b))
# a = 200    b= 20
    /=
  //=
# ---------------------- "/="與"//="的用途 -------------------
a = 100
a /= 5
print("a = %g"%a)
# a = 20

a //= 5
print("a = %g"%a)
# a = 4
    **=
# ---------------------- "**="的用途 -------------------
a = 2
a **= 3
print("a = %d"%a)
# a = 8
    %=
# ---------------------- "%="的用途 -------------------
a = 10
a %= 3
print("a = %d"%a)
# a = 1
三、比較運算符
  >
  <
  >=
  <=
  ==
  !=
  比較結果:
   bool值
   True /Yes 非0
   False /No 0
result = 10 > 9
print(result)
# True
print("result的數據類型:",type(result))
# result的數據類型: <class 'bool'>
四、邏輯運算符
    and
or
not
import random
#猜篩子大小游戲,得到[1,6]范圍內的隨機數,包括1,6
rand_num = random.randint(1,6)
if 1 <= rand_num and rand_num <= 3:
    print("")
if 4 <= rand_num and rand_num <= 6:
    print("")

案例1:

輸入用戶名跟密碼,輸入都正確的話,給出登陸成功的提示
# 用戶已經注冊好的用戶名和密碼
acc = "2020110157"
pwd = "tyy19950225"

account = input("請輸入用戶名:")
password = input("請輸入密碼:")

# 判斷,是否符合成功登陸的條件
if(account == acc and password == pwd):
    print("登陸成功!")
if(account != acc or password != pwd):
    print("用戶名或者密碼錯誤...")

案例2:

  從鍵盤錄入兩個整型數,分別打印兩個值,將兩個數值完成交換,打印交換之后的值

 

a = int(input("請輸入第一個整型數:"))
b = int(input("請輸入第二個整型數:"))
print("交換前:a = %d\tb = %d"%(a,b))

# 方案一
temp = a
a = b
b = temp
print("交換后:a = %d\tb = %d"%(a,b))

# 方案二
a = a + b
b = a - b
a = a - b
print("交換后:a = %d\tb = %d"%(a,b))

# 方案三
a,b = b,a
# python特有的交換方法,同時執行賦值操作
print("交換后:a = %d\tb = %d"%(a,b))

 

拓展:

1.同一運算符(is 與 ==)

1> is 比較的是兩個實例對象是不是完全相同,它們是不是同一個對象,占用的內存地址是否相同。
即is比較兩個條件:
1)內容相同。
2)內存中地址相同
2> == 是比較兩個對象的內容是否相等,即兩個對象的“值“”是否相等,不管兩者在內存中的引用地址是否一樣
a = [1,2,3]
b = [1,2,3]
print("a的id:{0}\ta的類型:{1}".format(id(a),type(a)))
# a的id:61465504    a的類型:<class 'list'>
print("b的id:{0}\tb的類型:{1}".format(id(b),type(b)))
# b的id:60774440    b的類型:<class 'list'>
print("a is b:{}".format(a is b))
# a is b:False
print("a == b:{}".format(a == b))
# a == b:True

2.使用is注意python對於小整數使用對象池存儲問題

  python對小整數在內存中直接創建了一份,不會回收,所有創建的小整數變量直接從對象池中引用他即可。

  但是注意Python僅僅對比較小的整數對象進行緩存(范圍為范圍[-5, 256])緩存起來,在這個范圍內的小整數,任意相同的整數都是同一個對象,而並非是所有整數對象。

  (pycharm對整數池進行了優化,因此也是同一個對象)

# pycharm對於小整數使用對象池存儲問題,進行了優化
a1 = 100
b1 = 100
print("a1的id:{0}\ta1的類型:{1}".format(id(a1),type(a1)))
print("b1的id:{0}\tb1的類型:{1}".format(id(b1),type(b1)))
print("a1 is b1:{}".format(a1 is b1))
# True

a2 = 10000
b2 = 10000
print("a2的id:{0}\ta2的類型:{1}".format(id(a2),type(a2)))
print("b2的id:{0}\tb2的類型:{1}".format(id(b2),type(b2)))
print("a2 is b2:{}".format(a2 is b2))
# True 使用pycharm同樣是True,因為做了優化


免責聲明!

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



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