最新python入門基礎及實戰第三章 if分支與迴圈

Sahara Later發表於2020-12-12

python入門基礎三 if分支與迴圈

=============================if 分支結構
if-elif-else

應用場景:針對不同的條件實現不同的操作。(不同的條件之間滿足:如果其中一個條件已經滿足,就沒有再判斷其他條件的必須)
語法:
if 條件語句1:
程式碼段1
elif 條件語句2:
程式碼段2
elif 條件語句3:
程式碼段3

else:
程式碼段N

注意: 後面的條件是在前面的條件不成立的前提下進行判斷的

練習:要求根據symbol的符號不同,對num與2進行不同的操作,例如:symbol是’+’ -> num就加2; ‘-’ -> num就減2; '’ -> num2,依次類推
如果symbol不是數學運算給出 ‘不能操作!’ 的提示

symbol = 'hshs'
num = 20
is_operate = True    # 當前資料是否已經操作
if symbol == '+':
    num += 2
elif symbol == '-':
    num -= 2
elif symbol == '*':
    num *= 2
elif symbol == '/':
    num /= 2
elif symbol == '//':
    num //= 2
elif symbol == '%':
    num %= 2
elif symbol == '**':
    num **= 2
else:
    is_operate = False
    print('不能操作!')
===================================if巢狀
1. if巢狀
在if語句中有其他的if語句

if 條件語句:
if 條件語句:
程式碼段
else:
程式碼段
else:
程式碼段

練習:如果num是奇數,就列印奇數,否則列印偶數。如果個位數是0,就列印’10的倍數’

num = '5'
if num % 2 == 0:
    print('偶數')
    if num % 10 == 0:
        print('10的倍數')
else:
    print('奇數')
2.三目運算子
  1. C 的三木算符:

表示式1?表示式2:表示式3

  • 判斷表示式1的值是否是真,如果為真,則整個運算的結果是表示式2,否則整個運算結果是表示式3
int result = 10>20?30:40
printf(&result)
  1. python的三目運算子:

表示式2 if 表示式1 else 表示式3

  • 判斷表示式1的值是否為True,如果為True,則整個運算的結果是表示式2,否則整個運算結果是表示式3
result = 30 if 100>20 else 40
print(result)

練習:根據年齡值列印成年或者未成年(用三目運算子完成)

age = 19
print('成年' if age>18 else '未成年')
=================================for 迴圈

迴圈的作用: 讓程式碼重複執行

for迴圈
  • 語法:
    for 變數 in 序列:
    迴圈體

說明:

  1. for - 關鍵字;固定寫法
  2. 變數 - 和定義變數的時候變數名的要求和規範一樣;(如果這個變數在迴圈體中不使用,變數名可以用_代替)
  3. in - 關鍵字;固定寫法
  4. 序列 - python中容器型資料型別,例如:字串、列表、元組、集合、字典、迭代器、生成器、range等…
  5. : - 固定寫法
  6. 迴圈體 - 和for保持一個縮排的一條或者多條語句;需要重複執行的程式碼

執行過程:
讓變數去序列中取值,一個一個的取,取完為止,每取一個值就執行一次迴圈體。
(for迴圈的執行次數,看序列中元素的個數)

for x in 'abc':
    print(x, 'hello world!')
2. range函式 - 產生指定範圍的數字序列

range(N) - 產生一個[0, N) 的數字序列(N是正整數);例如:range(4) - 產生 0、1、2、3 的數字序列
range(M, N) - 產生一個[M, N) 的數字序列(M<N,並且M和N是整數);例如:range(-3, 3) - 產生: -3、-2、-1、0、1、2
range(M, N, step) - 產生一個[M, N)的數字序列,每次數值增加step;例如:range(-3, 3, 2) - 產生:-3、-1、1

  • 應用:列印100行 ‘hello world!’
for _ in range(100):
    print('HELLO WORLD!')

for x in range(4):        #列印出0-3的數字
    print('x1:', x)
  • 練習2
for x in range(-3, 3):
    print('x2:', x)

for x in range(-3, 3, 2):
    print('x3:', x)

for x in range(100, 49, -1):
    print('x4:', x)

練習1: 計算1+2+3+4+…+100的和

sum1 = 0
for x in range(1, 101):
    sum1 += x
print('和:', sum1)
  • 執行過程解析:

sum1 = 0
(x -> 1 ~ 100)
x = 1: sum1 += x -> sum1 = sum1 + x -> sum1 = 0 + 1 = 1
x = 2: sum1 += x -> sum1 = sum1 + x -> sum1 = 1 + 2
x = 3: sum1 += x -> sum1 = sum1 + x -> sum1 = 1+2 + 3
x = 4: sum1 = 1+2+3+4

x = 100: sum1 = 1+2+3+4+…+ 100

print(sum1) -> print(5050)

練習2:統計1000以內能夠被3整除的數的個數

方法一:

count = 0   # 儲存最終的個數
for x in range(1000):
    if x % 3 == 0:
        count += 1
print('個數:', count)

方法二:

count = 0
for x in range(0, 1000, 3):
    count += 1
print('個數:', count)

練習3:列印1000以內能夠被3整除並且個位數是2的所有的數

方法一:

for x in range(1000):
    if x % 3 == 0 and x % 10 == 2:
        print(x, end=' ')
print()

方法二:先生成1000以內所有3的倍數,然後再看3的倍數中誰的個位數是2

for x in range(0, 1000, 3):
    if x % 10 == 2:
        print(x, end=' ')
print()

方法三:先生成1000以內所有個位數是2的數,然後再看個位數是2的數中誰可以被3整除

for x in range(2, 1000, 10):
    if x % 3 == 0:
        print(x, end=' ')
print()
=================================while迴圈
1.while迴圈

語法:
while 條件語句:
迴圈體

  • 說明:

1)while - 關鍵字;固定寫法
2)條件語句 - 任何有結果的表示式都可以(賦值語句不行)
3): - 固定寫法
4)迴圈體 - 和while保持一個縮排的一條或者多條語句;需要重複執行的程式碼

  • 執行過程:

先判斷條件語句是否為True, 如果是就執行迴圈體,執行完再判斷條件語句是否為True;
為True又執行迴圈體,執行完再判斷條件語句是否為True …
以此類推, 如果條件語句的結果是False迴圈就結束

  • 練習:列印5次 ‘hello world!’
x = 0
while x < 5:
    print('hello world!')
    x += 1

執行過程:

x = 0
while 0 < 5: print(‘hello world!’); x += 1 -> x = 0+1 = 1
while 1 < 5: print(‘hello world!’); x += 1 -> x = 1+1 = 2
while 2 < 5: print(‘hello world!’); x += 1 -> x = 2+1 = 3
while 3 < 5: print(‘hello world!’); x += 1 -> x = 3+1 = 4
while 4 < 5: print(‘hello world!’); x += 1 -> x = 4+1 = 5
while 5 < 5: 迴圈結束!

2.for迴圈和while迴圈的選擇

如果迴圈次數確定的就使用for迴圈; 如果迴圈次數不確定就使用while迴圈

練習:寫程式讓客戶不斷輸入內容,直到輸入的內容是0為止

思路解析:

我們需要不斷輸入數字,而輸入的數字不確定,程式碼需要位置次數重複執行,如:

請輸入:2
請輸入:a
請輸入: acc
請輸入: 0

數字是0,結束迴圈

num = 'start'
while num !='0':
    num = input('請輸入:')

相關文章