Python基础入门 --- 5.函数

文章目录

    • Python基础入门
      • 5.函数
        • 5.1 基本定义
        • 5.2 传入参数
        • 5.3 返回值
          • 5.3.1 None类型
        • 5.4 说明文档
        • 5.5 嵌套调用

Python基础入门

5.函数

定义:可重复使用,用来实现特定功能的代码段。

# 不使用内置函数len,统计字符串的长度
str = "Hello World!"
count = 0
for i in str:
    count += 1
print(f"字符串{str}的长度为{count}")

# 这时候我们可以使用函数来优化过程
def my_len(data):
    count = 0
    for i in str:
        count += 1
    print(f"字符串{str}的长度为{count}")
my_len(str)

5.1 基本定义

语法结构:

def 函数名(传入参数):

    函数体

    return 返回值

调用:函数名(参数)

def printf():
    print("Hello")

printf()

补充:函数的参数和返回值如果不需要,可以省略,但函数必须要先定义在使用!

5.2 传入参数

作用:函数在进行运算时,接受外部提供的数据。

# 定义函数
def Sub(num1, num2):
    result = num1 - num2
    print(f"{num1}-{num2}的结果是{result}")

# 调用函数
Sub(10, 5)
  • Sub函数定义中,提供的num1和num2称为形式参数,简称形参。表明函数将要使用2个参数,参数之间用逗号进行分隔。

  • Sub函数调用中,提供的5和6称为实际参数,简称实参。表明函数执行时真正使用的参数值,传入时啊,按顺序传入数据,参数之间用逗号进行分隔。

5.3 返回值

语法结构:

def 函数(参数…):

    函数体

    return 返回值

变量 = 函数(参数)

def Sub(num1, num2):
    return num1 - num2
    print("hello") # 不会执行
ret = Sub(10, 5)
print(f"Sub函数的返回值是{ret}")

总结:函数体遇到return后就结束执行了。

5.3.1 None类型

如果函数没有使用return返回数据,函数将返回一个特殊的字面量:None。

def printf():
    print("Hello")

ret = printf()
print(f"函数printf的返回值是{ret}")
print(f"函数printf的返回值类型是{type(ret)}")

在这里插入图片描述

应用:

  1. if判断,None等同于False,在函数中主动返回None,配合if做判断进行相关处理。

  2. 定义变量,变量暂时不需要有具体值是,可用None替代。

# 用于if判断
def is_adult(age):
    if age >= 18:
        return "Adult"
    return None

ret = is_adult(10)
if not ret:
    print("未成年")

# 用于定义变量
name = None
5.4 说明文档

作用:对函数进行解释说明,帮助读者更好理解函数所实现的功能。

语法结构

def func(x, y):
    """
    函数说明
    :param x:形参x的说明 
    :param y:形参y的说明
    :return: 返回值的说明
    """
    函数体
    return 返回值

总结:param解释参数,return解释返回值。

5.5 嵌套调用
def func_2():
    print("----- 2 -----")

def func_1():
    print("----- 1 -----")
    # 调用func_2函数
    func_2()
    # 调用完函数会回到该语句
    print("----- 3 -----")

# 调用func_1函数
func_1()

在这里插入图片描述
上一章:Python基础入门 — 4.循环语句

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

南卡罗来纳州历史和文化经济地理和自然政治和社会教育1. 加州大学公布2024年秋季入学新生和转学申请数据2. 2024考研国家线公布路德会信徒核心信仰礼拜和

目录 南卡罗来纳州 历史和文化 经济 地理和自然 政治和社会 教育 1. 加州大学公布2024年秋季入学新生和转学申请数据 2. 2024考研国家线公布 路德会信徒 核心信仰 礼拜和实践 分布 社会和文化影响 约翰塞巴斯蒂安巴赫 生平简介 音乐风格和作品 遗产和影响 …

AXI Lite协议详解

AXI Lite协议详解 axi(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的amba(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的…

C++17之std::variant

1. std::variant操作 如下列出了为std:: variable <>提供的所有操作。

Docker 学习笔记一

一、什么是docker Docker 是一个基于轻量级虚拟化技术的容器&#xff0c;整个项目基于Go语言开发&#xff1b;Docker是一个C/S架构&#xff0c;后端众多模块各司其职&#xff0c;docker的daemon是运行在主机上通过client可以进行通信。 docker 由三部分组成&#xff1a;镜像(…

Rust 构建开源 Pingora 框架可以与nginx媲美

一、概述 Cloudflare 为何弃用 Nginx&#xff0c;选择使用 Rust 重新构建新的代理 Pingora 框架。Cloudflare 成立于2010年&#xff0c;是一家领先的云服务提供商&#xff0c;专注于内容分发网络&#xff08;CDN&#xff09;和分布式域名解析。它提供一系列安全和性能优化服务…

Figure 01掀起了具身智能的崭新篇章

在人工智能的发展历程中&#xff0c;OpenAI始终扮演着创新的先锋角色。最近&#xff0c;他们与Figure公司的合作成果尤为引人注目&#xff0c;这一合作将多模态大模型技术成功应用于Figure 01机器人的开发中&#xff0c;为人类与机器的互动开辟了全新的时代。该机器人不仅能够与…

innovus中path group 的策略和应用(上)

在所有的后端工具里边&#xff0c;有三个重要的引擎&#xff1a;auto-place&#xff0c;CTS&#xff0c;auto-route三个。这里边的auto-place是决断了整个设计时序的基点。由于&#xff0c;auto-place的动作是在设计的preCTS阶段&#xff0c;所以这里的设计时序就是广义上说的&…

HDFSDATANODE数据传输详解

本文主要阐述datanode中一个socket连接接收字节流的构成&#xff0c;帮助datanode的接收与处理数据。注意hadoop版本为3.1.1。 写在前面 Datanode本质上也是TCPServer&#xff0c;一般的TCPServer接到客户端请求以后会分配一个线程处理&#xff0c;对于Datanode而言&#xff…

npm、nodejs和vue之间关系和区别介绍

本文讲解npm、Node.js和Vue.js这三者之间的关系和区别&#xff0c;以及它们各自的特点。 首先&#xff0c;让我们来了解一下Node.js。 **Node.js** 是一个开源的服务器端运行环境&#xff0c;它允许开发者使用JavaScript来编写服务器端的代码。在传统的Web开发中&#…

[ROS 系列学习教程] rosbag Python API

ROS 系列学习教程(总目录) 本文目录 1. 构造函数与关闭文件2. 属性值3. 写bag文件内容4. 读bag文件内容5. 将bag文件缓存写入磁盘6. 重建 bag 文件索引7. 获取bag文件的压缩信息8. 获取bag文件的消息数量9. 获取bag文件记录的起止时间10. 获取话题信息与消息类型 rosbag 的 Pyt…

【Java探索之旅】运算符解密 位运算,移位运算

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; Java入门到精通 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一、位运算符1.1 按位与 &1.2 按位或 |1.3 按位取反 ~1.4 按位异或^ 二、移位运…

快速排序算法,简洁,易懂

目录 代码实现&#xff08;java&#xff09;&#xff1a; 一、首元素作为基准值 图&#xff1a; ​编辑 基本思路&#xff1a; 代码&#xff1a; 代码补充说明&#xff1a; 二、中间元素作为基准值 代码&#xff1a; 参考学习文章&#xff1a; 今天我们不刷力扣了&#xff0c;…

Java Web项目—餐饮管理系统Day07-套餐管理(二)

文章目录 1. 套餐的分页查询2. 更新套餐![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/209298cf3b4349c5a2fed56a3d33350e.png)第一步, 依据套餐id查询到套餐的基本信息以及关联菜品信息.第2步, 将请求数据进行保存(更新). 3. 批量的停售启售 这部分开发剩下的部分…

CSS Module

CSS Module的作用&#xff1a;将CSS样式作用域限制在特定的组件范围内&#xff0c;以避免全局样式污染和命名冲突。 Vue中如何实现样式模块…

SVN修改已提交版本的注释

目录 一、需求分析 二、问题分析 三、解决办法 一、需求分析 ​开发过程中&#xff0c;在SVN提交文件后&#xff0c;发现注释写的不完整或不够明确&#xff0c;想再修改之前的注释文字​。 使用环境&#xff1a; SVN服务器操作系统&#xff1a;Ubuntu 20.04.6 LTS SVN版本&…

物理隔离条件下,如何安全高效地进行内外网文件导入导出?

内外网文件导入导出通常指的是在内部网络&#xff08;内网&#xff09;和外部网络&#xff08;外网&#xff09;之间传输文件的过程。这在企业环境中尤其常见&#xff0c;因为内部网络通常包含敏感数据&#xff0c;而外部网络&#xff08;如互联网&#xff09;则允许更广泛的访…

计算机网络实验——学习记录

1. tun/tap模块&#xff1a;为Linux系统提供网络虚拟功能&#xff0c;tun位于网络OSI模型的三层&#xff08;网络层&#xff09;&#xff0c;tap位于网络的二层&#xff08;数据链路层&#xff09;。 1.1 验证是否包含tun/tap模块&#xff1a;modinfo tun&#xff1b; 1.2 验…

8:00面试,8:06就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到9月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

echarts散点图自定义tooltip,鼠标放上去展示多行数据

先放效果图 如图&#xff0c;就是鼠标悬停在散点上&#xff08;这里的散点我替换成了图片&#xff0c;具体做法参考这篇文章&#xff1a;echarts散点图的散点用自定义图片替代-CSDN博客&#xff09;时&#xff0c;可以展示多行数据。之前查找资料的时候&#xff0c;很多用字符串…

封装哈希表

本文旨在讲解哈希表的封装&#xff0c;我们以哈希桶的结构来进行封装unorderedmap/set。要想实现封装哈希表&#xff0c;我们首先得先将哈希表的结构给搭建出来&#xff0c;然后再根据哈希桶的结构进一步封装unorderedmap/set&#xff01; 下面我们先来实现哈希桶的结构&#x…