Python 无废话-基础知识函数详解

函数定义

函数是一段可重复使用的代码块,用于实现特定的功能

类似的前面已学过print(),len(),input(),str(),list(),tuple()等内置函数

自定义函数

内置函数是python类库的已定义好的函数,如果某些功能不能满足时,需要我们自定义函数,组织好代码,重复使用。

函数的定义结构

def 函数名(参数1, 参数2, ...):

          # 函数体 代码块

         return 返回值

函数调用

函数名(参数1, 参数2, ...)

语法解析

1)def 关键字用于定义 函数
2)函数名 是你给函数起的名字,应该符合Python命名 规范
3)(参数1, 参数2, ...) 是函数的参数列表 ,参数 是你传递给函数的输入
4)函数 体 是包含在函数内部的一系列语句和 操作 , 函数的实际执行 逻辑
5)代码块 是函数体内的一段缩进的代码,用于表示函数体内的代码 范围
6)return 语句用于指定函数的返回值 , 可以选择性地返回一个或多个值

动手自定义函数 

实现len自定义函数

函数参数

函数参数是用于接收函数调用时传递的数据或变量。在Python中,函数参数有多种类型,包括以下几种:

1)位置参数(Positional Arguments) :位置参数 按照定义时的顺序来传递和接收,调用函数时必须按照参数的顺序传递对应的值。

def add(a, b):

         return a + b

result = add(3, 5)

print(result)

2)默认参数(Default Arguments):函数定义时就已经赋予了一个默认值,如果调用函数时没有传递该参数的值,则会使用默认值。

def greet(name, message="Hello"):

        print(message, name)

greet(李小龙) # 输出:李小龙

greet(李小龙, “Hi”) # 输出:Hi 李小龙

3)关键字参数(Keyword Arguments):关键字参数是根据参数名来传递和接收的,不需要按照位置顺序

def multiply(a, b):

           return a * b

result = multiply(b=8, a=2)

 print(result) # 输出16

4)不定长参数:

    *args 参数:用于接收不定数量的位置参数,传递的参数会被封装成一个元组(tuple)

    **kwargs 参数:用于接收不定数量的关键字参数,传递的参数会被封装成一个字典(dictionary)

def add_numbers(*args):

               sum = 0

               for num in args:

                     sum += num

return sum

result = add_numbers(1, 2, 3, 4, 5)

print(result) # 输出15

def print_person_info(**kwargs):

  for key, value in kwargs.items():

  print(key + ": " + value)

# 输出: # name:李小龙# age: 25 # city: Beijing

print_person_info(name="李小龙", age="25", city="佛山")

函数返回值

一般来说,函数调用求值的结果,称为函数的“返回值”,函数可以通过使用关键字return来返回一个值或多个值。

函数返回值

局部变量&全局变量

局部变量是在函数内部定义并且只能在函数内部使用的变量。其作用范围被限制在函数内部,函数执行完毕后,局部变量会被销毁。局部变量只能在所属的函数内访问,其他函数无法直接访问该变量。

全局变量是在函数外部定义的变量,其可以在函数内部和外部访问。全局变量的作用范围是整个程序,在任何地方都可以使用。但是,在函数内部如果要修改全局变量的值,需要用到global关键字

函数嵌套

函数嵌套指的是在一个函数内部定义另一个函数。这种嵌套定义的函数称为内部函数或嵌套函数。

函数嵌套在Python中有以下几个特点:

1. 内部函数可以访问外部函数的局部变量,但外部函数不能访问内部函数的局部变量。这种特性被称为 " 闭包 "
2. 内部函数可以直接使用外部函数的参数。
3. 内部函数可以访问外部函数的命名空间,即内部函数可以使用外部函数的变量和定义的其他函数。
4. 通过函数嵌套可以实现代码的模块化和封装,提高代码的可读性和重用性。

lambda匿名函数

匿名函数,也称为lambda函数,在Python中是一种特殊的函数形式,可以在没有定义函数名称的情况下创建一个函数。它通常用于只在某个函数内部使用一次的简单函数。

匿名函数的定义语法如下:

lambda 参数列表: 表达式

参数列表是匿名函数的参数,可以是零个或多个参数,多个参数之间使用逗号分隔。表达式是匿名函数的执行体,表示对参数进行计算或操作的逻辑。

求两个数的和

sum = lambda x, y: x + y

print(sum(3, 5)) # 输出8

递归函数

递归函数是一种通过自身调用来解决问题的函数。可以使用递归来实现一个函数调用自身的过程。

def factorial(n):

    # 基线条件

    if n == 0:

        return 1

    # 递归步骤

    return n * factorial(n - 1)

递归函数factorial计算一个整数n的阶乘。当n为0时,满足基线条件,函数直接返回结果1。否则,递归调用factorial(n-1)来解决规模更小的子问题,然后将结果与n相乘并返回。

注意,在使用递归函数时,需要确保递归能够终止,即基线条件一定会被满足。否则,递归函数将无限循环调用,导致程序崩溃。

函数总结

函数是一段封装了特定功能的可重复使用的代码块。通过函数,我们可以将代码模块化,提高代码的可读性、可维护性和复用性。

函数可以存在于模块中,通过import语句导入并使用。

Python标准库和第三方库提供了大量的函数,可以用于各种任务和领域。

通过合理地使用函数,我们可以提高代码的复用性和可维护性。函数使得代码结构更清晰、可读性更高,并且可以将复杂的问题分解为简单的子问题,提供了更好的代码组织和管理方式。

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

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

相关文章

网页版”高德地图“如何设置默认城市?

问题: 每次打开网页版高德地图时默认定位的都是“北京”,想设置起始点为目前本人所在城市,烦恼的是高德地图默认的初始位置是北京。 解决: 目前网页版高德地图暂不支持设置起始点,打开默认都是北京,只能将…

假期题目整合

1. 下载解压题目查看即可 典型的猪圈密码只需要照着输入字符解开即可得到答案 2. 冷门类型的密码题型,需要特意去找相应的解题思路,直接百度搜索天干地支解密即可 3. 一眼能出思路他已经给了篱笆墙的提示提示你是栅栏密码对应解密即可 4. 最简单的社会主…

SLAM面试笔记(8) — 计算机视觉面试题

目录 问题1:目标检测的算法分类 问题2:卷积神经网络的组成 问题3:输入层的作用 问题4:卷积层作用 问题5:卷积核类型 问题6:11卷积核作用 问题7:卷积核是否越大越好 问题8:棋…

纯css实现3D鼠标跟随倾斜

老规矩先上图 为什么今天会想起来整这个呢?这是因为和我朋友吵架, 就是关于这个效果的,就是这个 卡片懸停毛玻璃效果, 我朋友认为纯css也能写, 我则坦言他就是在放狗屁,这种跟随鼠标的3D效果要怎么可能能用纯css写, 然后吵着吵着发现,欸,好像真能用css写哦,我以前还写过这种…

大华城市安防系统平台任意文件下载漏洞

一、漏洞描述 大华城市安防监控系统平台是一款集视频、报警、存储、管理于一体的综合安防解决方案。该平台支持多种接入方式,包括网络视频、模拟视频、数字视频、IP电话、对讲机等。此外,该平台还支持多种报警方式,包括移动侦测、区域入侵、…

7 航空公司客户价值分析

第7章 航空公司客户价值分析 7.1 了解航空公司现状与客户价值分析7.1.1 了解航空公司现状7.1.2 认识客户价值分析7.1.3 熟悉航空客户价值分析的步骤与流程 7.2 预处理航空客户数据7.2.1 处理数据缺失值与异常值7.2.2 构建航空客户价值分析的关键特征1. RFM模型介绍2. RFM模型结…

PyTorch入门之【AlexNet】

参考文献:https://www.bilibili.com/video/BV1DP411C7Bw/?spm_id_from333.999.0.0&vd_source98d31d5c9db8c0021988f2c2c25a9620 AlexNet 是一个经典的卷积神经网络模型,用于图像分类任务。 目录 大纲dataloadermodeltraintest 大纲 各个文件的作用&…

通过ElementUi在Vue搭建的项目中实现CRUD

🏅我是默,一个在CSDN分享笔记的博主。📚📚 🌟在这里,我要推荐给大家我的专栏《Vue》。🎯🎯 🚀无论你是编程小白,还是有一定基础的程序员,这个专栏…

摄影后期图像编辑软件Lightroom Classic 2023 mac中文特点介绍

Lightroom Classic 2023 mac是一款图像处理软件,是数字摄影后期制作的重要工具之一,lrc2023 mac适合数字摄影后期制作、摄影师、设计师等专业人士使用。 Lightroom Classic 2023 mac软件特点 高效的图像管理:Lightroom Classic提供了强大的图…

WPF 实现点击按钮跳转页面功能

方法1. 配置环境 首先添加prism依赖项&#xff0c;配置好所有文件。需要配置的有两个文件&#xff1a;App.xaml.cs和App.xaml App.xaml.cs using System.Data; using System.Linq; using System.Threading.Tasks; using System.Windows;namespace PrismDemo {/// <summa…

输入电压转化为电流性 5~20mA方案

输入电压转化为电流性 5~20mA方案 方案一方案二方案三 方案一 XTR111是一款精密的电压-电流转换器是最广泛应用之一。原因有二&#xff1a;一是线性度非常好、二是价格便宜。总结成一点&#xff0c;就是性价比高。 典型电路 最终电路 Z1二极管处输出电流表达式&#xff1a;…

【Python】读取显示pgm图像文件

文章目录 零. 前言一. pgm基本概念二. pgm基本信息读取三. pgm图像渲染四. 代码优化 零. 前言 这学期要学多媒体信息隐藏对抗&#xff0c;发现其中的图像数据集文件都是pgm文件形式的。虽然是图像文件&#xff0c;但是却不能直接通过图像查看器来打开&#xff0c;上网一搜&…

1、内核加载模块

一、静态加载 1、新功能源码与内核源码一起编译进uImage文件内 新功能源码与Linux内核源码在同一目录结构下在linux-3.14/drivers/char/目录下编写hello.c文件&#xff0c;内容如下 #include <linux/module.h> #include <linux/kernel.h>int __init myhello_ini…

英语四六级高频核心词(故事版)

第一组&#xff1a;" A Century of Community Effort to Improve Quality of Life and Climate" In the early years of the 20th century, a small community found itself facing a decade of challenges. The most pressing issue was the mental quality of life…

理解C++强制类型转换

理解C强制类型转换 文章目录 理解C强制类型转换理解C强制转换运算符1 static_cast1.1. static_cast用于内置数据类型之间的转换1.2 用于指针之间的转换 1.3 用于基类与派生类之间的转换2. const_cast2.1示例12.2 示例2——this指针 3.reinterpret_cast4.dynamic_cast C认为C风格…

多普勒频率相关内容介绍

图1 多普勒效应 1、径向速度 径向速度是作用于雷达或远离雷达的速度的一部分。 图2 不同的速度 2、喷气发动机调制 JEM是涡轮机的压缩机叶片的旋转的多普勒频率。 3、多普勒困境 最大无模糊范围需要尽可能低的PRF&#xff1b; 最大无模糊速度需要尽可能高的PRF&#xff1b…

国庆看坚如磐石

坚如磐石上映了&#xff0c;可以在爱奇艺观看。 而博主在使用蓝牙耳机连接电脑的过程中&#xff0c;发现没有蓝牙开启选项&#xff0c;并且在服务的设备管理器中也没有找到&#xff0c;很明显这是缺少驱动导致的&#xff0c;因此便去联想官方网站下载对应的驱动。 这里可以输入…

【LLM】主流大模型体验(文心一言 科大讯飞 字节豆包 百川 阿里通义千问 商汤商量)

note 智谱AI体验百度文心一言体验科大讯飞大模型体验字节豆包百川智能大模型阿里通义千问商汤商量简要分析&#xff1a;仅从测试“老婆饼为啥没有老婆”这个问题的结果来看&#xff0c;chatglm分点作答有条理&#xff08;但第三点略有逻辑问题&#xff09;&#xff1b;字节豆包…

数据结构与算法(四):哈希表

参考引用 Hello 算法 Github&#xff1a;hello-algo 1. 哈希表 1.1 哈希表概述 哈希表&#xff08;hash table&#xff09;&#xff0c;又称散列表&#xff0c;其通过建立键 key 与值 value 之间的映射&#xff0c;实现高效的元素查询 具体而言&#xff0c;向哈希表输入一个键…

STM32复习笔记(四):看门狗

目录 &#xff08;一&#xff09;简介 &#xff08;二&#xff09;IWDG IWDG的CUBEMX工程配置 IWDG相关函数&#xff08;非常少&#xff0c;所以直接贴上来&#xff09;&#xff1a; &#xff08;三&#xff09;WWDG &#xff08;一&#xff09;简介 看门狗分为独立看门…