在程式設計的世界中,流程控制是程式設計師必備的基礎技能,流程控制決定了程式按照什麼樣的方式去執行,本節將介紹流程控制相關語法。
順序流程控制語句,就是程式從上到下按順序依次進行。例如:
# 接收使用者輸入的姓名、年齡、位址並輸出資訊
name =
input
("請輸入您的姓名:"
)age =
int(
input
("請輸入您的年齡:"))
address =
input()
print
(f"我叫,我今年歲,來自"
)
根據條件表示式的結果執行相應的**。
適用場景:一旦涉及到選擇問題,就需要用到分支結構。
1.單分支語句
語法:
if 判斷條件:
條件成立時執行的語句
案例:
# 檢視是否中獎
winning_number =
"159756"
customer_number =
input
("請輸入您的號碼查詢是否中獎:"
)if customer_number == winning_number:
print
("恭喜您,喜提壹佰萬元!!!"
)
2.雙分支語句
語法:
if 判斷條件:
條件成立時執行的語句
else:
條件不成立時執行的語句
案例:
# 檢視是否中獎
winning_number =
"159756"
customer_number =
input
("請輸入要查詢的號碼:"
)if customer_number == winning_number:
print
("恭喜您,喜提壹佰萬元!!!"
)else
:print
("很遺憾您沒有中獎,不要灰心,再接再厲!"
)
3.多分支語句
語法:
if 條件1:
條件1成立執行的語句
elif 條件2:
條件2成立執行的語句
elif 條件3:
條件3成立執行的語句
......
else:
以上條件都不成立時執行的語句
總結:else是可選的,可寫可不寫。多分支語句用於替代其它語言中的 switch…case… 語句。
4.分支巢狀結構
分支巢狀就是if塊中巢狀if,可以巢狀多個。
# 進站模擬
ticket =
input
("是否有票?(yes/no)"
)if ticket ==
"yes"
: contraband =
input
("行李內是否有違禁品?(yes/no)"
)if contraband ==
"yes"
:print
("您的行李中含有違禁品,請開啟行李配合檢查"
)elif contraband ==
"no"
:print
("檢查無誤,請通過,祝您旅行愉快。"
)else
:print
("輸入錯誤"
)elif ticket ==
"no"
:print
("不好意思,請您先購票再進站"
)else
:print
("輸入錯誤"
)
注意事項:
5.三元表示式
格式:
變數 = 條件成立返回的結果 if 判斷條件 else 條件不成立返回的結果
意義:簡化雙分支**的一種形式
# 使用者輸入兩個不同的值,輸出較大的乙個
num1 =
int(
input
("請輸入第乙個數:"))
num2 =
int(
input
("請輸入第二個數:"))
# 雙分支結構
# if num1 > num2:
# max_num = num1
# else:
# max_num = num2
# 三元表示式
max_num = num1 if num1 > num2 else num2
print
(max_num)
迴圈結構就是按照某個條件判斷是否重複執行的結構。
適用場景:當某一段**重複被執行時,就需要用到迴圈結構,以此來簡化**結構。
1.while迴圈
while迴圈在某條件下,用於迴圈執行程式,以此來處理需要重複處理的任務。
# 輸出1-10的和
num, sum_ =1,
0while num <11:
sum_ = sum_ + num
num +=
1print
("1-10的和為:"
, sum_)
while
true
:print
("hello world!"
)
# 輸出多行* * * * * *,要求一次只輸出乙個
j =1
while j <7:
i =1while i <7:
print
("*"
, end=
" ")
i +=
1print()
j +=
1
2.迴圈關鍵字
退出迴圈,迴圈不再進行。
# 連續輸出自然數
num =
1while
true
:print
(num, end=
" ")
num +=
1break
# 不寫break的話會一直輸出,只能人為停,這裡加上則只迴圈一次。
# 當前還剩10張票,第五張票不賣,其他票賣光為止
ticket =
11while ticket >1:
ticket -=
1if ticket ==5:
print
("很抱歉,編號5的票已經被其他使用者預訂,無法**"
)continue
print
(f"編號的票成功**"
)print
("今日票已售空,請您選擇其他日期的"
)
# 所有票據全域性售賣完成,正常下班。如果一旦發生反恐演練,提前下班
import time
import random
ticket =
1# 票的號碼
while ticket <=10:
time.sleep(random.randint(0,
1))# #反恐演練
# if ticket == 5:
# print("有內鬼終止交易,提前下班...")
# break
print
("成功售出"
, ticket,
"號票"
) ticket +=
1else
:print
("所有的票都賣完啦!沒有突發情況!正常下班!"
)
3.for迴圈
主要針對一組序列進行遍歷檢視,如列表,字串,元組,檔案。
# 第乙個例項 遍歷字串
for letter in
'python'
:print
('當前字母 :'
, letter)
# 第二個例項 遍歷列表
fruits =[,
'banana'
,'peach'
]for fruit in fruits:
print
(fruit)
# 使用for迴圈,判斷乙個數是否為質數
num =
int(
input
("請輸入乙個數字:"))
for i in
range(2
,num)
:if num % i ==0:
print
("不是質數"
)break
else
:print
("是質數"
)
4.range()函式# 構造乙個從[1,10]的數列
range(1
,11)# 列印[1,10]
for i in
range(1
,11):
print
(i)# 從[0,100]的所有偶數
range(0
,101,2
)# 正確
range
(101,2
)# 錯誤
# 構造乙個從[100,1]的所有數
range
(100,0
,-1)
# 構造乙個從[100,1]的所有奇數
range(99
,0,-
2)
總結:
一般情況下,二種方式都可以實現迴圈
你今天Python了嗎?(下)
在體驗了wxpython的強大之後,讓我們把注意力集中到twisted上來。在c 的世界裡,你會發現乙個很棒的網路應用框架,那就是ace了 在python的地盤,twisted則是在網路應用框架中當之無愧的老大。twisted是乙個純python的網路應用框架。由於twisted社群十分的活躍,你可...
今天你笑了嗎?
1 有次等公共汽車時,開過去一輛寶馬,旁邊一位高人對他身邊的人說 看,剛過去那輛就是ibm.2 我一朋友在聯通實習,一天,一老頭走近來,劈頭蓋臉就來句 給我辦張移動卡,好吧?然後我那朋友頭也不抬的就來句 師傅,有人來砸場子 3 同事去見客戶,可能是緊張,一開口便是 劉先生你好,請問你貴姓啊?汗啊 4...
今天,你學習了嗎?
1 對meta的理解 在每個html的頁面中,有這樣一行 charset utf 8 因為每次新建html檔案自動生成這行,一直沒在乎過這個標籤有什麼意義。今天看到這樣的 name viewport content width device width,minimum scale 1.0,maxim...