python函數詳細教程(python入門函數)

  • 1、Python 簡明教程 —13,Python 集合
  • 2、Python基礎實戰之函數的參數講解(三)
  • 3、python所有內置函數的定義詳解
  • 4、一文讀懂Python 高階函數

目錄

前幾節我們已經介紹了Python 中的 列表list , 元組tuple 和 字典dict ,本節來介紹Python 中的最後一種數據結構—— 集合set 。

Python 中的 set 與 dict 很像,唯一的不同是, dict 中保存的是 鍵值對 ,而 set 中只保存 鍵 ,沒有 值 。

Python 集合 有如下特點:

Python 集合的聲明有兩種方式:

創建 空集合 時,只能用 set() ,而不能用 {} :

創建 非空集合 時,可以用 set() ,也可以用 {} :

由於集合中的元素是唯一的,如果初始化時的 可迭代 數據中有重複的元素,則會自動刪去重複的元素:

使用 len() 函數可以查看集合中元素的個數:

由於Python 集合中的元素的是無序的,所以可不能使用 下標 的方式來訪問集合中的單個元素。

我們可以使用 for 循環 來遍歷集合中的所有元素:

我們可以對兩個集合進行如下運算:

交集與並集

in 運算

使用 dir(set) 查看集合支持的所有方法:

下面一一介紹這些 非魔法方法 ,共17 個。

1. add 方法

由於集合中的元素是唯一的,向集合中添加元素時有兩種情況:

示例:

2. remove 方法

示例:

3. discard 方法

示例:

4. pop 方法

示例:

5. union 方法

示例:

6. update 方法

示例:

7. clear 方法

示例:

8. copy 方法

示例:

9. difference 方法

示例:

10. difference_update 方法

示例:

11. intersection 方法

示例:

12. intersection_update 方法

示例:

13. isdisjoint 方法

示例:

14. issubset 方法

示例:

15. issuperset 方法

示例:

16. symmetric_difference 方法

示例:

17. symmetric_difference_update 方法

示例:

(完。)

推薦閱讀:

Python 簡明教程 — 8,Python 字符串函數

Python 簡明教程 — 9,Python 編碼

Python 簡明教程 —10,Python 列表

Python 簡明教程 —11,Python 元組

Python 簡明教程 —12,Python 字典

參數可以是任意類型。

比如可以是列表。

——————————-

library=[‘python精通’,’MySQL’,’數據分析’,’人工智能’]

#形參

def add_book(bookname):

library.append(bookname)

print(‘圖書添加成功!’)

pass

def show_book(books):

for book in books:

print(book)

pass

pass

#調用函數

add_book(‘新概念英語’)

show_book(library)

——————————

#輸出列表中所有大於50的數

list1=[23,45,77,88,58,10]

def get_list(list_1):

new_list=[ ]

for e in list_1:

if e=50:

new_list.append(e)

pass

pass

print(new_list)

pass

#調用函數

get_list(list1) #[77,88,58]

——————————

#刪除列表中小於50的數

def remove_from_list(list_1):

n=0

while nlen(list_1): p=”” /len(list_1):

if list_1[n]50:

list_1.remove(list_1[n])

pass

else:

n+=1

pass

pass

print(list_1)

pass

#調用函數

remove_from_list(list1) #[77,88,58]

1、定義函數

函數是可重用的程序。本書中已經使用了許多內建函數,如len()函數和range()函數,但是還沒自定義過函數。定義函數的語法格式如下:

def 函數名(參數):

函數體

定義函數的規則如下:

①關鍵字def用來定義一個函數,它是define的縮寫。

②函數名是函數的唯一標識,函數名的命名規則遵循標識符的命名規則。

③函數名後面一定要緊跟着一個括號,括號內的參數是可選的,括號後面要有冒號。

④函數體(statement)為一個或一組Python語句,注意要有縮進。

⑤函數體的第一行可以有文檔字符串,用於描述函數的功能,用三引號括起來。

按照定義規則,可以定義第一個函數了:

 def hello_world():

…     print(‘Hello,world!’)   # 注意函數體要有縮進

 hello_world()

Hello,world!

這個函數不帶任何參數,它的功能是打印出“Hello,world!”。最後一行代碼hello_world()是調用函數,即讓Python執行函數的代碼。

2、全局變量和局部變量

全局變量是定義在所有函數外的變量。例如,定義一個全局變量a,分別在函數test1()和test2()使用變量a:

 a = 100   # 全局變量

 def test1():

…     print(a)

 def test2():

…     print(a)

 test1()

100

 test2()

100

定義了全局變量a之後,在函數test1()和test2()內都可以使用變量a,由此可知,全局變量的作用範圍是全局。

局部變量是在函數內定義的變量,除了用關鍵字global修飾的變量以外。例如,在函數test1()內定義一個局部變量a,分別在函數外和另一個函數test2()內使用變量a:

 def test1():

…     a = 100   # 局部變量

…     print(a)

 def test2():

…     print(a)

 test1()

100

 print(a)

Traceback (most recent call last):

File “stdin”, line 1, in module

NameError: name ‘a’ is not defined

 test2()

Traceback (most recent call last):

File “stdin”, line 1, in module

File “stdin”, line 2, in test2

NameError: name ‘a’ is not defined

Python解釋器提示出錯了。由於局部變量a定義在函數test1()內,因此,在函數test1()內可以使用變量a,但是在函數外或者另一個函數test2()內使用變量a,都會報錯,由此可見,局部變量的作用範圍是定義它的函數內部。

一般情況下,在函數內聲明的變量都是局部變量,但是採用關鍵字global修飾的變量卻是全局變量:

 def test1():

…     global a   # 全局變量

…     a = 100

…     print(a)

 def test2():

…     print(a)

 test1()

100

 print(a)

100

 test2()

100

這個程序與上個程序相比,只是在函數test1()中多了一行代碼“global a”,程序便可以正確運行了。在函數test1()中,採用關鍵字global修飾了變量a之後,變量a就變成了全局變量,不僅可以在該函數內使用,還可以在函數外或者其他函數內使用。

如果在某個函數內局部變量與全局變量同名,那麼在該函數中局部變量會覆蓋全局變量:

 a = 100   # 全局變量

 def test1():

…     a = 200   # 同名局部變量

…     print(a)

 def test2():

…     print(a)

 test1()

200

 test2()

100

由於在函數test1()中定義了一個與全局變量同名的局部變量a,因此,在函數test1()中全局變量a的值被局部變量覆蓋了,但是在函數test2()中全局變量a的值沒有被覆蓋。

綜上所述,在Python中,全局變量保存的數據供整個腳本文件使用;而局部變量只用於臨時保存數據,變量僅供局部代碼塊使用。

將函數作為參數傳入,這樣的函數稱為高階函數。 函數式編程就是指這種高度抽象的編程範式。

變量可以指向函數,函數的參數能接收變量,那麼一個函數就可以接收另一個函數作為參數,這種函數就稱之為高階函數。如下所示:

map(fun, lst),將傳入的函數變量func作用到lst變量的每個元素中,並將結果組成新的列表返回。

定義一個匿名函數並調用,定義格式如–lambda arg1,arg2…:表達式

reduce把一個函數作用在一個序列[x1, x2, x3, …]上,這個函數必須接收兩個參數,reduce把結果繼續和序列的下一個元素做累積計算。

filter() 函數用於過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表。

閉包的定義?閉包本質上就是一個函數

如何創建閉包?

如何使用閉包?典型的使用場景是裝飾器的使用。

global與nonlocal的區別:

簡單的使用如下:

偏函數主要輔助原函數,作用其實和原函數差不多,不同的是,我們要多次調用原函數的時候,有些參數,我們需要多次手動的去提供值。

而偏函數便可簡化這些操作,減少函數調用,主要是將一個或多個參數預先賦值,以便函數能用更少的參數進行調用。

我們再來看一下偏函數的定義:

類func = functools.partial(func, *args, **keywords)

我們可以看到,partial 一定接受三個參數,從之前的例子,我們也能大概知道這三個參數的作用。簡單介紹下:

總結

本文是對Python 高階函數相關知識的分享,主題內容總結如下:

原創文章,作者:ODC2H,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/126864.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ODC2H的頭像ODC2H
上一篇 2024-10-03 23:13
下一篇 2024-10-03 23:13

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字符串操作中,capitalize函數常常被用到,這個函數可以使字符串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • MQTT使用教程

    MQTT是一種輕量級的消息傳輸協議,適用於物聯網領域中的設備與雲端、設備與設備之間的數據傳輸。本文將介紹使用MQTT實現設備與雲端數據傳輸的方法和注意事項。 一、準備工作 在使用M…

    編程 2025-04-29
  • Python wordcloud入門指南

    如何在Python中使用wordcloud庫生成文字雲? 一、安裝和導入wordcloud庫 在使用wordcloud前,需要保證庫已經安裝並導入: !pip install wo…

    編程 2025-04-29
  • Python3.6.5下載安裝教程

    Python是一種面向對象、解釋型計算機程序語言。它是一門動態語言,因為它不會對程序員提前聲明變量類型,而是在變量第一次賦值時自動識別該變量的類型。 Python3.6.5是Pyt…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • Python小波分解入門指南

    本文將介紹Python小波分解的概念、基本原理和實現方法,幫助初學者掌握相關技能。 一、小波變換概述 小波分解是一種廣泛應用於數字信號處理和圖像處理的方法,可以將信號分解成多個具有…

    編程 2025-04-29
  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬盤。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • 單片機打印函數

    單片機打印是指通過串口或並口將一些數據打印到終端設備上。在單片機應用中,打印非常重要。正確的打印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的打印數據可以幫助我們快速…

    編程 2025-04-29

發表回復

登錄後才能評論