python的分支和運(yùn)算符

一、分支

1.if-elif-else

1)語法:

if 條件語句:
    代碼段1
elif 條件語句2:
    代碼段2
elif 條件語句3:
    代碼段3
。。。
else:
    代碼段N
其他語句

2)執(zhí)行過程:

先判讀條件語句1是否為True,為True就執(zhí)行代碼段1,然后整個(gè)if-elif-else結(jié)構(gòu)結(jié)束;
如果為False,就判斷條件語句2是否為True,為True就執(zhí)行代碼段2,然后整個(gè)if-elif-else結(jié)構(gòu)結(jié)束;
如果為False,就判斷條件語句3是否為True,為True就執(zhí)行代碼段3,然后整個(gè)if-elif-else結(jié)構(gòu)結(jié)束;
以此類推。。。
如果所有條件語句都不成立,執(zhí)行else后面的代碼段

例如: 根據(jù)年齡范圍打?。荷倌?14以下)、青年(14~25)、壯年(26-35)、中年(36-50)、老年(59以上)。
age = 10
if age < 14:
    print('少年')
elif 14 <= age <= 25:
    print('青年')
elif 25 < age <= 35:
    print('壯年')
elif 35 < age <= 50:
    print('中年')
else:
    print('老年')

2.if嵌套

if結(jié)構(gòu)中的代碼塊中可以再出現(xiàn)其他的if語句

例如: 判斷一個(gè)數(shù)是否是偶數(shù),并且再判斷這個(gè)數(shù)是否是4的倍數(shù)。
方法一:(一般不用)
num = 8
if num & 1 == 0:
    print('偶數(shù)')
else:
    print('奇數(shù)')
if num % 4 == 0:
    print('是4的倍數(shù)!')
方法二:
num = 19
if num & 1 == 0:
    print('偶數(shù)')
    if num % 4 == 0:
        print('是4的倍數(shù)')
else:
    print('奇數(shù)')

2.for循環(huán)

1)語法:

for 變量 in 序列:
    循環(huán)體

2)說明:

for —— 關(guān)鍵字,固定寫法
變量 —— 和聲明變量時(shí)的要求一樣
in —— 關(guān)鍵字,固定寫法
序列 —— 容器型數(shù)據(jù):字符串、列表、字典、元組、集合、迭代器、生成器、range
: —— 固定寫法
循環(huán)體 —— 和for保持一個(gè)縮進(jìn)的一條或者多條語句;需要重復(fù)執(zhí)行的語句

3)執(zhí)行過程:

讓變量去序列中取值,一個(gè)一個(gè)的取,取完為止;每取一個(gè)值,執(zhí)行一次循環(huán)體。
(for循環(huán)可以通過控制序列中元素的個(gè)數(shù)來控制循環(huán)的次數(shù))

例如:

for x in 'abc12':
    print('=====')
    print('+++++')

4).range函數(shù) ——為了讓for更加方便的控制次數(shù)

1)range(N) —— 產(chǎn)生0-N-1的數(shù)字序列
例如:range(4) —> 0,1,2,3

2)range(M,N) —— 產(chǎn)生M-N-1的數(shù)字序列
例如:range(3,10) —> 3,4,5,6,7,8,9

3)range(M,N,step) —— 從M開始每隔step產(chǎn)生下一個(gè)數(shù)字,到N前一個(gè)數(shù)位子
例如;range(0,10,2) —> 0,2,4,6,8

作用:1.產(chǎn)生指定的數(shù)字序列 2.控制循環(huán)次數(shù)
for x in range(4):
    print(x)

print('==========')
for x in range(3, 10):
    print(x)

print('==========')
for x in range(0, 10, 2):
    print(x)

注意:如果for循環(huán)中變量取出來的值在循環(huán)體中無用,這個(gè)變量可以直接用_來命名.

練習(xí)1;打印0-100中所有能被3整除的數(shù)

for x in range(0, 101):
    if x % 3 == 0:
        print(x)
# 方法二
for x in range(0, 101, 3):
    print(x)

練習(xí)2:統(tǒng)計(jì)1-100中能被4整除并且個(gè)位數(shù)是2的數(shù)字的個(gè)數(shù)

count = 0
for x in range(1, 101):
    if (x % 4 == 0) and (x % 10 == 2):
        count += 1
print('個(gè)數(shù):', count)

練習(xí)3:計(jì)算1+2+3+4+...100

sum1 = 0
for x in range(1, 101):
    sum1 += x
print('和:', sum1)

三、while循環(huán)

1)語法:

while 條件語句:
    循環(huán)體

2)說明:

while — 關(guān)鍵字;固定寫法
條件語句 — 任何有結(jié)果的表達(dá)式:數(shù)據(jù)、已經(jīng)聲明過的變量,運(yùn)算表達(dá)式(不能是賦值語句)等
: — 固定寫法
循環(huán)體 — 和while保持一個(gè)縮進(jìn)的一條或者多條語句;需要重復(fù)執(zhí)行的語句。

3)執(zhí)行過程:

先判讀條件語句是否為True,如果為True就執(zhí)行循環(huán)體;執(zhí)行完循環(huán)體再判斷條件語句是否為True,
為True又執(zhí)行循環(huán)體,以此類推,知道條件語句的結(jié)果是False循環(huán)就結(jié)束。

num = 0
while num < 5:
     print('===')
     num += 1

4).for循環(huán)和while的選擇

(1)什么時(shí)候使用for循環(huán):

①循環(huán)次數(shù)確定的時(shí)候
②遍歷序列

(2)什么時(shí)候使用while循環(huán):

①死循環(huán)
②循環(huán)次數(shù)不確定

練習(xí)1、 不斷輸入數(shù)字,直到輸入的值是0為止
 value = input('請輸入數(shù)字:')
 while value != '0':
     value = input('請輸入數(shù)字:')
練習(xí)2:猜數(shù)字游戲
游戲開始的時(shí)候隨機(jī)產(chǎn)生一個(gè)數(shù)字,不斷輸入數(shù)字,直到輸入的數(shù)字和產(chǎn)生的數(shù)字一致,游戲就結(jié)束。 在沒有猜對的時(shí)候,給出‘大了’或者‘小了’的提示.
number = randint(0, 100)   # 產(chǎn)生0-100的隨機(jī)數(shù),并且保存在number中
x = int(input('請輸入數(shù)字:'))
while x != number:
    x = int(input('請輸入數(shù)字:'))
    if x > number:
        print('大了')
    elif x < number:
        print('小了')
    

print('游戲結(jié)束!')

四、循環(huán)關(guān)鍵字

1.continue

continue是循環(huán)體中的關(guān)鍵字.
作用:當(dāng)執(zhí)行循環(huán)體的時(shí)候,如果遇到continue,那么當(dāng)次循環(huán)結(jié)束,直接進(jìn)入下次循環(huán)的判斷.

2.break

break是循環(huán)體中的關(guān)鍵字.
作用:當(dāng)執(zhí)行循環(huán)體的時(shí)候,如果遇到break,那么整個(gè)循環(huán)直接結(jié)束.

練習(xí):不斷輸入數(shù)字直到輸入的是0為止,然后再求奇數(shù)的和。

sum1 = 0
while True:
    value = int(input('請輸入數(shù)字:'))
    if value == 0:
        break
    if value % 2 == 0:
        continue

    sum1 += value
print(sum1)

3.else

1)完整的for循環(huán)

for 變量 in 序列:
    循環(huán)體
else:
    代碼段

2)完整的while循環(huán)

while 條件語句:
    循環(huán)體
else:
    代碼段

else中的代碼段:當(dāng)循環(huán)自然死亡(for后的變量數(shù)據(jù)取完,while后面的條件為False),else后面的代碼段會在循環(huán)結(jié)束后執(zhí)行;如果循環(huán)是因?yàn)橛龅絙reak而結(jié)束的那么else后面代碼段就不會執(zhí)行。

else的意義:可以通過判斷else中的代碼有沒有執(zhí)行來判斷循環(huán)有沒有遇到break。

例如:

for x in range(4):
    print(x)
else:
    print('else')

4.while循環(huán)的用法

while True:
    需要重復(fù)執(zhí)行的代碼段
    if 退出循環(huán)的條件:
        break

五、循環(huán)嵌套

循環(huán)嵌套:外面的循環(huán)執(zhí)行一次,里面的循環(huán)要執(zhí)行完。

例如:

for x in range(3):
    for y in range(4):
        print(x, y)

練習(xí):計(jì)算1!+2!+3!+...10! (N!=1 * 2 * 3 * 4 * ...N)

方法一:

sum1 = 0
# 將1-10取出來
for x in range(1, 11):
    # 計(jì)算取出來的數(shù)的階層
    sum2 = 1
    for y in range(1, x+1):
        sum2 *= y
#     將階乘值加起來
    sum1 += sum2
print(sum1)

方法二:

sum1 = 0
sum2 = 1
for num in range(1, 11):
    sum2 *= num
    sum1 += sum2

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

相關(guān)閱讀更多精彩內(nèi)容

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