4.3 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()
"""
# Author:PortosHan
# Datetime:2021/6/3 17:11
# 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  # 登录失败锁定登录的次数
user_name_list = ['Portos', 'Han', 'Portos Han', '普尔图斯']  # 已有的用户
PASS_WORD = '123456'  # 密码常量


# 定义一个生成验证码的函数
def generate_code():
    code = ''
    # 生成CODE_NUMBER位验证码
    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.lower():
            if (user_name.lower() in [i.lower() for i in user_name_list]) and pass_word == PASS_WORD:
                print('用户登录成功!')
                return user_name
            else:
                print('用户名或密码有误,请重新输入!')
        else:
            print('输入的验证码有误,请重新输入!')
    return


test = login()
print(test)

>>返回主目录

posted @ 2021-05-28 15:09  PortosHan  阅读(350)  评论(0编辑  收藏  举报