1. 程式人生 > >函數學習總結

函數學習總結

打印 pen 密碼 密碼錯誤 () 定義 鍵值對 rip urn

定義

自己總結:就相當於現實中各種用途的工具,有著對數據進行各種處理的功能(實質就是比較復雜的變量?!)

分類

自定義函數和Python語言已經定義過的常用的內置函數

自定義函數的組成部分

def 函數名(參數1,參數2...):
‘‘‘
函數的描述及功能
‘‘‘
    語句1
    語句2
return 返回值

自己理解:

    ①def:是內置函數名(保留標識符),用於自定義一個自定義函數,實現需要內置函數沒有的功能

    ②函數名:就是標識符(?!),相當於工具的名字,方便調用和區分

    ③參數:根據功能要求可有可無,分為形式參數和實際參數,形參本質就是變量名,有位置形參、默認形參;實參就是變量值,有位置實參、關鍵字實參,兩者可以混用,規則是所有位置實參必須都在關鍵字實參左邊,一個形參有且只能對應一個實參。如果形參為:“*args”,表示用來接收溢出的位置實參,相當於把位置實參作為一個元組,遍歷元組取元素的值分別作為實參運行函數,相對應的實參就為:“*(實參)”,表示;*後面的分別取出溢出實參如果形參為**wdargs表示用來接收溢出關鍵字實參,相當於把關鍵字實參作為一個字典,遍歷字典取鍵值對作為關鍵字參運行函數。如果實參

使用**{key1:value,key2:value},這是把**後面的參數遍歷取出當做關鍵字參數應用

    ④語句就是實現函數功能的過程代碼,定義函數階段只檢測語法,是把函數語句當做字符串存儲在內存中,不執行

    ⑤return:標識符,函數結束的標誌;返回值可以是任意個數的任意數據類型,0個:None,1個:值本身,多個:依元組形式返回

使用

調用函數格式:函數名(參數),調用之後才會執行語句

例子

1、

def far():
    ‘‘‘
    打印“from far”
    ‘‘‘
    print(from far
) return def foo(): ‘‘‘ 打印“from foo” ‘‘‘ print(from foo) return far() foo() ‘‘‘ 結果: from far from foo ‘‘‘

2、

def func():
    ‘‘‘實驗毫無意義‘‘‘
    name = Jim
    age = 18
    hobby_list = [read, write]
    return name, age, hobby_list

name, age, hobby_list 
= func() print(fname,age,hobby_list: {name, age, hobby_list}) ‘‘‘ 結果: name,age,hobby_list: (‘Jim‘, ‘18‘, [‘read‘, ‘write‘]) ‘‘‘

3、

def register(name, hobby, hobby_list=[]):
    hobby_list.append(hobby)
    print(f {name} like {hobby})
    print(f{name} like {hobby_list})

register(Jim, reading,)
register(Gru, bedthings,)
register(Dru, money,)

‘‘‘
結果:
 Jim like reading
Jim like [‘reading‘]
 Gru like bedthings
Gru like [‘reading‘, ‘bedthings‘]
 Dru like money
Dru like [‘reading‘, ‘bedthings‘, ‘money‘]
‘‘‘

4、

def register(name, hobby, hobby_list=None):
    if hobby_list == None:
        hobby_list = []
    hobby_list.append(hobby)
    print(f{name} like {hobby})
    print(f{name} like {hobby_list})

register(Jim, reading,)
register(Gru, bedthings,)
register(Dru, money,)

‘‘‘ 結果: Jim like reading Jim like [‘reading‘] Gru like bedthings Gru like [‘bedthings‘] Dru like money Dru like [‘money‘] ‘‘‘

5、

def func(x, y, *args, **kwargs):
    print(x, y, args, kwargs)
    print(x, y, *args, kwargs)

func(1, 2, 3, *(4, 5),)
func(1, 2, c=8, **{a: 6, b: 7})

‘‘‘
結果:
1 2 (3, 4, 5) {}
1 2 3 4 5 {}
1 2 () {‘c‘: 8, ‘a‘: 6, ‘b‘: 7}
1 2 {‘c‘: 8, ‘a‘: 6, ‘b‘: 7}
‘‘‘

6、

def index(l, name, age, sex):
    print(f"{l}, name: {name}, age: {age}, sex: {sex}")

def wrapper(*args, **kwargs):
    print(f"args: {args}")
    print(f"kwargs: {kwargs}")
    index(*args, **kwargs)

wrapper(1, name=nick, sex=male, age=19)

‘‘‘
結果:
args: (1,)
kwargs: {‘name‘: ‘nick‘, ‘sex‘: ‘male‘, ‘age‘: 19}
1, name: nick, age: 19, sex: male
‘‘‘

實現註冊、登錄功能函數

def register():
    """註冊功能"""
    username = input(username: ).strip()
    pwd = input(password: ).strip()

    with open(38a.txt, a, encoding=utf8) as fa:
        fa.write(f"{username}: {pwd}\n")
        fa.flush()

register()


def login():
    """登錄功能"""
    while True:
        inp_username = input(username: ).strip()
        inp_pwd = input(password: ).strip()

        if inp_username == Jim and inp_pwd == 123:
            print(歡迎你,Jim)
            break

        else:
            print(用戶名或者密碼錯誤)

login()

函數學習總結