函式基礎和函式引數

2021-10-07 09:46:48 字數 3578 閱讀 2605

1.什麼是函式

1)概念

函式就是對實現某一特定功能的**段的封裝(機器)

2)分類

系統函式 - 系統已將定義了,程式設計師可以直接使用的函式,比如:print, input, type, ord, chr, bin, len, id等(別人造好的機器)

自定義函式 - 程式設計師自己定義使用的函式(自己造機器)

2.函式的定義

語法:def 函式名(形參列表):

函式說明文件

函式體說明:

def - python定義函式的關鍵字,固定寫法

函式名 - 程式設計師自己命名

識別符號,不能是關鍵字(要求)

所有字母都小寫,多個單詞用下劃線隔開

不能用系統提供的函式名,類名

見名知義(看到函式名大概知道函式的功能是什麼)

(): - 固定寫法

形參列表 - 格式:變數名1, 變數名2, 變數名3, …(變數可以是沒有定義過的變數)

形參的作用是將函式外面的資料傳遞到函式裡面

函式說明文件 - 和def保持乙個縮排的三個雙引號引起來的注釋(說明書)

函式體 - 和def保持乙個縮排的一條或者多條語句,實現函式功能的一條或者多條語句

注意:函式在定義的時候不會執行函式體

初學者定義函式的步驟

第一步:確定函式的功能

第二步:根據函式的功能確定函式名

第三步:確定函式的引數(看實現函式的功能需不需要額外的資料,需要幾個)

第四步:實現函式功能

(第五步:確定函式返回值)

第六步:寫函式說明文件

需求:定義乙個函式實現求任意兩個數的和的功能·

def

num_sum

(num1, num2)

:

求兩個數的和(功能說明部分)

:param num1:第乙個數

:param num2:第二個數

:return

:none(返回值說明)

print

(num1 + num2)

練習1:定義乙個函式,列印指定字串中大寫字母的個數

def

str_count

(string)

:

統計指定字串中大寫字母的個數

:param str1: 被統計的字串

:return

:none

count1 =

0for x in string:

if'a'

<= x <=

'z':

count1 +=

1print

(f'中大寫字母的個數:'

)

3.函式的呼叫(使用機器)

語法:函式名(實參列表)

說明:函式名 - 需要呼叫的函式的名字(函式名必須是已經定義過的函式的函式名)

() - 固定寫法

實參列表 - 格式:資料1, 資料2, 資料3, … (實參的個數和形參的個數保持一致)

作用:用來給形參賦值的(真正傳遞到函式中使用的資料)

呼叫函式會執行函式的函式體

str_count('asdfghsddf')     # asdfghsddf中大寫字母的個數:4
1.位置引數和關鍵字引數(實參分類)

1)位置引數

實參直接寫(直接),讓實參和形參從位置上一一對應

def

func1

(a, b, c)

:print

(f'a:, b:, c:'

)

2)關鍵字引數

以:形參名1=值1, 形參名2=值2, …的形式傳參

注意:要保證每個引數都有值

單獨使用關鍵字引數傳參

func1(a=

10, b=

20, c=30)

# a:10, b:20, c:30

func1(a=

10, c=

30, b=20)

# a:10, b:20, c:30

3)位置引數和關鍵字引數混合使用

要求:位置引數必須在關鍵字引數的前面

func1(

10, c=

30, b=20)

# a:10, b:20, c:30

func1(10,

20, c=30)

# a:10, b:20, c:30

func1(a=10,

20,30)

# syntaxerror: positional argument follows keyword argument

2.引數預設值(形參)

定義函式的時候可以以:形參名=值 的形式給引數賦預設值,呼叫函式的時候有預設值的可以不用傳參

注意:沒有預設值的引數必須放在有預設值引數的前面

所有的引數都有預設值

def

func2

(x=10

, y=

20, z=30)

:print

(f'x:, y:, z:'

)func2(

)# x:10, y:20, x:30

func2(

100)

# x:100, y:20, x:30

func2(y=

200)

# x:10, y:200, z:30

deffunc2

(y, x=

10, z=30)

:print

(f'x:, y:, z:'

)

3.不定長引數(定義)

定義函式的時候引數個數不確定就可以使用不定長引數

1)在形參前面加 *

帶乙個 * 的形參,本質就是乙個元組,對應的實參會作為這個元組的元素

這種不定長引數的函式只能用位置引數傳參

2)在形參前面加 **

帶乙個 ** 的形參,本質就是乙個字典,對應的實參會作為這個字典的值

這種不定長引數的函式只能用關鍵字引數傳參

def

num_sum1

(*num)

:print

(num)

num_sum1(1,

2,3,

4,5)

# (1, 2, 3, 4, 5)

定義乙個函式,可以求多個數的和

defnum_sum

(*num)

: sum1 =

0for x in num:

sum1 += x

print

(sum1)

num_sum(1)

num_sum(10,

20)num_sum(1,

2,3,

4,5)

defnum_sum2

(**num)

:print

(num)

num_sum2(a=

10, b=20)

#

python基礎 函式引數和內建函式

linux pycharm anaconda 函式引數問題 def function a,b 直接將實參賦予行參,根據位置做匹配。def function a 1,b 2 根據鍵值對的形式做實參與行參的匹配,忽略了引數的位置關係。def function args 可以傳入任意個引數,這些若干引數都...

Python基礎 函式 函式引數

引數就是傳入的值 示例 usr bin env python3 coding utf 8 函式的引數和預設引數 defregist name,age,city shenzhen print name name print age age print city city 執行結果 d pythonpr...

函式基礎(一) 函式 引數

說明一點奧,如果你前置文章沒有看懂,那麼不建議你直接看這個 因為看了也是浪費時間,沒有意義 好,接下來就是python的靈魂部分了 函式 在歷史的長河中,遇到複雜問題的時候,人們總是想能不能對這個問題簡單化處理 於是,模組啊,函式啊什麼的,包括各種演算法就接踵而至了 那函式原先是怎麼想出來的呢?在原...