Python入門基礎教程-函數

「關注我,和我一塊兒放下靈魂,讓靈魂去搬磚。」python

Python函數

Python版本3.8.0,開發工具:Pycharmexpress

Python函數

> Python提供了許多內建函數,例如print()
> 開發人員能夠本身建立函數,這類函數叫用戶自定義函數
複製代碼
  • 輸入 —— 即,它能接收外部經過參數傳遞的值
  • 處理 —— 即,內部有可以完成某一特定任務的代碼;尤爲是,它能夠根據 「輸入」 獲得 「輸出」;
  • 輸出 —— 即,它能向外部輸送返回值……

Python內建函數

什麼是內置函數? 就是python給你提供的. 拿來直接⽤的函數, 好比print, input等等bash

# Python官方文檔中print函數
print(*object, sep=' ', end='\n', file=sys.stdout, flush=False)

# 解釋 = 的參數。對參數不瞭解的能夠先往下看參數介紹
- sep=' ':接收多個參數以後,輸出時,分隔符號默認爲空格,' ';
- end='\n':輸出行的末尾默認是換行符號 '\n';
- file=sys.stdout:默認的輸出對象是sys.stdout(即,用戶正在使用的屏幕)……
複製代碼

即:print個函數中有若干個具備默認值的參數,即使咱們在調用這個函數的時候,就算沒有指定它們,它們也存在於此。函數

# 調用print函數
print('Hello', 'world!')
# 等價於調用
print('Hello', 'world!', sep=' ', end='\n', file=sys.stdout, flush=False)
複製代碼

Python自定義函數

> 函數代碼塊以def關鍵詞開頭,後接函數名稱和圓括號 ()。
> 任何傳入參數和自變量必須放在圓括號中間,圓括號之間能夠用於定義參數。
> 函數的第一行語句能夠選擇性地使用文檔字符串—用於存放函數說明。
> 函數內容以冒號起始,而且縮進。
> return [表達式]結束函數,選擇性地返回一個值給調用方。不帶表達式的return至關於返回 None。

def 函數名(參數列表):
    函數體
    return 返回值
複製代碼

關於函數名稱工具

1. 名稱不能以數字開頭。能用在名稱開頭的有,大小寫字母和下劃線 _;
2. 名稱中不能有空格,要麼使用下劃線鏈接詞彙,如:do_nothing,要麼使用駝峯標識,如 :doNothing。推薦使用下劃線do_nothing
3. 名稱不能與關鍵字重合
    
# 列出全部關鍵字
keyword.kwlist               
複製代碼

建立一個自定義函數學習

# 定義函數
def printme( str ):
   # 打印任何傳入的字符串
   print (str)
   return
 
# 調用函數
printme("我要調用用戶自定義函數!")
printme("再次調用同一函數")

# 輸出
我要調用用戶自定義函數!
再次調用同一函數
複製代碼

Python函數參數

  • 必需參數開發工具

    必需參數須以正確的順序傳入函數。調用時的數量必須和聲明時的同樣。ui

    # 我是函數說明
    def print_str(str):
       "打印傳入的字符串"
       print(str)
       return
    # 調用 print_str 函數
    print_str("我是知秋小夢")
    
    # 輸出
    我是知秋小夢
    複製代碼
  • 關鍵字參數spa

    關鍵字參數和函數調用關係緊密,函數調用使用關鍵字參數來肯定傳入的參數值。code

    # 
    # 我是函數說明
    def print_str(str):
       "打印傳入的字符串"
       print(str)
       return
    # 調用 print_str 函數,
    print_str(str = "我是參數")
    
    # 輸出:
    我是參數
    複製代碼
  • 默認參數

    調用函數時,若是沒有傳遞參數,則會使用默認參數。

    # 我是函數說明
    def printinfo( name, age = 35 ):
       "打印傳入的字符串"
       print ("名字: ", name)
       print ("年齡: ", age)
       return
    #調用printinfo函數
    printinfo(age=50, name="zhangsan" )
    print("------------------------")
    printinfo(name="lisi" )
    
    
    # 輸出: 
    名字:  zhangsan
    年齡:  50
    ------------------------
    名字:  lisi
    年齡:  35
    複製代碼
  • 不定長參數

    一個函數能處理比當初聲明時更多的參數,這些參數叫作不定長參數

    #我是函數說明
    def printinfo(arg1, *vartuple ):
       "打印傳入的參數"
       print (arg1)
       print (vartuple)
    # 調用printinfo 函數
    printinfo( 70, 60, 50 )
    
    
    # 輸出: 
    70
    (60, 50)
    複製代碼

匿名函數

python 使用 lambda 來建立匿名函數。

lambda [arg1 [,arg2,.....argn]]:expression

注:

  • lambda 只是一個表達式,函數體比 def 簡單不少。
  • lambda的主體是一個表達式,而不是一個代碼塊。
  • lambda 函數擁有本身的命名空間,且不能訪問本身參數列表以外或全局命名空間裏的參數。
# lambda 的語法結構
lambda_expr ::= "lambda" [parameter_list] ":" expression
 
# 下面是用 lambda 關鍵字寫函數:
add = lambda x, y: x + y
add(3, 5)

# 等價於自定義函數
def add(x, y):
    return x + y
add(3, 5)

# lambda使用場景
a_list = [1, 2, 3, 4, 5, 6]
a_list

b_list = list(map(lambda x: x * 2, a_list))
b_list

# 輸出:
[1, 2, 3, 4, 5, 6]
[2, 4, 6, 8, 10, 12]
複製代碼

函數中注意參數和返回值,額外須要注意自定義函數名稱不能與關鍵字相同,且Python函數能夠返回多個不一樣類型的值。函數的使用能夠減小不少重複代碼,注意活學活用!

下節將介紹Python文件

學習Python,咱們不僅是說說而已

相關文章
相關標籤/搜索