日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

函数基础

發布時間:2024/1/3 综合教程 25 生活家
生活随笔 收集整理的這篇文章主要介紹了 函数基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

函數——function

1. 如何定義一個簡單的函數

定義函數時,使用def(define)進行定義

"""定義了一個簡單的問候用戶的無參函數"""
def greet_user():
    print('hello user!')
"""定義一個有參數的函數"""
def greet_user(username):
    print('hello' + username.title())
def main():
    username = 'zhang3'
    greet_user()
    greet_user(username)
if __name__ == '__main__':
    main()

大家有時候會形參與實參不分,有時候會將函數定義中的變量稱為實參,函數調用的變量稱為形參,不要大驚小怪!

2. 傳遞實參的方式

傳遞實參大致分為三種:位置實參,關鍵字實參,默認實參

def describe_pet(animal_type, pet_name):
    print('
 I have a ' + animal_type + '.')
    print("My " + animal_type + "'s name is" + pet_name.title() + '.')
    

位置實參(順序很重要)

python在進行函數調用時,會將函數調用的實參一一傳遞給形參,最簡單的調用方式就是基于實參的順序,這種關聯方式稱之為位置實參

describe_pet("dog", "xiao")

關鍵字實參

使用關鍵字實參時,請務必準確的指定函數定義中的形參名

關鍵字實參時傳遞給函數的名稱-值對,無須考慮函數調用的順序,清楚的指出了函數調用中各個值的用途

describe_pet(animal_type="dog", pet_name="xiao")
describe_pet(pet_name="xiao", animal_type="dog")

默認值

使用默認值時,在形參列表中必須先列出無默認值的的形參,再列出有默認值的實參,能夠讓Python正確的解讀位置實參

3. 函數返回值

函數并非總是顯示輸出,相反它可以處理數據,返回一個或一組值,函數返回的值稱為返回值。

在python中使用return語句來完成

返回簡單的值

def formatted_name(first_name, last_name):
    """返回整潔的名字"""
    full_name = first_name + " " + last_name
    return full_name.title()
def main():
    name = formatted_name("s", "zj")
    print(name)
if __name__ == '__main__':
    main()

讓實參變成可選的

def get_formatted_name(first_name, last_name, middle_name=''):
    """返回整潔的名字"""
    if middle_name:
        full_name = first_name + ' ' + middle_name + ' ' + last_name
    else:
        full_name = first_name + ' ' + last_name
    return full_name.title()

python將非空字符串解讀為True

返回字典

def bulid_person(first_name, last_name, age=''):
    """用字典返回一個人的數據"""
    person = {'first': first_name, 'last': last_name}
    if age:
        person['age'] = age
    return person

4. 傳遞列表

在函數中修改列表

問題:一家3D打印公司,需要將打印的設計存儲在一個列表中,打印后的模型移到另一個列表中,并將打印結果顯示到屏幕

"""定義兩個函數,一個完成打印操作,一個展示已打印的列表"""
def printed_models(unprinted_designs, completed_models):
    """負責完成打印操作"""
    while unprinted_designs:
        current_design = unprinted_designs.pop()
        print('Printing models: ' + current_design)
        completed_models.append(current_design)
def show_completed_models(completed_models):
    print('
The following models have been pirnted: ')
    for completed_model in completed_models:
        print(completed_model)
def main():
    unprinted_designs = ['iphone case', 'robot pendant', 'dodecahedron']
    completed_modles = []
    print_models(unprinted_designs, completed_modles)
    show_completed_models(completed_modles)
if __name__ == '__main__':
    main()
# 運行結果:
"""
Printing design: dodecahedron
Printing design: robot pendant
Printing design: iphone case

The following models have been printed: 
dodecahedron
robot pendant
iphone case
"""

禁止在函數中修改列表

function_name(list_name[:])

切片表示法[:],創建列表的副本

5. 傳遞任意數量的實參

形參名 *toppings 中的星號,讓python創建一個空的元組,并將所有的值封裝的元組中,因此可以傳遞任意數量的實參。

def make_pizza(*toppings):
    print(toppings)
make_pizza('x')
make_pizza('x', 'y', 'z')

形參名 **user_info中的兩個星號讓python創建一個名為:user_info的空字典,并將受到的鍵-值對封裝起來。

def build_profile(first, last, **user_info):
    """創建一個字典,其中包含我們知道的有關用戶的一切"""
    profile = {}
    profile['first_name'] = first
    profile['last_name'] = last
    for key, value in user_info.items():
        profile[key] = value
    return profile

6. 將函數存儲在模塊中

? 通過將函數存儲在稱為模塊(moudle)的獨立的文件中,隱藏程序代碼的細節,將重點放在程序的高層邏輯上,能夠重用函數,再將模塊導入(import)到程序中。

? 要想讓函數是可導入的,得先創建模塊,模塊是以.py結尾的文件,包含要導入的程序中的代碼。

導入整個模塊

導入模塊的名字,可在程序中使用該模塊的所有函數

? import moudle_name

使用模塊中的函數

? moudle_name.function_name()

導入特定的函數

? from moudle_name import function_name

通過逗號分隔函數名,可根據需要導入任意數量的函數

? from moudle_name import function_0, function_1, function_2,....

使用as給模塊起別名

如果要導入的函數名稱與當前程序中的名稱沖突,或者導入的函數名稱過長,可指定簡短而獨一無二的別名——函數的另一個名稱,類似于外號。

? from moudle_name import function_name as fn

使用as給函數起別名

import moudle_name as mn

導入模塊中所有的函數

使用星號(*****)運算符可讓python導入模塊中的所有函數,最佳的做法是導入你需要的函數,或者導入模塊,再使用句點表示法

? from moudle_name import *

7. 函數編寫指南

編寫函數時,應牢記幾個細節

應給函數指定描述性名稱,做到見名知意,且只在其中使用小寫字母和下劃線
在函數的定義的后面都應有一定的文檔字符串描述性語言,闡述函數的功能,
函數定義中,給形參指定默認值時,等號兩邊不要有空格
函數調用時,使用關鍵字實參時,等號兩邊不要有空格

總結

以上是生活随笔為你收集整理的函数基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。