1. while 迴圈語句
1.1 迴圈概念
迴圈是程式射擊語言中反覆執行某些程式碼的一種計算機處理過程
1.2 while 迴圈的作用
重複執行某些程式碼
1.3 while 迴圈的基本語法
while 條件:
反覆執行的程式碼
.....
複製程式碼
1.4 迴圈變數
迴圈變數是用於控制迴圈執行次數的變數,通常從0開始計數。
1.5 死迴圈
如果迴圈語句未設定合理的退出條件,則迴圈語句將構成死迴圈,程式將永久執行下去。
2. 迴圈的終止與跳出
2.1 break
break可以用於終於迴圈的執行,當執行到break語句後,程式將跳出迴圈,執行迴圈語句後面的程式碼
2.2 continue
continue可以用於提前結束本輪迴圈的執行,當執行到continue語句後,程式將跳到判定迴圈是否向下執行的條件處,進行下一輪迴圈是否執行的判定與後續程式碼執行
2.3 注意事項
break與continue必須出現在迴圈體中
3.迴圈巢狀
3.1 迴圈巢狀概念
while迴圈中重複執行的程式碼又包含了另一個while迴圈。
3.2 迴圈巢狀的基本語法
while 條件:
while 條件:
反覆執行的程式碼
......
複製程式碼
"""
演示迴圈巢狀
"""
j = 1
while j <= 5:
i = 1
while i <= 3:
print(i)
i += 1
j += 1
複製程式碼
3.3 注意事項
break 與 continue僅能控制其所在的迴圈結構,不能控制其它迴圈結構
案例:數字累加求和
"""
案例:數字累加求和
要求:求100以內的所有數字和
"""
# 分析
# 1.100以內的數字是1到100
# 2.求和要有一個變數來儲存最終的計算結果 sum
# 3.使用while迴圈來構造反覆加的操作
# 定義一個變數用於描述1到100
i = 1
sum = 0
while i <= 100:
sum = sum + i
# 讓num每次自增1
num += 1
print("1到100的和是:%d" % sum)
複製程式碼
案例:迴文數
"""
案例:迴文數
要求:列印所有3位迴文數
迴文數:如果一個數字從左側讀和從右側讀是同一個數,則該數字即為。例如121,777
"""
# 分析
# 1. 3位迴文數從100到999
# 2.迴文數特徵,百位數字和個位的數字相同
# 3.列印滿足特徵的數字
## 求一個數字的百位數字
# 假設 x = 789
# print(x//100)取出百位數
## 求一個數字的個位數字
# print(x%10)取出個位數字
i = 100
while i <= 999:
# 取出百位和個位進行比較,如果相同就列印
a = i//100
b = i%10
# 判斷a和b是否相同,相同就列印,不同則忽略
if a == b:
print(i)
i +=1
複製程式碼
案例:九九乘法表
"""
演示九九乘法表案例
"""
# 分析
# 1.結構:迴圈巢狀(外層,9次,內層,依次增加1-9)
# 2.列印內容: X * Y = Z "%d*%d=%d" % (X,Y,Z)
# 3.列印對其:使用指標位符號\t
# 假設列印乘法5的一行
i = 1
j = 5
while i <= 5:
print("%d*%d=%d" % (i, j, i*j),end="\t")
i += 1
# 列印時非一排顯示,需要加end="\t"取消預設換行列印
# 同時複製9次可得最後結果,可用迴圈巢狀簡寫
j = 1
while j <= 9:
i = 1
while i <= 9:
print("%d*%d=%d" % (i, j, i*j),end="\t")
i += 1
print()
j += 1
# 執行後都是一行顯示,需要在每一行i後面換行print()=預設換行
# 最後列印了重複數列,不是階梯型,執行點debug一步步執行後,發現i<=的值剛好是每次i迴圈一輪後j的值,最後改正,只需改為i<=j即可。
j = 1
while j <= 9:
i = 1
while i <= j:
print("%d*%d=%d" % (i, j, i*j),end="\t")
i += 1
print()
j += 1
複製程式碼
4. 函式
4.1 函式的概念
函式(function)是將具有獨立功能的程式碼塊組織成為一個整體,使其具有特殊功能的程式碼集。
4.2 函式的作用
使用函式可以加強程式碼的複用性,提高程式編寫的效率。
4.3 無引數函式的語法格式
定義格式:
def 函式名():
函式體
......
複製程式碼
呼叫格式:
函式名()
4.4 有引數函式的語法格式
定義格式:
def 函式名(引數):
函式體
......
複製程式碼
def sum(a):
# 計算1到指定數字的和
i = 1
sums = 0
while i <= a:
sums = sums + i
i += 1
print(sums)
複製程式碼
呼叫格式:
函式名(引數)
例:sum(100)呼叫上面函式求1-100的和
複製程式碼
4.5 有返回值函式的語法格式
定義格式:
def 函式名(引數):
函式體
return 函式執行結果返回值
......
複製程式碼
呼叫格式:
變數名 = 函式名(引數)
4.6 函式定義和呼叫規則
定義規則: 函式必須先定義,後呼叫。否則程式將報錯。
呼叫規則: 函式定義部分的程式碼僅用於宣告函式,呼叫時才實際執行函式內容。
4.7 函式的文件註釋
文件註釋可以為函式新增功能說明,方便開發者查閱函式相關資訊
5.引數
5.1 引數的作用
使用引數可以將函式執行過程中需要的值傳遞到函式中,讓函式更具有靈活性
5.2 形參和實參
形參是函式定義時規定的引數,僅在函式體內有效
實參是函式呼叫時使用的引數,該值將傳遞給函式
6.返回值
6.1 返回值的作用
為函式指定執行的結果值,該值將返回到函式呼叫位置
提示:print列印,開發過程中僅開發人員可見。return返回,都可見(包括使用者)。
6.2 注意事項
1.如果一個函式沒有設定返回值,使用變數接收時結果為None。
2.同一個函式執行過程中只能執行一次return語句,執行return語句後,return後面的內容將不再執行,函式執行完畢。
7. 作用域
7.1 作用域
資料可以使用的範圍稱作資料的作用域
7.2 函式引數的作用域
函式引數(形參)的作用域是從函式定義位置開始到函式定義結束位置
注意:函式間不能共享引數(形參)
7.3 變數的作用域
區域性變數:函式內部定義的變數從此函式定義的位置起到此函式結束的位置有效
全域性變數:函式外部定義的變數,從變數定義位置開始,在整個檔案中有效
7.4 注意事項
1.如果區域性變數(函式內部定義的變數)與全域性變數(函式外部定義的變數)產生衝突,可以提升區域性變數為全域性變數,使用時先宣告再使用
2.提升區域性變數為全域性變數的語法格式:global (變數名)
8. 函式間呼叫
8.1 函式間呼叫概念
在一個函式中呼叫另一個函式的過程稱為函式間的呼叫
8.2 函式間呼叫的語法格式
函式間呼叫的語法格式同函式的基本呼叫格式,特殊之處在於書寫位置使在一個函式體內呼叫另一個函式
def add(a, b):
return a + b
def div(a, b):
return a / b
def get(a, b):
# 先計算和
c = add(a,b)
# 再計算平均值
d = div(c,2)
return d
x = get(1000,2000)
print(x)
複製程式碼
案例:求最大值
"""
演示求最大值函式案例
要求:任意給出兩個數字,可以得到最大的數字值返回並列印
"""
# 分析
# 1.函式必須使用帶引數的定義格式,兩個引數 def 名稱(2個引數)
# 2.做比較,求出最大的值
# 3.返回最大數,列印最大值
def max2(a,b):
if a > b: #如果a大於b,返回a
return a
else: #否則返回b
return b
x = max2(5,8)
print(x)
複製程式碼
案例:三個數求最大值
"""
# 演示三個數字求最大值函式案例
# 要求1:任意給出兩個數字,可以得到最大的數字值
# 要求2:基於最大值函式基礎上製作
"""
# 分析
# 1.兩個函式,一個是求兩個數字的最大值,還有一個是求三個數字的最大值
# 2.三個數字的最大值函式呼叫兩個數字最大值函式來完成任務
# 3.最終結果要使用return 返回
# 兩個數字求最大值
def max2(a,b):
if a > b:
return a
else:
return b
def max3(a,b,c):
# 先使用兩個數字求出最大值
x = max2(a,b)
# 使用得到的結果再與第三個數字一起求最大值
y = max2(x,c)
return y
m = max3(2,7,9)
print(m)
複製程式碼