Python運算符

本文是參照菜鳥教程的例子,並自己加以總結,主要是練習鞏固運算符的使用和理解,下面是每個類型的運算符的實例和概念介紹,做個記錄,方便日後回憶,查看

 

# !/usr/bin/env python
# -*- coding:utf8 -*-
# 運算符

a = 21
b = 10

print("算數運算符的結果爲:")
# <editor-fold desc="算數運算符概念">
# +	加 - 兩個對象相加	a + b 輸出結果 31
# -	減 - 得到負數或是一個數減去另一個數	a - b 輸出結果 -11
# *	乘 - 兩個數相乘或是返回一個被重複若干次的字符串	a * b 輸出結果 210
# /	除 - x 除以 y	b / a 輸出結果 2.1
# %	取模 - 返回除法的餘數	b % a 輸出結果 1
# **	冪 - 返回x的y次冪	a**b 爲10的21次方
# //	取整除 - 返回商的整數部分	9//2 輸出結果 4 , 9.0//2.0 輸出結果 4.0
# </editor-fold>
# <editor-fold desc="算數運算符">
# 加
c = a + b
print("1 - c 的值爲:", c)

# 減
c = a - b
print("2 - c 的值爲:", c)

# 乘
c = a * b
print("3 - c 的值爲:", c)

# 除
c = a / b
print("4 - c 的值爲:", c)

# 取餘
c = a % b
print("5 - c 的值爲:", c)

# 階乘
c = a ** b
print("6 - c 的值爲:", c)

# 取商
c = a // b
print("7 - c 的值爲:", c)
# </editor-fold>


print("\n比較運算符的結果爲:")
# <editor-fold desc="比較運算符概念">
# ==	等於 - 比較對象是否相等	(a == b) 返回 False。
# !=	不等於 - 比較兩個對象是否不相等	(a != b) 返回 True。
# >	大於 - 返回x是否大於y	(a > b) 返回 False。
# <	小於 - 返回x是否小於y。所有比較運算符返回1表示真,返回0表示假。這分別與特殊的變量True和False等價。注意,這些變量名的大寫。	(a < b) 返回 True。
# >=	大於等於 - 返回x是否大於等於y。	(a >= b) 返回 False。
# <=	小於等於 - 返回x是否小於等於y。	(a <= b) 返回 True。
# </editor-fold>
# <editor-fold desc="比較運算符">
# 等於等於
if a == b:
    print("1 - a 等於 b")
else:
    print("1 - a 不等於 b")

# 不等於
if a != b:
    print("2 - a 不等於 b")
else:
    print("2 - a 等於 b")

# 小於
if a < b:
    print("3 - a 小於 b")
else:
    print("3 - a 大於等於 b")

# 大於
if a > b:
    print("4 - a 大於 b")
else:
    print("4 - a 小於等於 b")

# 小於等於
if a <= b:
    print("5 - a 小於等於 b")
else:
    print("5 - a 大於  b")

# 大於等於
if b >= a:
    print("6 - b 大於等於 a")
else:
    print("6 - b 小於 a")
# </editor-fold>


print("\n賦值運算符的結果爲:")
# <editor-fold desc="賦值運算符概念">
# =	簡單的賦值運算符	c = a + b 將 a + b 的運算結果賦值爲 c
# +=	加法賦值運算符	c += a 等效於 c = c + a
# -=	減法賦值運算符	c -= a 等效於 c = c - a
# *=	乘法賦值運算符	c *= a 等效於 c = c * a
# /=	除法賦值運算符	c /= a 等效於 c = c / a
# %=	取模賦值運算符	c %= a 等效於 c = c % a
# **=	冪賦值運算符	c **= a 等效於 c = c ** a
# //=	取整除賦值運算符	c //= a 等效於 c = c // a
# </editor-fold>
# <editor-fold desc="賦值運算符">
c = a + b
print("1 - c 的值爲:", c)

# 等效於 c = c + a
c += a
print("2 - c 的值爲:", c)

# 等效於 c = c - a
c -= a
print("3 - c 的值爲:", c)

# 等效於 c = c * a
c *= a
print("4 - c 的值爲:", c)

# 等效於 c = c / a
c /= a
print("5 - c 的值爲:", c)

# 等效於 c = c % a
c %= a
print("6 - c 的值爲:", c)

# 等效於 c = c ** a
c **= a
print("7 - c 的值爲:", c)

# 等效於 c = c // a
c //= a
print("8 - c 的值爲:", c)
# </editor-fold>


print("\n位運算符的結果爲:")
# <editor-fold desc="位運算符概念">
# &	按位與運算符:參與運算的兩個值,如果兩個相應位都爲1,則該位的結果爲1,否則爲0	(a & b) 輸出結果 12 ,二進制解釋: 0000 1100
# |	按位或運算符:只要對應的二個二進位有一個爲1時,結果位就爲1。	(a | b) 輸出結果 61 ,二進制解釋: 0011 1101
# ^	按位異或運算符:當兩對應的二進位相異時,結果爲1	(a ^ b) 輸出結果 49 ,二進制解釋: 0011 0001
# ~	按位取反運算符:對數據的每個二進制位取反,即把1變爲0,把0變爲1。~x 類似於 -x-1	(~a ) 輸出結果 -61 ,二進制解釋: 1100 0011, 在一個有符號二進制數的補碼形式。
# <<	左移動運算符:運算數的各二進位全部左移若干位,由"<<"右邊的數指定移動的位數,高位丟棄,低位補0。	a << 2 輸出結果 240 ,二進制解釋: 1111 0000
# >>	右移動運算符:把">>"左邊的運算數的各二進位全部右移若干位,">>"右邊的數指定移動的位數	a >> 2 輸出結果 15 ,二進制解釋: 0000 1111
# </editor-fold>
# <editor-fold desc="位運算符">
# 先將兩個數字轉換成二進制然後同位對比
# a 00010101
# b 00001010

# 按位與運算符:同爲1得1,否則爲0
c = a & b  # 00000000
print("1 - c 的值爲:", c)

# 按位或運算符:有1則爲1,都爲0則爲0
c = a | b  # 00011111
print("2 - c 的值爲:", c)

# 按位異或運算符:同爲1或同爲0,取0,不同則取1
c = a ^ b  # 00011111
print("3 - c 的值爲:", c)

# 按位取反運算符:末位加1,並在最左邊添加負號 -
c = ~a     # 00010110
print("4 - c 的值爲:", c)

# 左移動運算符:右邊的數字爲多少,左邊就捨棄多少位,然後再在末位補相同位數的0
c = a << 2  # 01010100
print("5 - c 的值爲:", c)

# 右移動運算符:右邊的數字爲多少,右邊就捨棄多少位,然後再在左邊補相同位數的0
c = a >> 2  # 00000101
print("6 - c 的值爲:", c)
# </editor-fold>


print("\n邏輯運算符的結果爲:")
# <editor-fold desc="邏輯運算符概念">
# and	x and y	布爾"與" - 如果 x 爲 False,x and y 返回 False,否則它返回 y 的計算值。	(a and b) 返回 20。
# or	x or y	布爾"或" - 如果 x 是 True,它返回 x 的值,否則它返回 y 的計算值。	(a or b) 返回 10。
# not	not x	布爾"非" - 如果 x 爲 True,返回 False 。如果 x 爲 False,它返回 True。	not(a and b) 返回 False
# </editor-fold>
# <editor-fold desc="邏輯運算符">
if a and b:
    print("1 - 變量 a 和 b 都爲 true")
else:
    print("1 - 變量 a 和 b 有一個不爲 true")

if a or b:
    print("2 - 變量 a 和 b 都爲 true,或其中一個變量爲 true")
else:
    print("2 - 變量 a 和 b 都不爲 true")

if not (a and b):
    print("3 - 變量 a 和 b 都爲 false,或其中一個變量爲 false")
else:
    print("3 - 變量 a 和 b 都爲 true")
# </editor-fold>


print("\n成員運算符的結果爲:")
# <editor-fold desc="成員運算符概念">
# in	如果在指定的序列中找到值返回 True,否則返回 False。	x 在 y 序列中 , 如果 x 在 y 序列中返回 True。
# not in	如果在指定的序列中沒有找到值返回 True,否則返回 False。	x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。
# </editor-fold>
# <editor-fold desc="成員運算符">
str1 = "王"
str2 = "豆豆"

if "豆" in str2:
    print("Yes")
else:
    print("NO")

if "豆" not in str2:
    print("不在")
else:
    print("在")
# </editor-fold>


print("\n身份運算符的結果爲:")
# <editor-fold desc="身份運算符概念">
# is	is 是判斷兩個標識符是不是引用自一個對象	x is y, 類似 id(x) == id(y) , 如果引用的是同一個對象則返回 True,否則返回 False
# is not	is not 是判斷兩個標識符是不是引用自不同對象	x is not y , 類似 id(a) != id(b)。如果引用的不是同一個對象則返回結果 True,否則返回 False。
# </editor-fold>
# <editor-fold desc="身份運算符">
if a is b:
    print("1 - a 和 b 有相同的標識")
else:
    print("1 - a 和 b 沒有相同的標識")

# 看兩個值是否引用自同一個對象
if a is not b:
    print("2 - a 和 b 沒有相同的標識")
else:
    print("2 - a 和 b 有相同的標識")
# </editor-fold>


print("\n身份運算符的結果爲:")
# <editor-fold desc="運算符優先級從上到下依次降低">
# **	指數 (最高優先級)
# ~ + -	按位翻轉, 一元加號和減號 (最後兩個的方法名爲 +@ 和 -@)
# * / % //	乘,除,取模和取整除
# + -	加法減法
# >> <<	右移,左移運算符
# &	位 'AND'
# ^ |	位運算符
# <= < > >=	比較運算符
# <> == !=	等於運算符
# = %= /= //= -= += *= **=	賦值運算符
# is is not	身份運算符
# in not in	成員運算符
# and or not	邏輯運算符
# </editor-fold>
# <editor-fold desc="運算符優先級">
a = 20
b = 10
c = 15
d = 5
e = 0

e = (a + b) * c / d  # ( 30 * 15 ) / 5
print("(a + b) * c / d 運算結果爲:", e)

e = ((a + b) * c) / d  # (30 * 15 ) / 5
print("((a + b) * c) / d 運算結果爲:", e)

e = (a + b) * (c / d);  # (30) * (15/5)
print("(a + b) * (c / d) 運算結果爲:", e)

e = a + (b * c) / d;  # 20 + (150/5)
print("a + (b * c) / d 運算結果爲:", e)
# </editor-fold>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章