小甲鱼Python07 函数初级

news2024/11/16 11:43:36

一、创建和调用函数

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.coloradmin.cn/o/1480855.html

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

相关文章

Redis 【1】—— 安装 与 配置

Redis 【1】—— 安装 与 配置 一、安装 与 配置(一)使用 yum 安装(二)创建符号链接1. 软链接2. 相关指令 (三)修改配置文件(四)Redis 的启停 一、安装 与 配置 (一&…

【leetcode】反转链表

大家好,我是苏貝,本篇博客带大家刷题,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 方法1 .将箭头方向逆转方法2. 点击查看题目 方法1 .将箭头方向逆转 思路: n1,n2,n3分别指…

Topaz Video AI:一键提升视频品质,智能重塑影像魅力 mac/win版

Topaz Video AI是一款革命性的视频智能处理软件,它利用先进的机器学习和人工智能技术,为视频创作者提供了前所未有的视频增强和修复功能。无论您是专业视频编辑师、摄影师,还是热爱视频创作的爱好者,Topaz Video AI都能帮助您轻松…

大数据分析案例-基于SVM支持向量机算法构建手机价格分类预测模型

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

React富文本编辑器开发(三)

现在我们的编辑器显示的内容很单一,这自然不是我们的目标,让呈现的内容多元化是我们的追求。这就需要让编辑器能够接收多元素的定义。从初始数据的定义我们可以推断数据的格式远不止一种,那么其它类型的数据如何定义及呈现的呢,我…

【 C++ 】智能指针

1、内存泄漏 什么是内存泄漏,内存泄漏的危害 什么是内存泄漏: 内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并不是指内存在物理上的消失,而是应用程序分配某段内存后,因为设计错误&#xff0c…

操作系统导论

操作系统的概念: 操作系统是管理计算机硬件的程序,它还为应用程序提供基础,并且充当计算机硬件和计算机用户之间的中介。 操作系统做什么: 计算机系统可以大致分为四个部分:硬件,操作系统,系…

kafka查看数据_Kafka 数据积压情况查看

由于消息消费速度处理慢或是消费端故障会导致数据产生积压。 那怎么查看数据积压量呢? Consumer-Groups管理; 在Kafka 的bin目录下提供了 kafka-consumer-groups.sh 脚本。此脚本用于管理消费情况。 查询消费者组 $KAFKA_DIR/bin/kafka-consumer-groups…

【Sql server】假设有三个字段a,b,c 以a和b分组,如何查询a和b唯一,但是c不同的记录

欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是《Sql Server》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对…

深入理解计算机系统笔记

1.1 嵌套的数组 当我们创建数组的数组时,数组分配和引用的一般原则也是成立的。 例如,声明 int A[5][3]; 等价于下面的声明 typedef int row3_t[3]; row3_t A[5] 要访问多维数组的元素,编译器会以数组起始为基地址, (可能需…

教你快速认识Java中的继承和多态

目录 继承 继承的概念 继承的语法 父类成员访问 在子类方法中或者通过子类对象访问父类成员变量时: 在子类方法中或者通过子类对象访问父类成员方法时: super关键字 子类构造方法: 代码块执行顺序: 多态 多态的实现条件 重写 重…

MySql安全加固:配置不同用户不同账号禁止使用旧密码禁止MySql进程管理员权限

MySql安全加固:配置不同用户不同账号&禁止使用旧密码&禁止MySql进程管理员权限 1.1 检查是否配置不同用户不同账号1.2 检查是否禁止使用旧密码1.3 禁止MySql进程管理员权限 💖The Begin💖点点关注,收藏不迷路&#x1f496…

shell自定义日志输出函数log

Background 在编写比较复杂的脚本时,需要输出相关日志信息,方便知悉脚本的执行情况以及问题的排查。 源码 log.sh # 自定义日志函数 function log(){if [[ $1 "i" || $1 "info" ]]; thenecho -ne "\033[1;34mINFO: \033[0m&…

使用Python操作SQLite数据库

大家好,在数据涌现的今天,数据库已成为生活中不可或缺的工具。Python作为一种流行的编程语言,内置了多种用于操作数据库的库,其中之一就是SQLite。SQLite是一种轻量级的关系型数据库管理系统,它在Python中的应用非常广…

c++异常机制(6) -- 标准库中的异常类

标准程序库异常 我们使用c标准库中的异常类&#xff0c;来实现我们之前文件拷贝的代码。 #include <iostream> #include <stdlib.h> #include <exception> #include <ios>using namespace std;#define BUFFER_SIZE 1024// 将一个文件中的内容拷贝到另…

python中版本,操作系统等问题汇总

1. linux源码部署到windows 1.1ModuleNotFoundError: No module named pwd 这个问题&#xff0c;是因为源码是给linux的。这里在windows中&#xff0c;没有该命令。 解决方法之一&#xff0c;在相应的环境目录中&#xff0c;如图中<MetaGPTenv>虚拟环境中&#xff0c;在…

makefileGDB使用

一、makefile 1、make && makefile makefile带来的好处就是——自动化编译&#xff0c;一旦写好&#xff0c;只需要一个make命令&#xff0c;整个工程完全自动编译&#xff0c;极大的提高了软件开发的效率 下面我们通过如下示例来进一步体会它们的作用&#xff1a; ①…

今日arXiv最热大模型论文:点击即可播放!港中文发布大模型写歌神器!

一首歌&#xff0c;包含作词作曲两个部分。擅长作词or作曲就已经很牛了。比如方文山是周杰伦的御用作词人&#xff0c;而周杰伦写过很多耳熟能详的曲子。而兼具作词作曲才华的全能创作人却是难得一见。 最近港中文发布了一款歌曲创作大模型SongComposer&#xff0c;作词作曲都…

Pegasus智能家居套件样例开发--软定时器

样例简介 此样例将演示如何在Pegasus Wi-Fi IoT智能家居套件上使用cmsis 2.0 接口进行定时器开发。 工程版本 系统版本/API版本&#xff1a;OpenHarmony 3.0 releaseIDE版本&#xff1a;DevEco Device Tool Release 3.0.0.401 快速上手 准备硬件环境 预装windows系统的PC…

uniapp项目申请短信模板临时Nginx配置

现在申请短信模板不允许有变量&#xff0c;且要指向实际业务网站&#xff0c;因为项目是小程序&#xff0c;用uniapp写的&#xff0c;现在申请短信&#xff0c;把uniapp打包成h5项目&#xff0c;上传至服务器&#xff0c;修改niginx配置中springboot项目部分&#xff0c;记录一…