小甲鱼Python07 函数初级

一、创建和调用函数

pass语句表示一个空的代码块,我们经常先写好函数,pass占一个坑,等规划好之后再来填坑。

函数也是可以指定参数的,我们会把参数传进去用来替代形参。

在Python里如果想要返回值,不需要指定函数的返回类型,直接用return语句即可。

只要遇到return语句,函数便会立刻返回,而不必管后面的值。

同时,任何一个函数其实都有返回值,没有显示说明的函数会返回一个none值。

二、函数的参数

1.位置参数

Python中我们是按照传入参数的顺序去给形式参数赋值的,这些位置固定的参数又称为位置参数。

2.关键字参数

关键字参数只要知道参数的名字就可以了,顺序无所谓

如果想要混合使用位置参数和关键字参数,Python要求位置参数必须在前

3.默认参数

使用默认参数的话,需要把默认参数放到后面,位置参数在前面。

当我们使用help()函数查看函数文档时,经常会看到一个/:

/左侧只能使用位置参数,不能用关键字参数。而/右侧是可以随意使用什么参数的。

同样的,参数列表加个*表明左侧无所谓,右侧只能使用关键字参数。

4.收集参数

有时候我们不清楚用户会传入多少个参数,比如print函数,我们事先无法预知用户会让输出多少个字符串,这时候就要用到收集参数。

收集参数的语法很简单,只要在参数列表里的参数前面加上一个*

为什么收集参数可以这样呢?我们不妨直接把参数打印出来:

我们发现了什么?元组!在元组那里我们说过,元组具有打包和解包的能力。

同样的,我们如果想让函数返回多个值,也是可以的,Python会返回一个元组:

如果想要在收集参数后面定义其它参数,那么我们就应该使用关键字参数,以便告诉Python哪里开始是我们传入的参数。

收集参数还可以打包为字典,方法是使用**,同时传参时必须使用关键字参数,因为字典是键值对组成的。同时我们可以混合使用几种参数

那么,在我们学过的函数或方法中,有没有哪个函数是同时使用两种参数的呢?有,format函数!

5.解包参数

当我们想传入一个字典或者元组时,可以用*或者**传参。

三、作用域

1.形参与实参

局部变量:定义在函数里,作用域仅仅限于该函数中。

全局变量:在任何函数的外部定义,作用域为全体。

函数里的只是形参,形参的改变不会影响到实参。

2.global语句

global语句是一种声明语句,用于告诉Python我现在在函数内部要修改的就是全局变量的值。

3.嵌套函数

4.nonlocal语句

一般而言,func2里修改x的值是不会影响到func1的,除非我们使用nonlocal语句,定义现在操作的就是外部函数变量。

5.LEGB规则

Python中的LEGB规则用于查找和解析变量的作用域。LEGB是一个缩写,代表四个作用域,以从最内层到最外层的顺序查找变量。

L:local,局部作用域。

E:Enclosed,嵌套函数的外层函数作用域。

G:Global,全局作用域。

B:Build-In,内置作用域。

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

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

相关文章

仿牛客网项目---显示评论和添加评论功能的实现

这篇文章,我来介绍一下我的项目中的另外一个功能:显示评论和添加评论。 其实这两个功能都不怎么重要,我感觉最重要的应该是用户注册登录功能,这个也了解一下,知道这么一回事儿就好。 首先设计DAO层。 Mapper public …

python实现AES加密解密

1. 前言 AES是一种对称加密,所谓对称加密就是加密与解密使用的秘钥是一个。 之前写过一片关于python AES加密解密的文章,但是这里面细节实在很多,这次我从 参数类型、加密模式、编码模式、补全模式、等等方面 系统的说明如何使用AES加密解密…

直观理解卷积

卷积直观理解 原文来自最容易理解的对卷积(convolution)的解释 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:计算机杂记 🎀CSDN主页 发狂的小花 🌄人生秘诀:学习的本质就是极致…

从经典学习 NLP:小白到大白:1. Word Tokenization

文章目录 1 Word Tokenization1.1 Top-down/rule-based tokenization1.2 Byte-pair Encoding: A Bottom-up tokenization algorithm 1 Word Tokenization 来源:JM3 Chapter 2.5 p19-23 tokenization 就是 把 running text 分割成为 words; 常有两种方…

AVL 树

AVL树的概念 二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。因此,两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年 发明了一种解决…

k8s笔记26--快速实现prometheus监控harbor

k8s笔记26--快速实现prometheus监控harbor 简介采集指标&配置grafana面板采集指标配置grafana面板 说明 简介 harbor是当前最流行的开源容器镜像仓库项目,被大量IT团队广泛应用于生产、测试环境的项目中。本文基于Harbor、Prometheus、Grafana介绍快速实现监控…

3. 台阶问题

数楼梯 题目描述 楼梯有 N N N 阶,上楼可以一步上一阶,也可以一步上二阶。 编一个程序,计算共有多少种不同的走法。 输入格式 一个数字,楼梯数。 输出格式 输出走的方式总数。 样例 #1 样例输入 #1 4样例输出 #1 5提示…

FPGA之带有进位逻辑的加法运算

module ADDER( input [5:0]A, input [5:0]B,output[6:0]Q ); assign Q AB; endmodule 综合结果如下图所示: 使用了6个Lut,,6个LUT分布…

详细介绍如何用windows11自带Hyper-V安装虚拟机

通过系统自带的hyper-v安装windows11,舒服又惬意,相比用第三方虚拟机软件速度快很多。 硬件准备 1、对于电脑自带的虚拟机Hyper-V,不是每种电脑系统版本都带着的。我们先要确定您的系统符合 Hyper-V 的最低要求。我们跟着下面的步骤来执行&…

鸿蒙开发相关知识(四)【数据持久化(用户首选项、关系型数据库)、通知(基础通知、进度条通知、通知意图)】

文章目录 一、数据持久化1、用户首选项(1)语法说明(2)完整代码示例 2、关系型数据库(1)初始化数据库(2)增删改数据(3)查询数据(4)完整…

《2023年勒索软件攻击态势报告》

获取方式: 链接:https://pan.baidu.com/s/1zd-yVsuGwJADyyGNFR_TIQ?pwd2lo0 提取码:2lo0

探索数据结构:解锁计算世界的密码

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:数据结构与算法 贝蒂的主页:Betty‘s blog 前言 随着应用程序变得越来越复杂和数据越来越丰富,几百万、…

600万订单每秒Disruptor +SpringBoot,如何解决消息不丢失?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中,最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、shein 希音、百度、网易的面试资格,遇到很多很重要的面试题: Disruptor 官方说能达到每秒600w OPS订单处理能力&…

Java——Object

1.Object万类之祖 1.1 Object类型的概述 Object类是所有类型的顶层父类,所有类型的直接或者间接的父类;所有的类型中都含有Object类中的所有方法。 随意定义一个类型,不手动显式定义其父类,那么这个类的父类就是Object类 public Object() …

【C语言】指针初阶2.0版本

这篇博文我们来继续学习指针的其他内容 指针2.0 传值调用与传址调用传值调用传址调用 一维数组与指针理解数组名使用指针深入理解一维数组 二级指针指针数组二维数组与指针 传值调用与传址调用 在开始之前,我们需要先了解这个概念,后面才能够正常的学习…

利用 Python 抓取数据探索汽车市场趋势

一、引言 随着全球对环境保护意识的增强和技术的进步,新能源汽车作为一种环保、高效的交通工具,正逐渐受到人们的关注和青睐。在这个背景下,对汽车市场的数据进行分析和研究显得尤为重要。 本文将介绍如何利用 Python 编程语言,结…

VSCode上搭建C/C++开发环境(vscode配置c/c++环境)Windows系统---保姆级教程

引言劝退 VSCode,全称为Visual Studio Code,是由微软开发的一款轻量级,跨平台的代码编辑器。大家能来搜用VSCode配置c/c,想必也知道VSCode的强大,可以手握一个VSCode同时编写如C,C,C#&#xff…

微服务day02-Ribbon负载均衡与Nacos安装与入门

一.Ribbon负载均衡 在上一节中,我们通过在RestTemplte实例中加上了注解 LoadBalanced,表示将来由RestTemplate发起的请求会被Ribbon拦截和处理,实现了访问服务时的负载均衡,那么他是如何实现的呢? 1.1 Ribbon负载均衡的原理 Rib…

链表的归并排序-LeetCode(Python版)

双指针归并排序!图解排序链表!-知乎 class ListNode(object):def __init__(self, val0, nextNone):self.val valself.next nextclass Solution(object):def find_mid(self, head): # 快慢指针slow, fast head, headwhile fast.next and fast.next.n…

linux 硬盘存储剩余容量自动化监控+报警通知

linux 硬盘存储剩余容量自动化监控报警通知 编写shell脚本 #!/bin/bash# 获取系统存储大小(单位为GB) storage_size$(df -h / | awk NR2 {print $4} | sed s/G//)# 阈值(小于10GB触发报警) threshold10# 钉钉机器人 Webhook UR…