A,順序控制
程序從上到下逐行執行
python定義變量時,會合法地向前引用
age = 1
age2 = age +1
age2 = age +1
age = 1 ——>錯誤,age應在age2之前
B,分支控制
1,單分支if
語法
if 條件表達式 :
? ? ? ? 代碼塊
說明:? ? ?
????????a,表達式為True,執行代碼塊;表達式為False,不執行
? ? ? ? b,python縮進,可以界定代碼塊
例
if 3>2
? ? ? ? print("yes")
? ? ? ? print("ready")
? ? ? ? if 4>5
? ? ? ? print("haha")
——>
yes
ready
2,雙分支if else
if 條件表達式 :
? ? ? ? 代碼塊1
else
????????代碼塊2
例
name = Tom
if name = Tom:
? ? ? ? print("Tom是一只貓咪")
else
? ? ? ? print("這只貓咪不是Tom")
3,多分支
語法
if 條件表達式 :
? ? ? ? 代碼塊1
elif 條件表達式2 :
? ? ? ? 代碼塊2
......
else
????????代碼塊n
流程
例
id>=70,是老員工;id>=60,是普通員工;id>=50,是實習生,其他都是臨時工
要求:從鍵盤輸入id=55,判斷員工種類
id = int(input("請輸入員工id?"))
if?id>=70:
? ? ? ? print("是老員工")
elif id<=70 and id>=60:
? ? ? ? print("是普通員工")
elif id<=60 and id>=50:
????????print("是實習生")
else
????????print("是臨時工")
4,嵌套分支
語法
if:
? ? ? ? if:
????
說明:
????????a,在一個分支結構中又嵌套了一個分支結構
? ? ? ? b,內層分支,外層分支
? ? ? ? c,嵌套不超過三層(可讀性)
例
精靈age>2000則長壽,否則不長壽,將長壽精靈分為木精靈和卓爾
要求:輸入age和種類,輸出結果
age = int(print("請輸入年齡:"))
if age>2000:
? ? ? ? print("長壽")
????????spirit = print("請輸入種類:")
? ? ? ? if?spirit == "木精靈"?
????????????????print("木精靈")
? ? ? ? else
????????????????print("卓爾")
else
????????print("不長壽")
練習(單分支,雙分支)
????????a,定義兩個變量,判斷和是否大于60,如果大于60,輸出"普通成功",否則"鑒定失敗"
num = 40
num2 = 50
if num+num2 >60:
? ? ? ? print("普通成功")
else
????????print("鑒定失敗")
?????????b,定義兩個float,第一個float大于5,且第二個float大于10,輸出兩數之和
num = 6.5
num2 = 15.3
if num>5 and num2>10:
? ? ? ? print(f"{num}+{num2}=")
????????c,定義兩個int,判斷兩者的和,是否能被3且5整除,若可以被整除,輸出"yes"
num = 50
num2 = 100
if (num+num2) %3 == 0 and?(num+num2) %5 == 0:
? ? ? ? print("yes")
C,循環控制
1,for循環
功能:讓代碼循環運行
語法:
for <變量> in <范圍、序列>
<循環操作語句>
例
nums = (1,2,3,4) <class 'list'>
for i in nums
????????print("第",i,"名")
——>
第1名
第2名
第3名
第4名
說明:
????????1,for,in是關鍵字
????????2,<范圍、序列>可以理解為要處理的數據集,必須是可迭代對象(字符串,列表等)
????????3,<循環操作語句>可以有多條
????????4,python的for循環是輪詢機制(一個一個問過去)
????????5,可以和else配合使用
for <變量> in <范圍、序列>
<循環操作語句>
else
<循環操作語句>
流程圖
tips:遍歷數字序列,可以使用內置range()函數,生成數列,且數列前閉后開
????????range()函數?
????????1,range()是一個不可變的序列類型
????????2,默認step=1,start=0
????????3,list()函數可以查看range()生成的序列包含的數據
????????4,生成的數列前閉后開
????????語法
????????range(start,stop,step=1)
????????range(起點,終點,每次增加的數)
????????例
????????要求:生成(1,2,3,4,5)
????????r = range(1,6,1)
????????print(list(r))
????????——>
? ? ? ? (1,2,3,4,5)
2,while循環
功能:在表達式為真的前提下,重復地執行
語法
while <判斷條件>:
? ? ? ? <循環操作語句>
說明:
????????1,while是關鍵字
????????2,條件為True,執行<循環操作語句>;條件為False,退出while
? ? ? ? 3, <循環操作語句>可以有多條
例
age = 1
while age < 4:
? ? ? ? print("Tom還不到4歲",age)
? ? ? ? age += 1 age會不斷+1
——>
Tom還不到4歲 1
Tom還不到4歲 2
Tom還不到4歲 3
流程圖
? ? ? ? 4,while可以和else一起使用
while <判斷條件>
? ? ? ? <循環操作語句>
else
????????<其他語句>在while else判斷條件為False時,會執行else的語句塊
age = 1
while age < 4:
? ? ? ? print("Tom還不到4歲",age)
? ? ? ? age += 1 age會不斷+1
else
? ? ? ? print("Tom是只大貓咪")
——>
Tom還不到4歲 1
Tom還不到4歲 2
Tom還不到4歲 3
Tom是只大貓咪
練習
1,輸出,1-100中所有能被3整除的數
a = 1
while a <= 100:
? ? ? ? if a%3 = 0
? ? ? ? ????????print(a)
? ? ? ? a += 1
2,輸出,40-100中所有偶數
a = 40
while a <=100:
? ? ? ? if a%2 = 0:
? ? ? ? ? ? ? ? print(a)
? ? ? ? a +=1?