Python 運(yùn)算符 & 代碼塊及流程控制

1.運(yùn)算符
2.代碼塊及流程控制


一、運(yùn)算符

1.算術(shù)運(yùn)算符

+   -   *   /    //     %    **
加  減  乘  除  地板除  取余  冪
# //  地板除,所取的結(jié)果是整數(shù)部分,即商
res = 10 // 5    #結(jié)果2
res =  10.0 // 5    #結(jié)果為2.0,如果被除數(shù)或者除數(shù)身上帶有小數(shù),結(jié)果也會(huì)帶有小數(shù) .0

# %  取余
res = 10 % 7    # 3
res = -10 % 7    # -3 + 7 = 4  ,前者負(fù)數(shù),則結(jié)果:-正常余數(shù) + 后者
res = 10 % -7    # 3 - 7 = -4  ,后者為負(fù)數(shù),則結(jié)果:正常余數(shù) + -后者
res = -10 % -7    # -3  ,前者后者都為負(fù)數(shù),則結(jié)果:-正常余數(shù)

# **  冪運(yùn)算
res = 2 ** 4    # 16

2.比較運(yùn)算符

使用比較運(yùn)算符,返回的結(jié)果是 True 或者 False

>    <    <=    >=    ==    !=

res = var1 <= 10

3.賦值運(yùn)算符

=    +=    -=    *=    /=    //=    %=    **=

# 賦值,右 ---> 左
# 以 += 為例:
var1 += var2
var1 = var1 +var2

4.成員運(yùn)算符

①針對(duì)于容器類型數(shù)據(jù)。
②使用成員運(yùn)算符,返回的結(jié)果是 True 或者 False。

in      not in

# 以 str 為例:
strvar = "今天天氣很涼爽"
res = "天"  is strvar
res = "涼" not is strvar

# 如果是數(shù)據(jù)類型是字典,通過字典的鍵來進(jìn)行判斷。

5.身份運(yùn)算符

用來判斷內(nèi)存地址的存在,返回結(jié)果是 True 或者 False

is    is not

var1 = 10
var2 = 10
print(var1 is var2)

6.邏輯運(yùn)算符

and       or       not
邏輯與   邏輯或   邏輯非

1.使用規(guī)律
# and
全真則真,一假則假

# or
全假則假,一真則真

# not
真變假,假變真

2. 短路
True or 表達(dá)式    #輸出前者,反之輸出后者
False  and 表達(dá)式    #輸出前者,反之輸出后者

3.邏輯運(yùn)算符的優(yōu)先級(jí)
() > not   > and > or

7.位運(yùn)算符

針對(duì)于二進(jìn)制進(jìn)行操作,需轉(zhuǎn)換為二進(jìn)制才可進(jìn)行運(yùn)算

&        |        ~        ^      <<    >>
按位與  按位或  按位非  按位異或  左移  右移

# &
全1為1,有0為零

# |
有1為1,全0為0

# ~    公式:res -(n+1)
res = ~19    # 結(jié)果 -20

# ^
不同為1,相同為0

# <<
res = 5 << n
公式:res = 5 * 2 ** n 

# >>
res = 5 >> n
公式:res = 5 // 2 ** n

# 位運(yùn)算符的優(yōu)先級(jí)
<< >>  >  &  >  ^  >  | 

8.總結(jié)

1.運(yùn)算符優(yōu)先級(jí)最高的是:**
運(yùn)算符優(yōu)先級(jí)最低的是:=
.
2.整體而言:一元運(yùn)算符 > 二元運(yùn)算符
.
3.整體對(duì)運(yùn)算符的優(yōu)先級(jí)排序:
算數(shù)運(yùn)算符 > 位運(yùn)算符 > 比較運(yùn)算符 > 身份運(yùn)算符 > 成員運(yùn)算符 > 邏輯運(yùn)算符

二、代碼塊及流程控制

1.代碼塊

以冒號(hào)作為開始,用縮進(jìn)來劃分相同的作用域(作用的范圍),這個(gè)整體叫做代碼塊。

# 以 if 判斷語句為例:
if 5 == 6:
    print(111)
print(222)

對(duì)于縮進(jìn)注意:要么都是 \t , 要么都是 4個(gè)空格,不能混合使用。

2.流程控制

流程:代碼執(zhí)行的過程
控制:對(duì)代碼執(zhí)行過程中的把控

1.三大結(jié)構(gòu)

(1)順序結(jié)構(gòu),代碼從上到下依次執(zhí)行
(2)分支結(jié)構(gòu),4種
(3)循環(huán)結(jié)構(gòu),for  和  while

2.分支結(jié)構(gòu)

(1).單項(xiàng)分支

if 條件表達(dá)式:
    code1

(2).雙項(xiàng)分支

if 條件表達(dá)式:
    code1
else:
    code2

(3).多項(xiàng)分支
多個(gè)條件使,可以利用邏輯運(yùn)算符

if 條件表達(dá)式1:
    code1
elif 條件表達(dá)式2:
    code2
elif 條件表達(dá)式3:
    code3
else:
    code4

(4).巢狀分支

if 條件表達(dá)式1:
    if 條件表達(dá)式2:
        if 條件表達(dá)式3:
            code1
        else:
            code2
    else:
        code3
else:
    code4

3.循環(huán)結(jié)構(gòu)
減少代碼的冗余,提升代碼的效率

(1).while循環(huán)

while循環(huán)的結(jié)構(gòu)組成:
1.初始化一個(gè)變量
2.循環(huán)的條件(邏輯)
3.自增自減的值

# 語法格式
i = 0
while i < 10:
    code1
    i += 1

# 死循環(huán)
while True:
    code1

# 查看幫助,help() 函數(shù)
help(print)

# 雙項(xiàng)循環(huán),以打印99乘法表為例
i = 1
while i <= 9:
    j = 1
    while j <= i:
        print("%d*%d=%2d " % (i,j,i*j),end="")
        j += 1
    print()
    i += 1

(2).for循環(huán)

遍歷、循環(huán)、迭代
for循環(huán)可以遍歷無序的容器,而while不可以

1.遍歷

# 遍歷無需容器
container = {1,2,3,4,5}
for i in container:
    print(i)

# 解包
a,b = ["你","好"]

# 遍歷等長(zhǎng)的二級(jí)容器
container = [[1,2,3],("a","b","c"),[4,5,6]]
for a,b,c in container:
    print(a,b,c)

# 遍歷不等長(zhǎng)的二級(jí)容器
container = [[1,2],("a","b","c","d"),"x"]
for i in container:
    for j in i:
        print(j)

2.循環(huán)

range() 對(duì)象,配合for使用
#  一個(gè)值
for i in range(10):    # 0~9   10取不到
    code1 

# 兩個(gè)值
for i in range(2,8):    # 2~7    8取不到
    code1

# 三個(gè)值
# 正序
for i in range(1,10,3):    # 1,4,7    取值范圍1~10,間隔是3
    code1

# 倒序
for i in range(10,0,-1):    # 10~1    取值范圍10~0,間隔是1  0取不到
    code1

4.關(guān)鍵字的使用

1.pass
表達(dá)占位符的概念,空語句,保證程序能夠正常運(yùn)行

for i in range(10):
    pass

2.break
終止當(dāng)前循環(huán),后面的代碼不執(zhí)行

# while 中
i = 0
while i < 10:
    if i == 5:
        break
    print(i)
    i += 1

# for 中
for i in range(10):
    if i == 5:
        break
    print(i)

3.continue
跳過本次循環(huán),后面的代碼不執(zhí)行,從下一次循環(huán)開始執(zhí)行

# while 中
i = 0
while i < 10:
    if i == 5:
        # while 循環(huán)變量需要在continue 進(jìn)行自增或自減,否則發(fā)生死循環(huán)
        i += 1
        continue
    print(i)
    i += 1

# for 中
for i in range(10):
    if i == 5:
        continue
    print(i)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容