>>返回主目录



源码

# 函数嵌套
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()

>>返回主目录

4.3 Python3进阶-函数嵌套和嵌套调用的更多相关文章

  1. python基础----函数的定义和调用、return语句、变量作用域、传参、函数嵌套、函数对象、闭包、递归函数

    1.函数的定义: 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可 ...

  2. python函数基础:嵌套函数、作用域、匿名函数、高阶函数、递归函数

    嵌套函数: 1. 函数内部可以再定义函数 2. 函数只有被调用之后才会执行 看如下代码: age = 18 def func1(): age = 22 print(age) def func2(): ...

  3. 【Python3之函数对象】

    函数对象 函数(Function)作为程序语言中不可或缺的一部分,但函数作为第一类对象(First-Class Object)却是 Python 函数的一大特性. 那到底什么是第一类对象(First- ...

  4. Python进阶-函数默认参数

    Python进阶-函数默认参数 写在前面 如非特别说明,下文均基于Python3 一.默认参数 python为了简化函数的调用,提供了默认参数机制: def pow(x, n = 2): r = 1 ...

  5. python--3、函数

    定义: 定义函数时,也相当于定义变量.会把函数体内的代码存入开辟的内存空间中.使用函数时,通过func() 声明是函数,其对应的值为代码.函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执 ...

  6. python3 闭包函数 装饰器

    闭包函数 1.闭:定义在函数内部的函数 2.包:内部函数引用了外部函数作用域的名字 在函数编程中经常用到闭包.闭包是什么,它是怎么产生的及用来解决什么问题呢.给出字面的定义先:闭包是由函数及其相关的引 ...

  7. ScrollView嵌套ListView嵌套GridView的上下拉以及加载更多

    ScrollView 效果 ScrollView 说明 一个ScrollView 嵌套ListView 嵌套GridView的上拉加载更多,下拉刷新的demo. 主要是重写了GridView和Lsit ...

  8. Python3 isinstance() 函数

    Python3 isinstance() 函数 描述 isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type(). isinstance() 与 type() 区别: typ ...

  9. Python3 join函数和os.path.join用法

    Python3  join函数和os.path.join用法 os.path.join()连接两个文件名地址的时候,就比os.path.join("D:\","test. ...

随机推荐

  1. 火狐兼容selenium版本解决

    火狐和selenium不是很好兼容,下面提供一些我所知道的可以兼容的版本: 1. 火狐52+selenium 3.3 +geckodriver v0.15.0 2.火狐59+selenium 3.11 ...

  2. Salesforce学习之路(六)利用Visualforce Page实现页面的动态刷新功能

    Visualforce是一个Web开发框架,允许开发人员构建可以在Lightning平台上本地托管的自定义用户界面.其框架包含:前端的界面设计,使用的类似于HTML的标记语言:以及后端的控制器,使用类 ...

  3. python进阶(16)深入了解GIL锁(最详细)

    前言 python的使用者都知道Cpython解释器有一个弊端,真正执行时同一时间只会有一个线程执行,这是由于设计者当初设计的一个缺陷,里面有个叫GIL锁的,但他到底是什么?我们只知道因为他导致pyt ...

  4. 在Android、iOS、Web多平台使用AppGallery Connect性能管理服务

    性能管理(App Performance Management,简称APM)是华为应用市场AppGallery Connect(简称AGC)质量系列服务中的其中一项,可以提供分钟级应用性能监控能力,支 ...

  5. 数据结构之LinkedList | 让我们一块来学习数据结构

    highlight: monokai theme: vue-pro 上一篇文章中使用列表(List)对数据排序,当时底层储存数据的数据结构是数组.本文将讨论另外一种列表:链表.我们会解释为什么有时链表 ...

  6. IDEA常用个性化设置

    自己对于IDEA一些个性化设置,这里简单记录一下,省的之后四处百度 常用插件安装 CodeGlance:代码编写区域右侧小地图 GenerateAllSetter:针对new出来的实体类对象快速调用G ...

  7. 脚本加载后执行JS回调函数的方法

    动态脚本简单示例 // IE下: var HEAD = document.getElementsByTagName('head')[0] || document.documentElement var ...

  8. vim 中文乱码解决

    问题如下: 在vim中编辑一个中文文本时 出现中文乱码情况 问题解决: 修改vimrc的脚本配置 编辑~/.vimrc文件,加上如下几行即可: set fileencodings=utf-8,ucs- ...

  9. 进程保护原理Hook函数Openprocess

    Win32子系统:                                                                                            ...

  10. hdu4971 流-最大权闭包

    题意:       给了一些任务,然后给了一些完成某些任务的限制,然后又给了限制之间的拓扑关系,最后问你最大收益. 思路:       很直白,就是流的一个应用,最大权闭包,没涉及到什么想法的地方,建 ...