- 原文博客地址: Python中的運算符和條件循環(huán)語句
- 上文Python數(shù)據(jù)類型詳解01中主要介紹了
Python中的一些常用的數(shù)據(jù)類型 - 這篇文章主要介紹一些
Python中的運算符
運算符
1. 算術(shù)運算符
以下假設(shè)變量a為9,變量b為7:
| 運算符 | 描述 | 實例 |
|---|---|---|
| + | 加 - 兩個對象相加 | a + b 輸出結(jié)果 16 |
| - | 減 - 得到負數(shù)或是一個數(shù)減去另一個數(shù) | a - b 輸出結(jié)果 -2 |
| * | 乘 - 兩個數(shù)相乘或是返回一個被重復若干次的字符串 | a * b 輸出結(jié)果 63 |
| / | 除 - x除以y | a / b 輸出結(jié)果 1.2857142857142858 |
| % | 取模 - 返回除法的余數(shù) | a % b 輸出結(jié)果 2 |
** |
冪 - 返回x的y次冪 | 2**3, 輸出結(jié)果 8 |
// |
取整除 - 返回商的整數(shù)部分 | 9//2 輸出結(jié)果 4 , 9.0//2.0 輸出結(jié)果 4.0 |
2. 比較運算符
以下假設(shè)變量a為10,變量b為20:
| 運算符 | 描述 | 實例 |
|---|---|---|
| == | 等于 - 比較對象是否相等 | (a == b) 返回 False。 |
| != | 不等于 - 比較兩個對象是否不相等 | (a != b) 返回 true. |
| <> | 不等于 - 比較兩個對象是否不相等 | (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。 |
3. 賦值運算符
以下假設(shè)變量a為10,變量b為20:
| 運算符 | 描述 | 實例 |
|---|---|---|
| = | 簡單的賦值運算符 | c = a + b 將 a + b 的運算結(jié)果賦值為 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 |
以上這三類基本和其他語言的運算符沒什么區(qū)別, 也沒有什么地方是需要敲黑板的, 下面介紹的僵尸
Python中比較特殊的運算符了
4. 位運算符
按位運算符是把數(shù)字看作二進制來進行計算的。Python中的按位運算法則如下:
| 運算符 | 描述 | 實例 |
|---|---|---|
| & | 按位與運算符 | (a & b) 輸出結(jié)果 12 ,二進制解釋: 0000 1100 |
| ^ | 按位異或運算符 | (a ^ b) 輸出結(jié)果 49 ,二進制解釋: 0011 0001 |
| ~ | 按位取反運算符 | (~a ) 輸出結(jié)果 -61 ,二進制解釋: 1100 0011, 在一個有符號二進制數(shù)的補碼形式。 |
| << | 左移動運算符 | a << 2 輸出結(jié)果 240 ,二進制解釋: 1111 0000 |
| >> | 右移動運算符 | a >> 2 輸出結(jié)果 15 ,二進制解釋: 0000 1111 |
該運算符的運算方法是: 先將數(shù)字轉(zhuǎn)成二進制, 再把二進制的每一位數(shù)字進行以上運算符運算, 最后再把結(jié)果轉(zhuǎn)成十進制輸出, 測試如下
# 5.位運算符
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
# 運算和輸出結(jié)果
c = a & b # 12 = 0000 1100
c = a | b # 61 = 0011 1101
c = a ^ b # 49 = 0011 0001
c = ~a # -61 = 1100 0011
c = a << 2 # 240 = 1111 0000
c = a >> 2 # 15 = 0000 1111
5. 邏輯運算符
Python語言支持邏輯運算符,但是與其他語言(Swift)中的邏輯運算符(&, |, !)不同, 注意區(qū)別位運算符, 使用時不要用錯了, 以下假設(shè)變量 a 為 10, b為 20:
| 運算符 | 描述 | 實例 |
|---|---|---|
| and | x and y 布爾"與" - 如果 x 為 False,x and y 返回 False,否則它返回 y 的計算值 | (a and b) 返回 20。 |
| or | x or y 布爾"或" - 如果 x 是非 0,它返回 x 的值,否則它返回 y 的計算值 | (a or b) 返回 10。 |
| not | not x 布爾"非" - 如果 x 為 True,返回 False 。如果 x 為 False,它返回 True | not(a and b) 返回 False |
6. 成員運算符
Python支持成員運算符, 支持字符串,列表或元組
| 運算符 | 描述 | 實例 |
|---|---|---|
| in | 如果在指定的序列中找到值返回True,否則返回False | x 在 y序列中 , 如果x在y序列中返回True。 |
| not in | 如果在指定的序列中沒有找到值返回True,否則返回False | x 不在 y序列中 , 如果x不在y序列中返回True。 |
測試示例:
# 成員運算符
list1 = [1, 2, 3, 4, 5, 6]
print(3 in list1) # True
print(10 in list1) # False
print(10 not in list1) # True
str1 = 'titanjun'
print('jun' in str1) # True
7. 身份運算符
身份運算符用于比較兩個對象的存儲單元
| 運算符 | 描述 | 實例 |
|---|---|---|
| is | is是判斷兩個標識符是不是引用自一個對象 | x is y, 如果 id(x) 等于 id(y) , is 返回結(jié)果 1 |
| is not | is not是判斷兩個標識符是不是引用自不同對象 | x is not y, 如果 id(x) 不等于 id(y). is not 返回結(jié)果 1 |
8. Python運算符優(yōu)先級
| 運算符 | 描述 | |
|---|---|---|
** |
指數(shù) (最高優(yōu)先級) | |
~, +, - |
按位翻轉(zhuǎn), 一元加號和減號 (最后兩個的方法名為 +@ 和 -@) | |
*, /, %, // |
乘,除,取模和取整除 | |
+, - |
加法減法 | |
>>, << |
右移,左移運算符 | |
& |
位 'AND' | |
| `^, | ` | 位運算符 |
<=, <, >, >= |
比較運算符 | |
<>, ==, != |
等于運算符 | |
=, %=, /=, //=, -=, +=, *=, **= |
賦值運算符 | |
is, is not |
身份運算符 | |
in, not in |
成員運算符 | |
not, or, and |
邏輯運算符 |
以下表格列出了從最高到最低優(yōu)先級的所有運算符:
| 運算符 | 描述 | |
|---|---|---|
** |
指數(shù) (最高優(yōu)先級) | |
~, +, - |
按位翻轉(zhuǎn), 一元加號和減號 (最后兩個的方法名為 +@ 和 -@) | |
*, /, %, // |
乘,除,取模和取整除 | |
+, - |
加法減法 | |
>>, << |
右移,左移運算符 | |
& |
位 'AND' | |
| `^, | ` | 位運算符 |
<=, <, >, >= |
比較運算符 | |
<>, ==, != |
等于運算符 | |
=, %=, /=, //=, -=, +=, *=, **= |
賦值運算符 | |
is, is not |
身份運算符 | |
in, not in |
成員運算符 | |
not, or, and |
邏輯運算符 |
二. 條件和循環(huán)語句
-
Python程序語言指定任何非0和非空null值為true,0 或者null為false - 由于
python并不支持switch語句,所以多個條件判斷,只能用elif來實現(xiàn)
1. if語句
- if語句的使用和其他語言沒什么區(qū)別, 主要是格式不一樣, 沒有大括號, 主要時注意縮進
if 判斷條件:
執(zhí)行語句……
elif 判斷條件:
執(zhí)行語句……
else:
執(zhí)行語句……
使用示例:
# if-else語句
if 2 > 3:
print('真的')
else:
print("假的")
# if-elif語句
a = 3
if (a == 1):
print(1)
elif (a == 2):
print(2)
else:
print(3)
2. While循環(huán)語句
與C語言中用法一樣, 這里就不在贅述了
3. for 循環(huán)語句
Python中 for循環(huán)可以遍歷任何序列的項目,如一個列表或者一個字符串。
# for循環(huán)
# 輸出每一個字符
for s in "char":
print(s)
# 使用索引
list2 = [5, 2, 4]
for index in range(len(list2)):
print(list2[index])
- 其中, 函數(shù)
len()返回列表的長度,即元素的個數(shù)。range返回一個序列的數(shù), 這個后面會說到 - 在
python中,for … else表示for中的語句和普通的沒有區(qū)別,else中的語句會在循環(huán)正常執(zhí)行完(即for不是通過break跳出而中斷的)的情況下執(zhí)行,while … else也是一樣。
- 對于
Python語言, 我也是小白, 正在努力學習中, 文中如有不足之處, 還望多多指教 - 測試代碼詳見 GitHub地址
- 后期會持續(xù)更新相關(guān)文章