Python基础必经之路——函数

news2024/9/30 7:30:27

前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

目录

        • 前言
        • 定义函数
        • 向函数传递信息
        • 实参和形参
        • 传递实参
        • 返回值
        • 将函数存储在模块中
        • 导入整个模块
        • 尾语 💝

定义函数

下面是一个打印问候语的简单函数

def greet_user():
    print("hello")
greet_user()

本例示例了一个非常简单的函数结构。

第一行代码使用def告诉python,你要定义一个函数。

这是函数定义,提出函数名,还可能在圆括号内指出函数需要完成任务需要的信息。

在这里函数名为greet_user(),它不需要任何信息就能完成工作,因此括号是空的。

最后,定义以冒号结尾。

要使用这个函数,可以调用它人 要调用函数,可依次指定函数名以及用圆括号括起的必要信息。

由于这个函数不需要任何信息,调用它只需要输入greet_user()即可。他会打印hello

( 更多资料、教程、文档点击此处跳转跳转文末名片加入君羊,找管理员小姐姐领取呀~ )

向函数传递信息

def greet_user(name):
    print(f"hello,{name.title()}!")
greet_user("jack")

运行结果

hello,Jack!

代码greet_user(“jack”)调用函数greet_user(),并向它提供提供执行函数调用print()所需要的信息。

实参和形参

在函数 greet_user()的定义中,变量name是一个形参,即函数完成工作所需要的信息,在代码greet_user(“jack”)中,jack是一个实参,即调用函数时传递给函数的信息。

调用函数时,将要让函数使用的信息放在圆括号内。

greet_user(“jack”)中,将实参“jack”传递给了函数greet_user(),这个值被赋给了形参name了。

传递实参

函数定义中可能包含多个形参,因此在调用函数时会包含多个实参。

向函数传递实参的方式很多:可以使用位置实参,这要求实参的顺序和形参相同 ;

也可使用关键词实参,其中每一个实参都由变量名和值组成。

在调用函数时,最简单的关联方式是基于实参的顺序,这种关联方式成为位置实参。

如果对于顺序理顺困难,可以使用关键词实参,它是传递给函数的名称对值。

实参将名称和值相关联。

所以向函数传递实参时不易混淆,关键词实参让你无需考虑函数调用中的实参顺序。

位置实参示例

def stu_name(name,score):
    print(f"\n{name} is a good student")
    print(f'a one {score}')

stu_name('张三','20200409')

运行结果

张三 is a good student
a one 20200409

关键字实参示例

def stu_name(name,score):
    print(f"\n{name} is a good student")
    print(f'a one {score}')

stu_name(score='20200409',name='张三')

运行结果

张三 is a good student
a one 20200409

可见,关键字实参相 对应的形参顺序不符,但依然可以达成我们想要的效果。

返回值

函数并非总是直接显示输出,它还可以处理一些数据,并返回一个或者一组值。

函数返回的值称为返回值。在函数中,可使用return来返回值到调用函数的代码行。

返回值让你将程序的大部分繁重工作移动到函数之中去完成,从而简化程序。

在函数外,使用result接收return所返回的值。

def fun1(lista):
    a=sum(lista)/len(lista)
    print("平均值:",a)
    return a
result=fun1([46,89,45,2,6,551,8,56])
print(result)

运行结果

平均值: 100.375
100.375

如果说不返回值,在函数外可以正常使用函数内的参数吗

def fun1(lista):
    a=sum(lista)/len(lista)
    print("平均值:",a)
#   return a
result=fun1([46,89,45,2,6,551,8,56])
print(result)

运行结果

平均值: 100.375
None

可见其结果在函数外并不能取得所值!

再如果说,不使用result接收返回值的话,直接打印a,将会出现1什么情况呢?

示例:

def fun1(lista):
    a=sum(lista)/len(lista)
    print("平均值:",a)
    return a
fun1([46,89,45,2,6,551,8,56])
print(a)

运行结果

平均值: 100.375
Traceback (most recent call last):
  File "C:\UsersDesktop\python\03.py", line 185, in <module>
    print(a)
NameError: name 'a' is not defined

函数外实参正常赋值给函数内形参,因此函数内可正常运行,但是函数外显示a并未被定义,出现报错。

将函数存储在模块中

使用函数的优点之一就是可以将代码块与主程序分离。

通过给函数指定描述性名称,可让主程序容易理解的多。

还可以更进一步,将函数存储在称为模块的独立文件中,在将模块导入到主程序中。

import语句允许在当前运行的程序文件中使用模块中的代码。

通过将函数存储在独立的文件中,可隐藏代码的细节,将重点放在程序的高级逻辑层上,在还可以让你在众多的不同程序中重用函数,将程序存储在独立的文件中去,可与其他程序员1共享这些文件,而不是这些程序。

知道如何导入函数还能让你使用其他程序员编写的数据库。

导入整个模块

要让函数是可导入的,得先创建模块,模块是扩展名以.py的文件,包含要导入到程序中的代码。

尾语 💝

要成功,先发疯,下定决心往前冲!

学习是需要长期坚持的,一步一个脚印地走向未来!

未来的你一定会感谢今天学习的你。

—— 心灵鸡汤

本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 😝

👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇

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

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

相关文章

excel函数技巧:如何快速汇总销售合计项

一年的销售数据整理完了&#xff0c;除了要看到每个人的销售合计之外&#xff0c;老板今年还要看到图中这两项合计&#xff1a;销量最高的三个月合计是指汇总每人一年中&#xff0c;销量最高的三个月的数据。超过平均值的销售合计是指汇总超过总平均值的月份销量。两项合计需要…

【进阶】Spring Boot日志文件

努力经营当下&#xff0c;直至未来明朗&#xff01; 文章目录一、日志有什么用二、日志怎么用三、 自定义日志打印四、 日志级别五、日志持久化六、更简单的日志输出——lombok小结普通小孩也要热爱生活&#xff01; 一、日志有什么用 日志是解决问题最直观、最有效的方法。⽇…

ROS2机器人编程简述humble-第二章-Launchers .3.3

ROS2机器人编程简述humble-第二章-Publishing and Subscribing .3.2ros2 run一次只能开启一个node&#xff0c;如果一次开启一组相关node&#xff0c;需要使用ros2 launch。支持Python, XML, 和 YAML。推荐Python。zhangrelayLAPTOP-5REQ7K1L:~$ ros2 run -h usage: ros2 run […

Mysql之约束

简介 not null前面也说过&#xff0c;这些约束是针对列的数据的&#xff0c;对应整个列的数据都起约束作用 基本但是创建表在字段后使用的语句 1.primary key-主键 主键特征1.对应列不能有重复的数据2.不能为NULL 唯一且非空 -- 主键 -- id,name,email CREATE TABLE t17(id…

AX7A200教程(1): DDR3仿真平台搭建(一)

本章节主要调用官方的MIG控制器&#xff0c;并使用官方的MIG控制器进行仿真&#xff0c;开发环境vivado2020.1鉴于很多童鞋无法仿真自己新建的DDR工程&#xff0c;即使使用modelsim仿真也仿真失败&#xff0c;本例程着重于在vivado中&#xff0c;对自己新建的带DDR3的工程进行仿…

力扣45.跳跃游戏Ⅱ(贪心思路详解)

文章目录力扣45.跳跃游戏Ⅱ题目描述算法思路代码实现力扣45.跳跃游戏Ⅱ 题目描述 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意…

114、【树与二叉树】leetcode ——77. 组合:回溯法+剪枝优化(C++版本)

题目描述 原题链接&#xff1a;77. 组合 解题思路 组合问题是回溯法里的经典问题&#xff0c;分别采用两个全局变量path记录当前组合情况&#xff0c;res作为结果集。每次因为结果集需要去重&#xff0c;因此还需要再设置一个局部变量startIndex作为每次遍历的起始值&#xf…

Linux kernel Memory Pin机制的实现以及测试

提起Memory Pin机制&#xff0c;就不得不提到swap的概念&#xff0c;这两个概念息息相关&#xff0c;为了避免在CPU忙碌的时候&#xff0c;也就是在缺页异常发生的时候&#xff0c;临时搜索可供换出的内存页面并加以换出&#xff0c;Linux内核定期地检查系统的空闲页面数量是否…

九大数据分析方法-单指标分析方法与多指标分析方法

文章目录1 单指标分析方法1.1 周期性分析法1.2 结构分析法1.3 分层分析法2 多指标分析方法2.1 矩阵分析法2.2 指标拆解法本文来源&#xff0c;为接地气的陈老师的知识星球&#xff0c;以及付同学的观看笔记。1 单指标分析方法 顾名思义&#xff0c;用单个数据指标进行数据分析…

RocketMQ 简介

一、简介 官方简介&#xff1a; l RocketMQ是一款分布式、队列模型的消息中间件&#xff0c;具有以下特点&#xff1a; l 能够保证严格的消息顺序 l 提供丰富的消息拉取模式 l 高效的订阅者水平扩展能力 l 实时的消息订阅机制 l 亿级消息堆积能力 二、网络架构 三、特性 1. na…

05-jquery基本过滤器

2.5过滤器 过滤器是一个字符串&#xff0c;用了筛选dom对象&#xff0c;过滤器是和选择器一起使用。在选择dom对象后&#xff0c;再进行过滤筛选。 .5.1基本过滤器 使用dom对象在数组中的位置&#xff0c;作为过滤条件。 1 选择数组中第一个dom成员。 语法&#xff1a;$(“选…

【nginx】全面实战-Mac

▒ 目录 ▒&#x1f6eb; 导读需求1️⃣ 安装brew替换为阿里源修复报错No such file or directorybrew install nginx常用文件及目录常用命令2️⃣ nginx配置配置结构3️⃣ web服务器默认服务器自定义静态服务器4️⃣ 反向代理配置及介绍5️⃣ 负载均衡配置及介绍负载均衡的策略…

杂记:python和pyinstaller从头安装步骤(附安装包的备份)

pyinstaller 简介 知道的就跳过本章 python 属于脚本语言&#xff0c;只要有 python 就能运行 .py 文件。而 pyinstaller 是可执行文件文件生成工具&#xff0c;约等于编译工具。 以 windows 为例&#xff0c;在 A 计算机上生成的 exe&#xff0c;复制到 B 计算机可以直接运行…

字节跳动青训营--前端day3

文章目录前言一、写好JavaScript的一些原则二、各司其职三、组件封装四、过程抽象前言 仅以此文章记录学习 一、写好JavaScript的一些原则 各司其职&#xff1a;让HTML、CSS和JavaScript职能分离组件封装&#xff1a;好的UI组件具备正确性、扩展性、复用性过程抽象&#xff1…

JVM堆内存分配策略(深入理解Java虚拟机第三章)

堆内存模型&#xff1a; 年轻代&#xff1a; 根据分代算法&#xff0c;默认小于15岁的对象称作年轻代&#xff0c;年轻代分为Eden区、幸存者区(Survivor Form&#xff0c;Survivor To),三者比例为&#xff1a;8&#xff1a;1&#xff1a;1 Eden 分区&#xff1a;对象出生分区…

Java 实现几种 异步的实现方式

前言 异步执行对于开发者来说并不陌生&#xff0c;在实际的开发过程中&#xff0c;很多场景多会使用到异步&#xff0c;相比同步执行&#xff0c;异步可以大大缩短请求链路耗时时间&#xff0c;比如&#xff1a;发送短信、邮件、异步更新等&#xff0c;这些都是典型的可以通过…

FL水果21最新版本电脑编曲软件FL Studio更新

电脑编曲软件也就是我们常说的宿主软件&#xff0c;英文简称DAW。 FL Studio俗称水果&#xff0c;是一款开发初衷为了电子音乐制作的宿主软件。内置了非常多优秀的合成器以及效果器插件&#xff0c;极为适合于电子音乐的编排。同时FL Studio支持第三方音源插件导入&#xff0c;…

[RootersCTF2019]ImgXweb

目录 信息收集 JWT伪造 工具使用 寻找秘钥 curl 补充知识 信息收集 进入查看源码未发现重要信息 注册admin失败&#xff0c;猜测应该需要垂直越权 先随意注册个账户coleak 登录后发现可以文件上传&#xff0c;上传shell后发现不能连接&#xff0c;执行命令也没有回显…

Linux常用命令——tailf命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) tailf 在屏幕上显示指定文件的末尾若干行内容&#xff0c;通常用于日志文件的跟踪输出。 补充说明 tailf命令几乎等同于tail -f&#xff0c;严格说来应该与tail --followname更相似些。当文件改名之后它也能继…

微服务注册中心-Eureka

微服务注册中心-Eureka微服务注册中心-Eureka一、注册中心&#xff08;Eureka&#xff09;二、Euraka实现1.eureka-server端&#xff08;1&#xff09;新建项目&#xff0c;引入pom依赖&#xff08;2&#xff09;编写启动类&#xff0c;引入开启注册中心的注解&#xff08;3&am…