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 = 0for i in str:count += 1print(f"字符串{str}的长度为{count}")
my_len(str)
5.1 基本定义

语法结构:

def 函数名(传入参数):

    函数体return 返回值

调用:函数名(参数)

def printf():print("Hello")printf()

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

5.2 传入参数

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

# 定义函数
def Sub(num1, num2):result = num1 - num2print(f"{num1}-{num2}的结果是{result}")# 调用函数
Sub(10, 5)
  • Sub函数定义中,提供的num1和num2称为形式参数,简称形参。表明函数将要使用2个参数,参数之间用逗号进行分隔。

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

5.3 返回值

语法结构:

def 函数(参数…):

    函数体return 返回值

变量 = 函数(参数)

def Sub(num1, num2):return num1 - num2print("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 Noneret = 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://xiahunao.cn/news/2869869.html

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

相关文章

AI预测福彩3D第10弹【2024年3月16日预测--第2套算法重新开始计算第2次测试】

今天继续开始咱们第2套算法的验证,计划每套算法连续测试10期,达到50%的命中率即为较优的模型,可继续使用。老规矩,先上图表,再下结论~ 最终,经过研判分析,2024年3月16日福彩3D的七码预测结果如下…

深度学习-基于机器学习的情绪分析研究

概要 互联网技术的迅速发展使得社交平台逐渐成为热点事件中社会情感的枢纽。社会热点事件的舆论监管的其中一个重要环节就是能够准确分析民众的社会情绪。本文旨在探索可以基于文本大数据彻底分析民众对热点事件的社会情绪的模型和方法。先是从社交平台上借助文本大数据、对数据…

SQL-Labs靶场“32-33”关通关教程

君衍. 一、32关 GET单引号闭合宽字节注入1、源码分析2、宽字节注入原理3、联合查询注入4、updatexml报错注入5、floor报错注入 二、33关 GET单引号addslashes逃逸注入1、源码分析2、联合查询注入3、updatexml报错注入4、floor报错注入 SQL-Labs靶场通关教程: SQL注入…

【Vite+Ts】自动按需引入Element-Plus

安装插件 cnpm i -D unplugin-vue-components unplugin-auto-import unplugin-element-plus修改vite.config.ts // vite.config.ts import AutoImport from "unplugin-auto-import/vite"; import Components from "unplugin-vue-components/vite"; impor…

SQLite数据库使用指南以及相关API编程

SQLite介绍 SQLite是一种基于C语言开发的轻量级、快速、自包含、高可靠性和全功能的SQL数据库引擎。它是全球范围内使用最为广泛的数据库引擎,被嵌入到所有移动设备和大部分计算机中,并且伴随着无数日常使用的应用程序一起提供。SQLite的文件格式具有稳…

html中如何让网页禁用右键禁止查看源代码

在网页中,辛辛苦苦写的文章,被别人复制粘贴给盗用去另很多站长感到非常无奈,通常大家复制都会使用选取右键复制,或CTRLC等方式,下面介绍几种禁止鼠标右键代码,可减少网页上文章被抄袭的几率,当然…

深入浅出理解 AI 生图模型

引言 众所周知,视频是图片连起来快速播放的,所以Stable Diffusion可能是sora参考的重要模型之一。 随着深度学习和生成模型的发展,扩散模型在生成领域也取得了显著进步。这类扩散模型通常分为扩散过程和逆扩散过程。 扩散过程是对数据&…

SPSS k-均值聚类的 anova分析表解读

from&#xff1a;SPSS K均值聚类&#xff08;k-means&#xff09;和可视化方法 - CollinsLi - 博客园 (cnblogs.com) F值&#xff1a;变量对聚类的贡献 显著性水平&#xff1a;<0.05 则因子显著

整数和浮点数在内存中是如何存储的?

1.整数在内存中的存储 首先数据在内存中都是以二进制的形式存储的&#xff0c;而整数在内存中也是以二进制的形式存储的&#xff0c;而整数的表示形式有三种&#xff0c;分别是源码&#xff0c;反码&#xff0c;补码&#xff0c;而整数在内存中是以补码的形式存放的。 三种表示…

SQLiteC/C++接口详细介绍之sqlite3类(十七)

返回目录&#xff1a;SQLite—免费开源数据库系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;十六&#xff09; 下一篇&#xff1a; SQLiteC/C接口详细介绍之sqlite3类&#xff08;十八&#xff09; ​ 53.sqlite3_trace_v2 函数功能&#x…

element-plus怎么修改表单中的label字体颜色及大小

问题描述&#xff1a; 当我们在vue3中使用element-plus组件库提供的表单组件时&#xff0c;有时我们需要修改表单中label的字体颜色等属性&#xff0c;这是如果直接选中label的class进行修改是不起作用的&#xff0c;我们只需深度选择即可选中并进行修改。 比如&#xff1a; …

GET和POST方法的区别

GET和POST的区别 在我们开发项目的时候常常会在Controller层使用到POST方法或者GET方法&#xff0c;犹豫到底将接口定义为GET方法还是POST方法&#xff1f;那这两者之间有什么区别呢&#xff1f; 看一下官方定义&#xff1a; GET 和 POST 是 HTTP 协议中最常用的两种请求方法…

软考79-上午题-【面向对象技术3-设计模式】-结构型设计模式02

一、组合模式 1-1、意图 将对象组合成树型结构&#xff0c;以表示"部分-整体"的层次结构。Composite使得用户对单个对象和组 合对象的使用具有一致性。 示例&#xff1a;对象&#xff1a;文件、文件夹 1-2、结构 Component 为组合中的对象声明接口&#xff1b;在适…

MacBook使用——彻底卸载并删除软件:NTFS for Mac

问题 之前因MacBook读写NTFS格式移动硬盘&#xff0c;我安装并使用了 Paragon NTFS for Mac &#xff0c;试用期结束后将其从【应用程序】中卸载移除了。但之后每次开机启动时&#xff0c;系统还是会弹出【激活】通知&#xff0c;如下图 解决 Step1、在用户目录下的 Library 目…

Kubernetes 编排系统

Kubernetes 编排系统 Kubernetes&#xff08;简称K8s&#xff09;是一个开源的容器编排平台&#xff0c;用于自动化部署、扩展和管理容器化应用程序。它提供了一种灵活而强大的方式来管理容器化应用程序的生命周期&#xff0c;包括自动化部署、扩展、负载均衡、故障恢复等功能…

01初识Python

一、Python 简介 二、为什么要学Python? 三、Python 安装 四、输出第一条指令 五、总结 一、Python 简介 Python是一种高级编程语言,由Guido van Rossum于1991年创建。它具有简单易学的语法结构,被广泛应用于Web开发、数据科学、人工智能等领域。 Python具有丰富的库…

MySQL安装(Mac系统)

首先要删除本机原有的mysql 停止MySQL服务 sudo /usr/local/mysql/support-files/mysql.server stop不放心可以使用以下命令查询并杀死进程 ps aux | grep mysqld sudo kill <PID>再次尝试停止服务 sudo /usr/local/mysql/support-files/mysql.server stop卸载MySQL&…

蓝桥杯单片机快速开发笔记——PWM

一、原理分析 使用定时器输出PWM&#xff08;脉宽调制&#xff09;信号是通过微控制器的定时器模块来生成一种周期性的脉冲信号&#xff0c;通过控制脉冲的高电平时间&#xff08;占空比&#xff09;来控制输出信号的平均功率。以下是生成PWM信号的基本原理概述&#xff1a; 定…

PCB设计中的MARKER

今天在给板子布局的时候发现了一个这样的东西&#xff0c;名叫MARKER&#xff0c;查了一下这个东西分享一下&#xff1a; 目录 MARKER是什么样的&#xff1f; MARKER的用途&#xff1a; MARKER是必须的吗&#xff1f; MARKER是什么样的&#xff1f; 他在PCB中是这样的&…

力扣每日一题 矩阵中移动的最大次数 DP

Problem: 2684. 矩阵中移动的最大次数 复杂度 ⏰ 时间复杂度: O ( n m ) O(nm) O(nm) &#x1f30e; 空间复杂度: O ( n m ) O(nm) O(nm) Code class Solution { public int maxMoves(int[][] grid){int n grid.length;int m grid[0].length;int[][] f new int[n][m]…