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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

函数基础

發(fā)布時(shí)間:2024/1/3 综合教程 28 生活家
生活随笔 收集整理的這篇文章主要介紹了 函数基础 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

函數(shù)——function

1. 如何定義一個(gè)簡(jiǎn)單的函數(shù)

定義函數(shù)時(shí),使用def(define)進(jìn)行定義

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

大家有時(shí)候會(huì)形參與實(shí)參不分,有時(shí)候會(huì)將函數(shù)定義中的變量稱為實(shí)參,函數(shù)調(diào)用的變量稱為形參,不要大驚小怪!

2. 傳遞實(shí)參的方式

傳遞實(shí)參大致分為三種:位置實(shí)參,關(guān)鍵字實(shí)參,默認(rèn)實(shí)參

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

位置實(shí)參(順序很重要)

python在進(jìn)行函數(shù)調(diào)用時(shí),會(huì)將函數(shù)調(diào)用的實(shí)參一一傳遞給形參,最簡(jiǎn)單的調(diào)用方式就是基于實(shí)參的順序,這種關(guān)聯(lián)方式稱之為位置實(shí)參

describe_pet("dog", "xiao")

關(guān)鍵字實(shí)參

使用關(guān)鍵字實(shí)參時(shí),請(qǐng)務(wù)必準(zhǔn)確的指定函數(shù)定義中的形參名

關(guān)鍵字實(shí)參時(shí)傳遞給函數(shù)的名稱-值對(duì),無須考慮函數(shù)調(diào)用的順序,清楚的指出了函數(shù)調(diào)用中各個(gè)值的用途

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

默認(rèn)值

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

3. 函數(shù)返回值

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

在python中使用return語句來完成

返回簡(jiǎn)單的值

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()

讓實(shí)參變成可選的

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=''):
    """用字典返回一個(gè)人的數(shù)據(jù)"""
    person = {'first': first_name, 'last': last_name}
    if age:
        person['age'] = age
    return person

4. 傳遞列表

在函數(shù)中修改列表

問題:一家3D打印公司,需要將打印的設(shè)計(jì)存儲(chǔ)在一個(gè)列表中,打印后的模型移到另一個(gè)列表中,并將打印結(jié)果顯示到屏幕

"""定義兩個(gè)函數(shù),一個(gè)完成打印操作,一個(gè)展示已打印的列表"""
def printed_models(unprinted_designs, completed_models):
    """負(fù)責(zé)完成打印操作"""
    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()
# 運(yùn)行結(jié)果:
"""
Printing design: dodecahedron
Printing design: robot pendant
Printing design: iphone case

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

禁止在函數(shù)中修改列表

function_name(list_name[:])

切片表示法[:],創(chuàng)建列表的副本

5. 傳遞任意數(shù)量的實(shí)參

形參名 *toppings 中的星號(hào),讓python創(chuàng)建一個(gè)空的元組,并將所有的值封裝的元組中,因此可以傳遞任意數(shù)量的實(shí)參。

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

形參名 **user_info中的兩個(gè)星號(hào)讓python創(chuàng)建一個(gè)名為:user_info的空字典,并將受到的鍵-值對(duì)封裝起來。

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

6. 將函數(shù)存儲(chǔ)在模塊中

? 通過將函數(shù)存儲(chǔ)在稱為模塊(moudle)的獨(dú)立的文件中,隱藏程序代碼的細(xì)節(jié),將重點(diǎn)放在程序的高層邏輯上,能夠重用函數(shù),再將模塊導(dǎo)入(import)到程序中。

? 要想讓函數(shù)是可導(dǎo)入的,得先創(chuàng)建模塊,模塊是以.py結(jié)尾的文件,包含要導(dǎo)入的程序中的代碼。

導(dǎo)入整個(gè)模塊

導(dǎo)入模塊的名字,可在程序中使用該模塊的所有函數(shù)

? import moudle_name

使用模塊中的函數(shù)

? moudle_name.function_name()

導(dǎo)入特定的函數(shù)

? from moudle_name import function_name

通過逗號(hào)分隔函數(shù)名,可根據(jù)需要導(dǎo)入任意數(shù)量的函數(shù)

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

使用as給模塊起別名

如果要導(dǎo)入的函數(shù)名稱與當(dāng)前程序中的名稱沖突,或者導(dǎo)入的函數(shù)名稱過長(zhǎng),可指定簡(jiǎn)短而獨(dú)一無二的別名——函數(shù)的另一個(gè)名稱,類似于外號(hào)。

? from moudle_name import function_name as fn

使用as給函數(shù)起別名

import moudle_name as mn

導(dǎo)入模塊中所有的函數(shù)

使用星號(hào)(*****)運(yùn)算符可讓python導(dǎo)入模塊中的所有函數(shù),最佳的做法是導(dǎo)入你需要的函數(shù),或者導(dǎo)入模塊,再使用句點(diǎn)表示法

? from moudle_name import *

7. 函數(shù)編寫指南

編寫函數(shù)時(shí),應(yīng)牢記幾個(gè)細(xì)節(jié)

應(yīng)給函數(shù)指定描述性名稱,做到見名知意,且只在其中使用小寫字母和下劃線
在函數(shù)的定義的后面都應(yīng)有一定的文檔字符串描述性語言,闡述函數(shù)的功能,
函數(shù)定義中,給形參指定默認(rèn)值時(shí),等號(hào)兩邊不要有空格
函數(shù)調(diào)用時(shí),使用關(guān)鍵字實(shí)參時(shí),等號(hào)兩邊不要有空格

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。