淺談python零基礎教程總結30天--day8

zhang_qings發表於2018-07-27

一、函式:

函式:函式就是實現某一特定功能的程式碼塊;在類中,函式又叫方法(對某一個功能的封裝)

為什麼要使用函式?
飛機的功能: 左移、右移、上移、下移、發射子彈等

a.沒有函式的時候:
問題:1.一樣的功能對應的程式碼,需要重複寫很多次 (程式碼冗餘)
1. 如果功能發生改變的時候,需要修改很多位置的程式碼

b.怎麼解決上面的問題: 使用函式

函式作用: 1.讓介面簡潔(同樣的功能對應的程式碼只寫一遍)
2.如果功能發生改變,使用函式只需要修改一個地方的
3.讓程式碼模組化

二、函式的宣告(定義)

print()、input()、len()、max()、min()等,都是python內建函式
append()、insert()等是相關類對應的函式

a.格式
def 函式名(引數列表):

​ 說明文字

​ 函式體

def: 是python中宣告函式的關鍵字
函式名: 識別符號,PEP8,見名知義(根據函式名大概知道函式的功能)
(): 固定格式,不能省略
引數列表(形參): 引數的作用就是從外面往函式中傳值。一個函式可以有沒有引數,也可以有多個引數。如果有多個引數,引數間用逗號隔開
冒號: 固定的格式
說明文字: 對函式功能進行說明
函式體:就是實現函式功能的程式碼段

.對於初學者來說,宣告函式的步驟:
1. 確定函式的功能(確定函式是幹什麼的)
2. 確定函式名 (根據功能確定函式名)
3. 確定引數 (確定是否有引數,確定引數有幾個,看實現這個功能需不需要從外面傳值進去)
4. 確定是否需要返回值 (返回值:就是函式返回給呼叫者的資料。python中所有的函式都有返回值,預設是None)
5. 實現函式的功能

注意:函式只要在呼叫的時候才會執行

“”“

1.函式的呼叫

“””
格式:
函式名(引數列表)

函式名: 你宣告的需要呼叫的函式(已經宣告過的函式才可以呼叫)
引數列表:實參

函式的呼叫過程:就是用實參給形參賦值,並且執行函式體獲取返回值
“”“

寫一個函式,列印’hello python’

宣告函式hello

def hello():
“”“列印 ‘hello python’ “””
print(‘hello python’)

呼叫函式hello

re = hello()
print(hello())

注意: 1.一個函式宣告後,可以呼叫多次 2.python中所有的函式呼叫表示式都有值

寫一個函式,去列印10的階層(1*2*3*…*10)

def jie_ceng():
“”“列印10的階層”“”
sum1 = 1
for x in range(1, 11):
sum1 *= x
print(sum1)

jie_ceng()

1.函式的宣告
def 函式名(引數列表):

說明文字
函式體

形參: 獲取從外面傳遞給函式內部的值

2.函式的呼叫
函式名(實參列表)

實參:呼叫函式的時候給函式傳的值
“”“

“”“1.帶參的函式的宣告和呼叫”“”

寫一個函式,列印兩個數的和

形參就是變數(宣告在函式內的變數)

def my_sum(num1, num2):
列印num1和num2的和
print(num1, num2)
print(num1+num2)

帶參的函式的呼叫

my_sum(30) # TypeError 注意!:函式呼叫的時候一定要保證每個形參都有值

1.位置引數(用實參依次給形參賦值)

my_sum(20, 10) # 執行這句程式碼:先將num1 = 10, num2 = 20。再執行my_sum的函式體

2.關鍵字引數

my_sum(num2=10, num1=5)

練習: 寫一個函式,列印一個數的立方

def cubic(num):
“”“求一個數的立方”“”
print(num**3)

cubic(10)
cubic(num=10)

“”“2.引數的預設值”“”

在python中,函式的引數可以設定預設值(函式宣告的時候給引數賦值)。

如果引數設定了預設值,那麼呼叫函式的時候,這個引數可以傳參,也不可以不參

寫一個函式,問候某人(列印:XXX,how are you!)

def say_hi(name=’XXX’):
“”“問候”“”
print(‘%s,how are you!’ % (name))

函式呼叫的要求:保證每個引數有值

say_hi()
say_hi(‘張三’) # name=’張三’ , print(‘%s,how are you!’ % (name))

注意:如果宣告函式的時候,函式中有多個引數,有預設值引數必須放到沒有預設值的引數的後面

def say_hello(message, name=’xxx’):
“”“問候”“”
print(‘%s,%s’ % (name, message))

say_hello(‘你吃飯了嗎?’, ‘李四’)
say_hello(‘最近好嗎?’)
say_hello(name=’小花’,message=’i love you!’)
say_hello(message=’我恨你!’)

“”“3.引數個數不定”“”

寫一個函式,求多個數的和

“””
引數個數不確定的時候,就在引數列表中宣告一個變數,前面加一個*;
這個時候這個變數就變成了元祖。函式呼叫的時候,所有的實參都會新增到這個元祖中
“””
def my_sum2(*nums):
sum1 = 0
for item in nums:
sum1 += item
print(sum1)

my_sum2(10, 2, 30)
my_sum2(1, 2)
my_sum2(1, 2, 3, 4, 5, 6)

相關文章