1)沒有函式的情況下
# 沒有函式的問題:
# 1.相同的功能需要使用多次的時候對應的**需要寫多遍
# 2.如果功能發生改變,需要修改多處**
# sum1 = 0
# for x in range(1, 101):
# sum1 += x
# print(sum1)
## sum1 = 0
# for x in range(2, 56):
# sum1 += x
# print(sum1)
defsum1
(s, e)
: s =
0for x in
range
(s, e+1)
: s += x
print
(s)sum1(1,
100)
sum1(2,
55)sum1(1,
1000
)def
download()
:print()
# print('檢查網路狀態')
print
('在非wifi狀態的給出提示'
)print
('請求資料'
)print
('儲存資料'
)print()
download(
)download(
)download(
)# print('檢查網路狀態')
# print('在非wifi狀態的給出提示')
# print('請求資料')
# print('儲存資料')
## print('檢查網路狀態')
# print('在非wifi狀態的給出提示')
# print('請求資料')
# print('儲存資料')
## print('檢查網路狀態')
# print('在非wifi狀態的給出提示')
# print('請求資料')
# print('儲存資料')
2)函式式程式設計(思想轉變)# 一遇到問題先考慮有沒有乙個已經存在的函式能夠幫我解決這個問題,如果有直接用,沒有就是自己建立乙個能夠解決這類問題的函式。
# 寫程式求10的階乘
# 10! = 1*2*3*...*10
# s = 1
# for x in range(1, 11):
# s *= x
# print(s)
3) 認識函式
1)什麼是函式:函式就是實現某一特定功能的**的封裝 (每個函式都有乙個特定的功能)
2)函式的分類(按照函式是誰來定義的)
系統函式(別人造好的機器):python自帶的函式,程式設計師在需要的時候使用他們就行。例如:print、input、type、id、max、…
自定義函式(自己造的機器):由程式設計師自己建立然後使用的函式
4) 定義函式(造機器)
語法:
def 函式名(引數列表)
: 函式說明文件
函式體說明:1)def
- 關鍵字,固定寫法
2)函式名 - 由程式設計師自己命名;
要求:識別符號;不能是關鍵字
規範:見名知義(看到函式名大概知道函式的功能)、下劃線隔開多個單詞或者多個單詞之間首字母大寫、不使用系統函式名
3)()
:- 固定寫法
4)引數列表 - 形參列表
多個變數名用逗號隔開:變數1
, 變數2,...
作用:將函式外部的資料傳遞到函式裡面
怎麼確定形參的個數:看實現函式的功能需不需要額外的資料,需要幾個
5)函式說明文件 - 本質就是用三個"""開頭和結尾的注釋
6)函式體 - 和def保持乙個縮排的一條或者多條語句;
函式體就是實現函式功能的**
重要結論:定義函式不會執行函式體,呼叫函式才會執行函式體
5) 呼叫函式(使用機器)語法:
函式名(實參列表)
說明:1)函式名 - 必須是已經定義過的函式的函式名
2)()
- 固定寫法
3)實參列表 - 多個資料用逗號隔開
實參就是通過形參傳遞到函式中使用的資料
實參有多少個看被呼叫的函式的形參的個數
6) (非常重要)函式呼叫過程:"""
當程式執行到呼叫函式的語句的時候:
第一步:去到函式定義的位置
第二步:傳參(用實參給形參賦值),傳參的時候必須保證每個引數都有值
第三步:執行函式體
第四步:確定函式返回值(下週才講)
第五步:回到函式呼叫的位置接著往後執行
"""# 定義乙個函式的功能是求兩個數的和
defsum2
(num1, num2)
:# num1 = 40; num2 = 78
""" 求和(功能說明區)
:param num1: 第乙個數(引數說明)
:param num2: 第2個數
:return: none(返回值說明區)
"""print
(num1 + num2)
# print(40+78) -> print(118)
sum2(40,
78)
7)練習# 練習1:定義乙個函式統計字串中中文的個數
defchinese_count
(string)
: count =
0for x in string:
if'\u4e00'
<= x <=
'\u9fa5'
: count +=
1print
(count)
chinese_count(
'sjj十幾年ss82資料庫'
)# 練習2:定義乙個函式將指定列表中的元素逆序
defreverse_list
(list1)
:print
(list1[::
-1])
reverse_list([23
,90,89
])# 練習3:定義乙個函式刪除指定字串中指定字元
defdel_char
(string, char)
: new_str =
''.join(
[x for x in string if x != char]
)print
(new_str)
del_char(
'ajsjjskakaaas'
,'a'
)# 練習4:定義乙個函式將兩個字串中的字元交叉合併:'abc'、'123' -> a1b2c3 'abc'、'123456' ->a1b2c3456
defcrisscross_merge
(str1, str2)
: new_str =
'' l1, l2 =
len(str1)
,len
(str2)
if l1 > l2:
l1, l2 = l2, l1
for index in
range
(l1)
: new_str += str1[index]
+ str2[index]
new_str += str1[l1:
]+ str2[l1:
]print
(new_str)
crisscross_merge(
'kmn'
,'jnnmbvc'
)# crisscross_merge('abc', '123456') # a1b2c3456
# crisscross_merge('abcdef', '123') # a1b2c3def
deffunc1()
: num =[1
,2]print
(num[
100]
)print
('*****=='
)
python之函式基礎
python 函式 python函式可以返回多值 defadd dif x,y,sum x y dif x y return sum,dif a,b add dif 2,3 print a,b 5 1 r add dif 2,3 print r 5,1 本質來說返回多值的函式其實返回乙個元組tupl...
Python基礎之函式
不同型別的引數的優先順序 在引數列表中的順序 def testfunc1 pass這是乙個最簡單的函式,沒有引數,沒有返回,pass表示該函式沒有做任何操作,testfunc1是函式名,def是關鍵字,表示這是乙個函式 呼叫函式時給出函式並給函式傳遞相應的引數,對於命名關鍵字引數需要給出引數名,位置...
Python之函式(基礎)
1.函式的定義 1 函式的定義與呼叫 定義函式 def say hello print hello1 print hello2 print hello3 呼叫函式,函式只有被呼叫了才會有輸出值 示例1 定義求和函式 計算 20 30 2 函式的巢狀 def fun1 print world def ...