4.3 Python3進階-函數嵌套和嵌套調用
- 2021 年 5 月 28 日
- 筆記
- 【P1002】Python3之路
>>返回主目錄
源碼
# 函數嵌套
def func1():
print("這是外部函數")
def func2():
print("這是內部函數1")
def func3():
print("這是內部函數2")
# func2() # 在函數外部不能直接調用函數內部的函數
func1()
源碼
# 嵌套調用
# 嵌套調用1:在外函數內部調用內函數,例如:
def fun_outer_call_1():
print("這是outer外部函數1")
def fun_inner_call_1():
print("這是inner內部函數1")
fun_inner_call_1() # 函數名調用內函數
fun_outer_call_1()
# 嵌套調用2:可以用return調用內函數,例如:
def fun_outer_call_2():
print("這是outer外部函數2")
def fun_inner_call_2():
print("這是inner內部函數2")
return fun_inner_call_2() # return 函數名(),方式調用
fun_outer_call_2() # 調用外函數
def fun_outer_call_3():
print("這是outer外部函數3")
def fun_inner_call_3():
print("這是inner內部函數3")
return fun_inner_call_3 # return 函數名,方式調用
fun_outer_call_3()() # 調用內函數
源碼
# Author:PortosHan
# Datetime:2021/5/28 11:22
# Project:zbcf_python_lesson_project
"""
登錄練習:
第一步:輸入用戶名、密碼;
第二步:生成驗證碼;
第三步:校驗驗證碼是否輸入正確;
第四步:校驗用戶名、密碼是否輸入正確(資料庫中有的);
第五步:都正確則登錄成功,有錯誤則提示相應原因。
程式碼提示:
def generate_code():
print('此函數用於生成驗證碼')
def login():
print('此函數用於登錄')
generate_code() # 函數內調用生成驗證碼函數
login()
"""
# 創建全局變數
import random
KEY_WORD = '1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM' # 驗證碼可包含的字元
CODE_NUMBER = 4 # 驗證碼的字元個數
LOCK_LOGIN = 5 # 登錄失敗鎖定登錄的次數
# 定義一個生成驗證碼的函數
def generate_code():
code = ''
for _ in range(CODE_NUMBER):
ran_str = KEY_WORD[random.randint(0, len(KEY_WORD)-1)]
code += ran_str
return code
def login():
print('******中保車服官網******')
for _ in range(LOCK_LOGIN):
user_name = input('用戶名:')
pass_word = input('密碼:')
code = generate_code()
print(f'驗證碼是:{code}')
input_code = input('驗證碼:')
# 校驗驗證碼、用戶名和密碼是否正確
if input_code.lower() == code:
if user_name.lower() == 'portos' and pass_word == '123456':
print('用戶登錄成功!')
return
else:
print('用戶名或密碼有誤,請重新輸入!')
else:
print('輸入的驗證碼有誤,請重新輸入!')
return
login()