day10-函數(shù)基礎(chǔ)

1.函數(shù)的聲明

1)什么是函數(shù)

函數(shù)就是對實(shí)現(xiàn)某一特定功能的代碼的封裝

2)函數(shù)的分類

按照函數(shù)是誰來聲明的將函數(shù)分為系統(tǒng)函數(shù)和自定義函數(shù)

  • 系統(tǒng)函數(shù):由系統(tǒng)聲明,程序員直接使用的函數(shù)。例如:print/input/hex/length/sum/max/min等
  • 自定義函數(shù):由程序員自己聲明的函數(shù)

3)函數(shù)的聲明(定義)

a.語法:

def 函數(shù)名(參數(shù)列表):
函數(shù)說明文檔
函數(shù)體

b.說明

def - python聲明函數(shù)的關(guān)鍵字,固定寫法
函數(shù)名 - 程序員自己命名;
要求:是標(biāo)識符,不能是關(guān)鍵字
規(guī)范:PEP命名規(guī)范;見名知義(看到函數(shù)名大概知道函數(shù)的功能);不能使用系統(tǒng)函數(shù)名或者類名
() - 固定寫法
參數(shù)列表 - 這兒的參數(shù)叫形參;以'變量名1,變量名2,...'的形式存在
它的作用是將函數(shù)外面的數(shù)據(jù)傳遞到函數(shù)里面
: - 固定寫法
函數(shù)說明文檔 - 使用三個(gè)雙引號引起來的文本信息
函數(shù)體 - 和def保持一個(gè)縮進(jìn)的一條或者多條語句。就是實(shí)現(xiàn)函數(shù)功能的代碼段

c.初學(xué)者聲明函數(shù)的步驟

1.確定函數(shù)功能
2.根據(jù)功能確定函數(shù)名
3.確定函數(shù)的參數(shù);看實(shí)現(xiàn)函數(shù)的功能需不需要額外的數(shù)據(jù),需要幾個(gè)
4.實(shí)現(xiàn)函數(shù)的功能
5.寫函數(shù)說明文檔

d.注意:函數(shù)在聲明的時(shí)候不會執(zhí)行函數(shù)體,調(diào)用的時(shí)候才會執(zhí)行(重要!)

寫一個(gè)函數(shù),求兩個(gè)數(shù)的和

def ysy_sum(num1, num2):
    """
    功能說明:求兩個(gè)數(shù)的和
    :param num1: 參數(shù)說明  - 數(shù)字
    :param num2: 參數(shù)說明  - 數(shù)字
    :return: 返回和的值
    """
    sum1 = num1 + num2
    return sum1


print(ysy_sum(1, 2))

練習(xí):寫一個(gè)函數(shù),打印指定字符串中所有的中文字符

def c_char(str1):
    """
    功能說明:求指定字符串中所有的中文字符
    :param str1: 指定的字符串
    :return: 返回一個(gè)包含所有中文的新的字符串
    """
    str2 = ''
    for chars in str1:
        if '\u4e00' <= chars <= '\u9fa5':
            str2 += chars
    return str2


print(c_char('as12哈哈9你好1q'))

4)函數(shù)的調(diào)用

a.語法

函數(shù)(實(shí)參列表)

b.說明

函數(shù)名 - 已經(jīng)聲明過的函數(shù)名
() - 固定寫法
實(shí)參列表 - 以‘值1,值2,值3,...’的形式存在;實(shí)參是用來給形參賦值的

c.注意:同一個(gè)函數(shù)可以調(diào)用多次

2.函數(shù)的調(diào)用

1)函數(shù)的調(diào)用過程

1)回到函數(shù)聲明的位置
2)用實(shí)參給形參賦值(傳參);傳參的時(shí)候要保證每個(gè)參數(shù)都有值
3)執(zhí)行函數(shù)體
4)確定函數(shù)的返回值
5)回到函數(shù)調(diào)用的位置,接著往后執(zhí)行。

def ysy_sum(num1, num2):
    # num1 = 1, num2 = 2
    print(num1 + num2)


ysy_sum(1, 2)

3.函數(shù)的參數(shù)

1)參數(shù)分類

1.位置參數(shù)和關(guān)鍵字參數(shù)(實(shí)參分類)

a.位置參數(shù):讓實(shí)參和形參一一對應(yīng),來給不同的形參賦不同的值
b.關(guān)鍵字參數(shù):以'參數(shù)名1=值1,參數(shù)名2=值2,...'的形式來傳參
注意:1.如果位置參數(shù)和關(guān)鍵字參數(shù)同時(shí)存在的時(shí)候,位置參數(shù)必須放在關(guān)鍵字參數(shù)的前面
2.如果希望跳過前面某個(gè)、某幾個(gè)參數(shù),直接給后面的參數(shù)賦值,就必須使用關(guān)鍵字參數(shù)

def func1(x, y, z):
    print(x, y, z)


# 位置參數(shù)
func1(1, 2, 3)

# 關(guān)鍵字參數(shù)
func1(x=1, y=1, z=1)
func1(y=2, x=1, z=3)

# 位置參數(shù)+關(guān)鍵字參數(shù)
func1(3, z=2, y=1)

2.參數(shù)默認(rèn)值 - 形參

聲明函數(shù)的時(shí)候,可以給形參賦默認(rèn)值;已經(jīng)有默認(rèn)值的參數(shù)在調(diào)用的時(shí)候可以不用傳參

注意:沒有默認(rèn)值的參數(shù)必須放在有默認(rèn)值參數(shù)的前面

def func2(x, y=2, z=1):
    print(x, y, z)


func2(1, z=2)

3.參數(shù)類型說明

a.給參數(shù)設(shè)置默認(rèn)值,默認(rèn)值的類型就是參數(shù)類型
b.形參:類型名

4.不定長參數(shù) - 參數(shù)個(gè)數(shù)不確定

a.在參數(shù)名前加,那么這個(gè)參數(shù)就會變成一個(gè)元組去接收多個(gè)參數(shù),調(diào)用的時(shí)候不能使用關(guān)鍵字參數(shù)傳參
b.在參數(shù)名前加
*,那么這個(gè)參數(shù)就會變成一個(gè)字典去接收多個(gè)參數(shù),調(diào)用的時(shí)候只能使用關(guān)鍵字參數(shù)傳參

# 計(jì)算多個(gè)數(shù)的和
def ysy_sum(*num):
    print(sum(num))


ysy_sum(1, 2, 3)


def func5(x, *y):
    print(x)
    print(y)


func5('ab', 1, '1s')


def func6(**num):
    print(num)


func6()
# func6(1)    # TypeError: func6() takes 0 positional arguments but 1 was given
func6(x=10)
func6(x=1, y=2)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言回顧 1.函數(shù)的定義:函數(shù)就是對實(shí)現(xiàn)某一特定功能的代碼塊的封裝2.函數(shù)的聲明: def 函數(shù)名(形參列表):函...
    不語sun閱讀 224評論 0 0
  • """author = 陳俊龍""" ============函數(shù)的返回值============== 1.什么是...
    陳俊龍1995閱讀 186評論 0 0
  • 函數(shù)和對象 1、函數(shù) 1.1 函數(shù)概述 函數(shù)對于任何一門語言來說都是核心的概念。通過函數(shù)可以封裝任意多條語句,而且...
    道無虛閱讀 4,968評論 0 5
  • 一、函數(shù)的返回值 返回值就是函數(shù)返回給函數(shù)調(diào)用者的值(概念) 返回值就是return后面的值(語法) 返回值就是函...
    毋望閱讀 159評論 0 0
  • 第5章 函數(shù)和函數(shù)式編程 5.1 引言函數(shù)是組織好的,可重復(fù)使用的,用來實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。函數(shù)...
    VIVAFT閱讀 1,097評論 0 5

友情鏈接更多精彩內(nèi)容