第一章 1.3 分支結構和循環結構

1、分支結構

一、if 結構 (知足條件就執行某個操做,不知足就不執行。)

1)、語法結構

if 條件語句:
 代碼段
python

2)、說明
  • if------>關鍵字,固定寫法
  • 條件語句------>任何有結果的表達式均可以:數據,已經聲明過的變量,運算表達式;不能是賦值
  • :(冒號) ------>固定寫法,(通常出現冒號的位置,後面通常都會產生縮進)
  • 代碼段------>和if保持一個縮進的一條或多條語句;須要知足條件才執行的代碼
3)執行過程

先判斷條件語句的結果是否爲True(若是條件語句的結果不是布爾值,就先轉換成布爾值)
若是爲True就執行代碼段,不然代碼段不執行dom

num = 11
if num & 1 == 0:
    print('偶數')


二、if - else 結構(知足條件執行操做,不知足條件執行另一個操做)

1)、語法結構

if 條件語句:
 代碼段1 (知足條件執行)
else:
 代碼段2 (不知足條件執行)
函數

2)、說明

先判斷條件語句的結果是否爲True(若是條件語句的結果不是布爾值,就先轉換成布爾值)
若是爲True就執行代碼段1,不然執行代碼段2code

age = 20
if age >= 18:
    print('已成年')
else:
    print('未成年')


三、if - elif - else 結構

1)、語法結構

if 條件語句:
 代碼段1
elif 條件語句:
 代碼段2
  .
  .
  .
else:
 代碼段N
其餘代碼
字符串

2)、執行過程

先判斷田間語句1 是否爲True,爲True就執行代碼段1,而後整個if-elif-else結構結束
若是爲False,就判斷條件語句2是否爲True,爲True就執行代碼段2,而後整個if-elif-else結構結束
以此類推
若是全部條件語句都不成立,執行else後面的代碼段input

# 根據年齡範圍打印:少年(14如下)、青年(14~25)、壯年(26~35)、中年(36~50)、老年(50以上)
age = int(input('請輸入你的年齡:'))
if age < 0 or age >150:
    print('年齡不合法')
elif age < 14:
    print('少年')
elif 14 < age <= 25:
    print('青年')
elif 26 < age <= 35:
    print('壯年')
elif 36 < age <= 50:
    print('中年')
else:
    print('老年')

四、if 的嵌套

if結構中的代碼段中能夠再出現其餘的if語句io

# 判斷一個數是不是偶數,而且再判斷這個數是不是4的倍數,並打出結論
num = 9
if num % 2 == 0:   # if num & 1 == 0:
    print('偶數')
    if num % 4 == 0:
        print('是4的倍數')
else:
    print('奇數')
    if num % 10 == 3:
        print('個位數是3')



2、循環結構

一、for 循環

1)、語法結構

for 變量 in 序列:
 循環體for循環

2)、說明
  • for------>關鍵字,固定寫法
  • 變量名------>標識符,聲明變量的要求同樣(當這個變量在循環中用不到時能夠用下劃線命名)
  • in------>關鍵字,固定寫法
  • 序列------>結果是容器型數據;字符串,列表,字典,元組,集合,迭代器,生成器,range
  • :(冒號)------>固定寫法
  • 循環體------>和for保持一個縮進的一條或者多條語句:須要重複執行的語句
3)、執行過程

讓變量取序列中取值,每取一個值,執行一次循環體
(for循環能夠經過控制序列中元素的數量來控制循環的次數)class

for x in 'abcd':
    print('===')

***注意:在for循環中,若是變量取出來的值用不到,則能夠用下劃線(_)給變量命名***

import

二、range 函數 (控制for循環的次數)

1)、range函數的做用
  • 一、產生指定的數字序列
  • 二、控制循環次數
2)、range 函數的用法

 N 是正整數

  • 一、range(N) - 產生0~N-1的數字序列
    range(4) -> 0,1,2,3
for x in range(4):
    print(x)
  • 二、range(M,N) - 產生M~N-1的數字序列
    range(3,10) -> 3,4,5,6,7,8,9
for x in range(3,10):
    print(x)
  • 三、range(M,N,step) - 從M開始每隔step產生下一個數字,到N前一個數爲止
    range(0,10,2) -> 0,2,4,6,8
for x in range(0,10,2):
    print(x)

練習:

# 練習1,打印0-100中全部能被3整除的數
# 方法1:
for x in range(101):
    if x % 3 == 0:
        print(x)
# 方法2:
for x in range(0,101,3):
    print(x)

# 練習2,統計1-100中能被4整除而且個位數是2的數字的個數
num = 0
for x in range(1,101):
    if x % 4 == 0 and x % 10 == 2:
        num += 1
print(num)

# 練習3.計算1+2+3+...+100
sum = 0
for x in range(1,101):
    sum += x
print(sum)


三、while 循環

1)、語法結構

while 條件語句:
 循環體

2)、說明
  • while------>關鍵字,固定寫法
  • 條件語句------>任何有結果的表達式:數據,聲明過的變量,運算表達式等(不能是賦值語句)
  • :(冒號)------>固定寫法
  • 循環體------>和while保持一個縮進的一條或者多條語句;(須要重複執行的額語句)
3)、執行過程

先判斷條件語句是否爲True,若是爲True就執行循環體,執行完循環體再判斷條件語句是否爲True
爲True又執行循環體,以此類推,直到循環體的結果是Fals循環結束

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

思考:何時用 for ,何時用 while ?

  • 用 for 循環的狀況:
    當循環次數肯定
    遍歷元素的時候
  • 用 while 循環的狀況
    死循環
    循環次數不肯定

    練習:猜數字

from random import randint

num1 = randint(100)
num2 = int(input('請輸入數字'))
while num1 != num2:
  if num1 > num2:
    print('這個數小了')
  else:
    print('這個數大了')
  num2 = int(input('請輸入數字'))
print('恭喜你答對了')


四、循環結構中的關鍵字

1)、continue

當執行循環體的時候,若是遇到continue那麼此循環直接結束,直接進入下次循環的判斷

for x in range(3):
  print('x')
  print('我是循環結果1')
  continue
  print('我是循環結果2'
2)、break

當執行循環體時,若是遇到break,那麼整個循環直接結束,執行循環後的其餘代碼

sum = 0
while True:
  x = int(input('請輸入數字'))
  if x == 0:
     break
  if x & 1 == 0
    continue
  sum += x
print(sum)
3)、else
  • 1)、完整的for循環
    for 變量 in 序列:
     循環體
    else:
     代碼段

  • 2)、完整的while循環
    while 條件語句:
     循環體
    else:
     代碼段

else中的代碼段:當循環天然死亡(for後的變量數據取完了,while後的條件爲False)else後面的代碼會在循環結束後執行,若是循環是在遇到break後結束的,那麼else後的代碼段就不會執行

else的意義:
能夠經過判斷else中的代碼有沒有執行來判斷循環有沒有遇到break

4)、while死循環的用法:

while True:
 須要執行的代碼
 if 退出循環的條件:
  break


五、循環嵌套

練習:計算:1!+2!+3!+...+10!

#方法1
sum = 0
for x1 in range(1,11):
  pro = 1
  for x2 in range(1,x1 + 1):
    pro *= x2
  sum += pro
print(sum)

#方法2
sum = 0
pro = 1
for x in range(1,11)
  pro *= x
  sum += pro
print(sum)
相關文章
相關標籤/搜索