函數的定義

目錄
編程

  • 1、函數體系
  • 2、什麼是函數?
  • 3、爲什麼用函數
  • 4、如何用函數
    • 4.1 註冊功能函數
    • 4.2 登陸功能函數
    • 4.3 函數定義階段
    • 4.4 函數調用階段


1、函數體系

接下來,咱們將按照這個函數體系給你們詳細的介紹函數:ide

  • 什麼是函數?
  • 爲何要用函數?
  • 函數的分類:內置函數與自定義函數
  • 如何自定義函數
    • 語法
    • 定義有參數函數,及有參函數的應用場景
    • 定義無參數函數,及無參函數的應用場景
    • 定義空函數,及空函數的應用場景
  • 調用函數
    • 如何調用函數
    • 函數的返回值
    • 函數參數的應用:形參和實參,位置形參,位置實參,關鍵字實參,默認形參,*args,**kwargs
  • 高階函數(函數對象)
  • 函數嵌套
  • 做用域與名稱空間
  • 裝飾器
  • 迭代器與生成器及協程函數
  • 三元運算,列表解析、生成器表達式
  • 函數的遞歸調用
  • 內置函數
  • 面向過程編程與函數式編程

若是如今有一個需求須要實現用戶登陸註冊的功能,咱們該怎麼實現呢?函數式編程

# 註冊
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()
# 登陸
inp_username = input('username: ').strip()
inp_pwd = input('password: ').strip()

with open('38a.txt', 'rt', encoding='utf8') as fr:
    for user_info in fr:
        user_info = user_info.strip('\n')
        user_info_list = user_info.split(':')
        if inp_username == user_info_list[0] and inp_pwd == user_info_list[1]:
            print('login successful')
            break
    else:
        print('failed')
2、什麼是函數?

假設如今你是下水道工,若是你事先準備好你的工具箱,等你接到修理下水道的工做的時候,你直接把你的工具箱拿過去直接使用就好了,而不須要臨時準備錘子啥的。函數

在程序中,函數就是具有某一功能的工具,事先將工具準備好就是函數的定義,遇到應用場景拿來就用就是函數的調用,因此須要注意的是:工具

函數基礎-水道工.jpg?x-oss-process=style/watermark

3、爲什麼用函數

若是不使用函數,寫程序時將會遇到這三個問題:3d

  1. 程序冗長
  2. 程序的擴展性差
  3. 程序的可讀性差
4、如何用函數

先定義函數,後調用。code

  • 定義函數:
def 函數名(param一、param2……):
    """
    函數功能的描述信息
    :param1:描述
    :param2:描述
    :return:返回值
    """
    code 1
    code 2
    code 3
    ...

    return 返回值
  • 調用函數
函數名(param一、param2……)

4.1 註冊功能函數

# 註冊功能函數
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()
# 複用
register()
register()

4.2 登陸功能函數

# 登陸功能函數
def login():
    """登陸功能"""
    inp_username = input('username: ').strip()
    inp_pwd = input('password: ').strip()

    with open('38a.txt', 'rt', encoding='utf8') as fr:
        for user_info in fr:
            user_info = user_info.strip('\n')
            user_info_list = user_info.split(':')
            if inp_username == user_info_list[0] and inp_pwd == user_info_list[1]:
                print('login successful')
                break
        else:
            print('failed')


login()

4.3 函數定義階段

def func():
    bar()  # 不屬於語法錯誤,不會報錯
    print('*'*10)
  1. 只檢測語法,不執行函數體代碼

4.4 函數調用階段

def bar():
    print('from bar')

def foo():
    print('from foo')
    bar()

foo()
'''
from foo
from bar
'''
def foo():
    print('from foo')
    bar()
    
def bar():
    print('from bar')

foo()
'''
from foo
from bar
'''
  1. 執行函數代碼
相關文章
相關標籤/搜索