中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python函數的基礎知識點有哪些

發布時間:2022-12-08 17:36:37 來源:億速云 閱讀:106 作者:iii 欄目:編程語言

這篇“Python函數的基礎知識點有哪些”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Python函數的基礎知識點有哪些”文章吧。

01. 函數的快速體驗

1.1 快速體驗

  • 所謂函數,就是把具有獨立功能的代碼塊組織為一個小模塊,在需要的時候調用

  • 函數的使用包含兩個步驟:

  1. 定義函數 ——封裝獨立的功能

  2. 調用函數 —— 享受封裝的成果

  • 函數的作用,在開發程序時,使用函數可以提高編寫的效率以及代碼的重用

演練步驟

  1. 新建04_函數 項目

  2. 復制之前完成的乘法表文件

  3. 修改文件,增加函數定義multiple_table():

  4. 新建另外一個文件,使用import 導入并且調用函數

02. 函數基本使用

2.1 函數的定義

定義函數的格式如下:

def 函數名():
  1. def 是英文define 的縮寫

  2. 函數名稱應該能夠表達函數封裝代碼的功能,方便后續的調用

  3. 函數名稱的命名應該符合標識符的命名規則

  • 可以由字母下劃線數字組成

  • 不能以數字開頭

  • 不能與關鍵字重名

2.2 函數調用

調用函數很簡單的,通過 函數名() 即可完成對函數的調用

2.3 第一個函數演練

需求

  1. 編寫一個打招呼say_hello 的函數,封裝三行打招呼的代碼

  2. 在函數下方調用打招呼的代碼

name = "小明"


# 解釋器知道這里定義了一個函數
def say_hello():
    print("hello 1")
    print("hello 2")
    print("hello 3")

print(name)
# 只有在調用函數時,之前定義的函數才會被執行
# 函數執行完成之后,會重新回到之前的程序中,繼續執行后續的代碼
say_hello()

print(name)

單步執行 F8 和 F7 觀察以下代碼的執行過程

  • 定義好函數之后,只表示這個函數封裝了一段代碼而已

  • 如果不主動調用函數,函數是不會主動執行的

思考
  • 能否將函數調用 放在 函數定義 的上方?

  • 不能!

  • 因為在使用函數名調用函數之前,必須要保證Python 已經知道函數的存在

  • 否則控制臺會提示NameError: name 'say_hello' is not defined (名稱錯誤:say_hello 這個名字沒有被定義)

2.4 PyCharm 的調試工具

  • F8 Step Over可以單步執行代碼,會把函數調用看作是一行代碼直接執行

  • F7 Step Into可以單步執行代碼,如果是函數,會進入函數內部

2.5 函數的文檔注釋

  • 在開發中,如果希望給函數添加注釋,應該在定義函數的下方,使用連續的三對引號

  • 連續的三對引號之間編寫對函數的說明文字

  • 函數調用位置,使用快捷鍵CTRL + Q 可以查看函數的說明信息

注意:因為 函數體相對比較獨立函數定義的上方,應該和其他代碼(包括注釋)保留 兩個空行

03. 函數的參數

演練需求

  1. 開發一個sum_2_num 的函數

  2. 函數能夠實現兩個數字的求和功能

演練代碼如下:

def sum_2_num():

    num1 = 10
    num2 = 20
    result = num1 + num2

    print("%d + %d = %d" % (num1, num2, result))

sum_2_num()

思考一下存在什么問題

函數只能處理 固定數值 的相加

如何解決?

  • 如果能夠把需要計算的數字,在調用函數時,傳遞到函數內部就好了!

3.1 函數參數的使用

  • 在函數名的后面的小括號內部填寫參數

  • 多個參數之間使用, 分隔

def sum_2_num(num1, num2):

    result = num1 + num2
    
    print("%d + %d = %d" % (num1, num2, result))

sum_2_num(50, 20)

3.2 參數的作用

  • 函數,把具有獨立功能的代碼塊組織為一個小模塊,在需要的時候調用

  • 函數的參數,增加函數的通用性,針對相同的數據處理邏輯,能夠適應更多的數據

  1. 在函數內部,把參數當做變量使用,進行需要的數據處理

  2. 函數調用時,按照函數定義的參數順序,把希望在函數內部處理的數據通過參數傳遞

3.3 形參和實參

  • 形參定義函數時,小括號中的參數,是用來接收參數用的,在函數內部作為變量使用

  • 實參調用函數時,小括號中的參數,是用來把數據傳遞到函數內部用的

04. 函數的返回值

  • 在程序開發中,有時候,會希望一個函數執行結束后,告訴調用者一個結果,以便調用者針對具體的結果做后續的處理

  • 返回值是函數完成工作后,最后給調用者的一個結果

  • 在函數中使用return 關鍵字可以返回結果

  • 調用函數一方,可以使用變量接收函數的返回結果

注意:return 表示返回,后續的代碼都不會被執行

def sum_2_num(num1, num2):
    """對兩個數字的求和"""

    return num1 + num2

# 調用函數,并使用 result 變量接收計算結果
result = sum_2_num(10, 20)

print("計算結果是 %d" % result)

05. 函數的嵌套調用

  • 一個函數里面又調用另外一個函數,這就是函數嵌套調用

  • 如果函數test2 中,調用了另外一個函數test1

  • 那么執行到調用test1 函數時,會先把函數test1 中的任務都執行完

  • 才會回到test2 中調用函數test1 的位置,繼續執行后續的代碼

def test1():

    print("*" * 50)
    print("test 1")
    print("*" * 50)


def test2():

    print("-" * 50)
    print("test 2")
    
    test1()
    
    print("-" * 50)

test2()

函數嵌套的演練 —— 打印分隔線

體會一下工作中 需求是多變

需求 1

  • 定義一個print_line 函數能夠打印* 組成的一條分隔線

def print_line(char):

    print("*" * 50)

需求 2

  • 定義一個函數能夠打印由任意字符組成的分隔線

def print_line(char):

    print(char * 50)

需求 3

  • 定義一個函數能夠打印任意重復次數的分隔線

def print_line(char, times):

    print(char * times)

需求 4

  • 定義一個函數能夠打印5 行的分隔線,分隔線要求符合需求 3

提示:工作中針對需求的變化,應該冷靜思考,不要輕易修改之前已經完成的,能夠正常執行的函數

def print_line(char, times):

    print(char * times)


def print_lines(char, times):

    row = 0
    
    while row < 5:
        print_line(char, times)

        row += 1

06. 使用模塊中的函數

模塊是 Python 程序架構的一個核心概念

  • 模塊就好比是工具包,要想使用這個工具包中的工具,就需要導入 import這個模塊

  • 每一個以擴展名py 結尾的Python 源代碼文件都是一個模塊

  • 在模塊中定義的全局變量函數都是模塊能夠提供給外界直接使用的工具

6.1 第一個模塊體驗

步驟

  • 新建hm_10_分隔線模塊.py

  • 復制hm_09_打印多條分隔線.py 中的內容,最后一行 print 代碼除外

  • 增加一個字符串變量

name = "黑馬程序員"
  • 新建hm_10_體驗模塊.py 文件,并且編寫以下代碼:

import hm_10_分隔線模塊

hm_10_分隔線模塊.print_line("-", 80)
print(hm_10_分隔線模塊.name)
體驗小結
  • 可以在一個 Python 文件定義 變量 或者 函數

  • 然后在另外一個文件中使用import 導入這個模塊

  • 導入之后,就可以使用模塊名.變量 /模塊名.函數 的方式,使用這個模塊中定義的變量或者函數

模塊可以讓 曾經編寫過的代碼 方便的被 復用

6.2 模塊名也是一個標識符

  • 標示符可以由字母下劃線數字組成

  • 不能以數字開頭

  • 不能與關鍵字重名

注意:如果在給 Python 文件起名時,以數字開頭 是無法在 PyCharm 中通過導入這個模塊的

6.3 Pyc 文件(了解)

Ccompiled 編譯過 的意思

操作步驟

  1. 瀏覽程序目錄會發現一個__pycache__ 的目錄

  2. 目錄下會有一個hm_10_分隔線模塊.cpython-35.pyc 文件,cpython-35 表示Python 解釋器的版本

  3. 這個pyc 文件是由 Python 解釋器將模塊的源碼轉換為字節碼

  • Python 這樣保存字節碼是作為一種啟動速度的優化

字節碼

  • Python 在解釋源程序時是分成兩個步驟的

  1. 首先處理源代碼,編譯生成一個二進制字節碼

  2. 再對字節碼進行處理,才會生成 CPU 能夠識別的機器碼

  • 有了模塊的字節碼文件之后,下一次運行程序時,如果在上次保存字節碼之后 沒有修改過源代碼,Python 將會加載 .pyc 文件并跳過編譯這個步驟

  • Python 重編譯時,它會自動檢查源文件和字節碼文件的時間戳

  • 如果你又修改了源代碼,下次程序運行時,字節碼將自動重新創建

提示:有關模塊以及模塊的其他導入方式,后續課程還會逐漸展開!

模塊是 Python 程序架構的一個核心概念

以上就是關于“Python函數的基礎知識點有哪些”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

米脂县| 永和县| 镶黄旗| 沈丘县| 泰安市| 远安县| 尚义县| 阿克苏市| 安顺市| 称多县| 阆中市| 汤阴县| 根河市| 康定县| 罗源县| 阿坝县| 崇义县| 乡城县| 木里| 大方县| 进贤县| 清水县| 响水县| 曲阳县| 丰镇市| 赣榆县| 长宁区| 黄浦区| 武邑县| 巍山| 观塘区| 皮山县| 宽城| 广汉市| 南丹县| 洞头县| 普安县| 德清县| 塔城市| 新密市| 镇安县|