【Python】函数(纯干货版)

目录

什么是函数

函数定义

函数的文档说明

局部变量和全局变量

综合案例:模拟实现ATM界面


什么是函数

函数是组织好的,可重复使用的,用于实现特定功能的代码段,将功能封装在函数内,可供随时随地重复利用,提高代码的复用性,减少重复代码,提高开发效率。

函数定义

函数定义的一般格式为

通过def这个关键字来作为定义函数的标识,return是需要缩进的。

注:① 参数如不需要,可以省略

② 返回值如不需要,可以省略

③ 函数必须先定义后使用

比如我们要自定义一个用来计算字符串长度的函数,代码如下

运行结果为字符串hello的长度为5

如果函数没有使用return返回数据,仍然有返回值,其返回值是一个特殊的字面量None,类型是NoneType类型。None在作为判断条件的时候为假。在定义一些变量的时候如果我们刚上来不知道初始化成什么也可以先初始化成None

函数的文档说明

函数的文档说明就是使用注释对我们自定义的函数进行一系列的说明,比如函数的功能,参数代表的意义,既然是注释,理论上来说我们怎么写都可以,但是Python中提供了一种比较规范的写法,当我们输入多行注释的操作:三个引号之后,就会自动出现这样的一个格式

我们便可以对应的输入注释了

局部变量和全局变量

在某个函数内部定义的变量被称为局部变量,这个变量的作用域就是他所在的函数内部,出了这个函数这个变量也就不复存在,自然也就无法访问到这个变量。

全局变量就是在函数外边定义的变量,全局变量既可以在函数外部访问,也可以在函数内部访问,但是要注意,直接在函数内部对全局变量进行赋值是不会改变全局变量的值的。比如有这样的代码

num是一个全局变量,在func1函数中打印了num的值,然后再func2函数中看起来是改变了num的值,然后打印了,最后在函数外边再次打印num的值,发现结果居然是20 50 20,也就是说在func2中并没有完成对num值的修改,这是因为局部变量的优先级要高于全局变量,因此编译器认为我们是在func2中新定义了一个名为num的局部变量并给其赋值为50,随后打印,这个局部变量和外边的全局变量除了名字相同之外毫无关系。如果想要在函数内部改变全局变量,应该使用关键字global,global可以让我们在函数内定义的变量变成全局变量。如图

此时的运行结果就变成了20 50 50,意思在func2中先通过golbal num声明num是一个全局变量,之后对这个全局变量进行赋值。不能直接写成global num=50,虽然看起来更加简洁,但是这是语法不允许的。

综合案例:模拟实现ATM界面

要求:

1.程序启动后要求输入客户姓名

2.查询余额、存款、取款后都会返回主菜单

3.存款、取款后,都应显示一下当前余额

4.客户选择退出或输入错误,程序会退出,否则一直运行

下面是部分功能的运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

加固平板电脑加速国产化!应用场景大科普

随着时代的发展,国产化平板电脑已经开始慢慢的实现了,国产芯片、国产操作系统、国产 GPU、国产 GNSS 等众多关键技术的集成与应用。全新的平台,全新的突破,全新的应用,让国产加固型移动计算机系列往前进了一步。那么加…

如何用 AI 工具做数据分析与可视化?

(注:本文为小报童精选文章。已订阅小报童或加入知识星球「玉树芝兰」用户请勿重复付费) 万字长文,助力你用 AI 提升科研效率。 2024 年 4 月 14 日,应武汉大学信息管理学院的邀请,我和北京大学步一老师给几…

python 头文件怎么写

本文主要以python2为例。首先介绍一下Python头文件的编程风格,然后再给大家详细介绍import部分的基本用法。这两个部分就是Python中头文件的组成模块。 编程风格 #!/usr/bin/env python #在文件头部 ( 第一行 ) 加上 设置 Python 解释器 # -*- coding: utf…

【开源】使用Python+Flask+Mysql快速开发一个用户增删改查系统

项目演示 项目本身很简单,增删改查是几乎所有系统的骨架。正所谓万丈高楼平地起,学会了增删改查,航母就指日可待了:),光速入门,直接看演示图: 项目地址 https://github.com/mudf…

设计模式代码实战-责任链模式

1、问题描述 小明所在的公司请假需要在OA系统上发布申请,整个请求流程包括多个处理者,每个处理者负责处理不同范围的请假天数,如果一个处理者不能处理请求,就会将请求传递给下一个处理者,请你实现责任链模式&#xff…

大华相机C#学习之IDevice类

获取方式 Enumerator.GetDeviceByGigeIP() 通过IP地址获取设备对象。 private void test_Click(object sender, EventArgs e) {devicesEnumerator.EnumerateDevices();device Enumerator.GetDeviceByGigeIP("192.168.0.11"); } 常用属性 DeviceInfo 获取设备的信…

uniapp_微信小程序_预约时间组件的使用

一、官方文档 DatetimePicker 选择器 | uView 2.0 - 全面兼容 nvue 的 uni-app 生态框架 - uni-app UI 框架 (uviewui.com) 二、完成的效果 之前使用的是Calendar 日历 这个太耗性能了&#xff0c;直接页面卡顿&#xff0c;所以就换成以上选择器了 三、代码 <u-datetime-p…

短信登录session-redis

1.流程 1.1 发送验证码 模拟路径 http://127.0.0.1:8080/api/user/code?phone1335566 Request Method:POSTcontroller层 /*** 发送手机验证码*/PostMapping("code")public Result sendCode(RequestParam("phone") String phone, HttpSession session) {…

C#自定义窗体更换皮肤的方法:创建特殊窗体

目录 1.窗体更换皮肤 2.实例 &#xff08;1&#xff09;图片资源管理器Resources.Designer.cs设计 &#xff08;2&#xff09;Form1.Designer.cs设计 &#xff08;3&#xff09;Form1.cs设计 &#xff08;4&#xff09; 生成效果 &#xff08;5&#xff09;一个遗憾 1.窗…

【银角大王——Django课程Day1】

Django框架第一课 安装Django框架方式一&#xff08;命令行的形式创建Django项目&#xff09;方式二&#xff08;适合企业版的pycharm&#xff09;默认文件介绍app文件介绍快速上手我的导包一直爆红是因为我没使用解释器&#xff0c;没导入包&#xff0c;去设置里面导入包即可—…

在 Node.js 中配置代理 IP 采集文章

不说废话&#xff0c;直接上代码&#xff1a; const http require(http); const https require(https);// 之后可以使用 http 或 https 模块发起请求&#xff0c;它们将自动使用配置的代理 // 代理ip&#xff1a;https://www.kuaidaili.com/?refrg3jlsko0ymg const proxy …

OpenHarmony实战开发-如何视频弹幕功能。

介绍 本示例介绍如何使用ohos.danmakuflamemaster和ohos.gsyvideoplayer开发支持视频弹幕的播放器。可以自定义弹幕样式、占据屏幕宽度&#xff0c;发送弹幕&#xff0c;开关弹幕视图。 效果图预览 使用说明 点击播放按钮&#xff0c;进行视频播放&#xff0c;弹幕自动开启点…

【位运算】Leetcode 只出现一次的数字 ||

题目解析 137. 只出现一次的数字 II 算法讲解 nums中要么一个数字出现三次&#xff0c;一个数字出现一次&#xff0c;按照比特位来说只可能出现上面的四种情况&#xff1a; 3n个0 0 或者 3n个0 1 或者 3n个1 0 或者 3n个1 1&#xff0c;它们相加的结果依次是0&#xff0c;…

websocket 连接,http 协议下用 ws, https 协议下必须要使用 wss

解决方案&#xff1a; https 相当于使用 httpssl 认证&#xff0c;使用 https 时 websocket 访问&#xff08;比如建立链接时&#xff09;必须要使用 wss。 详细解释&#xff1a; WebSocket 协议有两个主要版本&#xff1a;“ws”和“wss”。"ws"表示非加密的 Web…

【机器学习300问】77、什么是梯度消失和梯度爆炸?

一、梯度消失&#xff08;Vanishing gradients&#xff09; &#xff08;1&#xff09;定义 在训练深度神经网络时&#xff0c;随着误差梯度从输出层向输入层逐层回传&#xff0c;梯度可能因为连乘效应逐渐减小。当使用激活函数的导数的最大值小于1时&#xff0c;深度网络中越…

动静态库详解

文章目录 动静态库动态库静态库动静态链接 动静态库 库LinuxWindows动态库.so.dll静态库.a.lib 动静态库的本质就是文件。lld ldd命令可以查看一个可执行程序所依赖的库文件 ldd code&#xff1a;查看code依赖的库文件 平台要支持开发&#xff0c;必须要提前在系统中安装&am…

flutter书架形式格口的动态创建(行、列数,是否全选的配置)

根据传入的行列数创建不同格口数量的书架 左图&#xff1a;5行3列、右图&#xff1a;3行3列 代码 import package:jade/bean/experienceStation/ExpCellSpecsBean.dart; import package:jade/configs/PathConfig.dart; import package:jade/utils/DialogUtils.dart; import p…

基于SpringBoot+Vue的外卖点餐网站 免费获取源码

项目源码获取方式放在文章末尾处 项目技术 数据库&#xff1a;Mysql5.7/8.0 数据表&#xff1a;12张 开发语言&#xff1a;Java(jdk1.8) 开发工具&#xff1a;idea 前端技术&#xff1a;vue html 后端技术&#xff1a;SpringBoot 功能简介 (有文档) 项目获取关键字&…

Java 笔试强训篇- Day1

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 点击消除 1.1 解题思路一 1.2 解题思路二 2.0 在两个数组中找出相同的数 2.1 解题思路 笔试强训说明&#xff1a;有一些题目提供不了原题。 1.0 点击消除 该题链…

Group Query Attention (GQA) 机制详解以及手动实现计算

Group Query Attention (GQA) 机制详解 1. GQA的定义 Grouped-Query Attention (GQA) 是对 Multi-Head Attention (MHA) 和 Multi-Query Attention (MQA) 的扩展。通过提供计算效率和模型表达能力之间的灵活权衡&#xff0c;实现了查询头的分组。GQA将查询头分成了G个组&#…