当前位置: 首页 > news >正文

python开发基础——day9 函数基础与函数参数

一、初识函数(function)

编程函数!=数学函数,里面的是逻辑,功能,而不是套公式

编程函数的作用实现特定操作的一段代码

你现在请客,每个人都点同样的一份吃的,请100个人
    1.薯条
    2.上校鸡块
    3.可乐
    
那这个时候会用到什么?套餐
出个套餐 美味套餐(薯条,可乐,上校鸡块)

程序把一些会经常用到的代码保存起来,取个有意义的名字,以后要用直接调用就OK

变量:保存一个/多个数据
函数:保存的是一段或者多段代码
    
函数的优点:
    1.遇到重复代码时,可以定义为函数,省事
    2.修改起来比较方便
    
本质就是写好的一些代码 可以实现特定的功能 取个好记的名字保存起来 方便后续使用

二、函数基础

函数的命名规则和变量是一样的
    1.由数字,字母,下划线组成
    2.不能数字开头,不能纯数字,不能有其他的特殊符号
    3.区分大小写
    4.不能用关键字/内置函数
    5.见名知意
    
函数如果没有特别作用,没想好名字,可以取名fun

函数的使用分为两步:
    1.定义函数
    2.调用函数 

2.1定义函数&调用函数

1.定义函数
    def 函数名():
        代码内容
    def fun():
        print('好好学习')  
        
调用函数:在函数名后面加个括号,就是调用函数
    函数名()
    fun()
    
实例:
    def fun():
        print('好好学习')

    fun()
    
2.声明空函数,还没有想好内容,就先写个pass
    def 函数名():
        pass
    def fun2():
        pass

三、函数参数

def fun():
    print(77+66)

函数里的数据如果是一成不变的,那很鸡肋,函数会接触到各种各样的数据,函数可以根据情况来接收一些数据,并在函数里处理

让函数里的内容可以更加灵活,数据不是定死的-->函数参数

形参-->没有具体的数据,只是先占位置-->定义阶段
实参-->有具体的数据,在运行时取代形参-->调用阶段

声明带参函数:
    def 函数名(形参名):
        代码内容
        
    def fun(money):
        print(f'我最喜欢{money}了')  

调用带参函数
    函数名(实参)
    
    fun(50)
    fun(100)
    fun('一百万')
    
一个萝卜一个坑,不要多,也不要少,你定义了几个形参,就传几个实参,否则会报错

3.1必备参数

有几个形参,就传几个实参,数量要一致
定义时:
    def 函数名(形参1,形参2):
        代码内容
        
调用时:
    函数名(实参1,实参2)
    
def add1(num1,num2):
    print(num1+num2)

add1(70,20) #少写多写都会报错

3.2默认参数

在声明参数的时候就提前赋好值,作为一个默认的参数

定义时:
    def 函数名(形参1,形参2=值):
        代码内容
        
调用时:
    函数名(实参1)
    
def fun(money,people='伊尔'):
    print(f'{people}最喜欢{money}了')

fun(100)
fun(50)
fun(50,'张三') #不会报错,但是张三会覆盖原来的值伊尔

注意:赋值的默认参数要写在最后面,不能放在前面

3.3不定长参数(1)

有的时候可能出现不清楚这个函数会接收多少个参数,这时候就用不定长参数1
不定长参数1可以一次性接受多个数据,接收到的数据为元组类型
不定参数的表现形式为:*
参数名是不固定的,但是正常规范命名都是取名*args

定义时:
    def 函数名(*agrs):
        代码内容
        
调用时:
    函数名(实参1,实参2,实参3,...)
    
def room(*args):
    print(args)
    print(type(args)) #<class 'tuple'>
    print(args[0])

room('张三',17,19,10.6,'王五')

def message(name,age,*args):
    print(name) #伊尔
    print(age) #18
    print(args) #('张三', 17, 19, 10.6, '王五', '李四')
    print(args[2:5]) #(19, 10.6, '王五')

message('伊尔',18,'张三',17,19,10.6,'王五','李四')

3.4不定长参数(2)

可以一次性接受多个数据,接收的数据类型为键值对,得到的数据为字典类型
不定长参数2的表现形式为:**
参数名同样不固定,但最好叫**kwargs

定义时:
    def 函数名(**kwargs):
        代码内容
        
调用时:
    函数名(键=值,键=值,键=值,...) #键名不用加引号
    
def fun2(**kwargs):
    print(kwargs)
    print(type(kwargs)) #<class 'dict'>

fun2(name='伊尔',age=18)

def grade(c,m,**kwargs):
    print(c)
    print(m)
    print(kwargs)
grade(98,99,name='伊尔',age=18)

def fun3(a,b,*args,**kwargs):
    print(a*b) #50
    print(args) #(15, 20, 7.6)
    print(kwargs)  #{'name': '伊尔', 'java': 100}

fun3(5,10,15,20,7.6,name='伊尔',java=100)
    
注意:不定长参数1要在不定长参数2前面

四、返回值(return)

如果函数内只是单纯的写print,代表着这个函数没有定义返回值,如果一个函数没有定义返回值的话,函数的返回值默认为空

def add1(num1,num2):
    print(num1+num2) #这个函数没有定义返回值

add1(70,520)
a=add1(70,520)
print(a) #函数没有定义返回值的话就为None
# print(type(a))
# print(a+10)

如果在函数里,一个数据如果是print出来,那就是只能看,不能用
如果想要使用这个数据,需要的是return返回,而不是print输出

return 返回值
把值返回给函数,可以用来使用,返回值一般是结合函数参数来使用

1.定义一个带有返回值的函数
    def 函数名():
        return 返回值数据
    
2.输出返回值内容:把函数名() 用print包裹起来 这个动作就会达到两个目的
        1.调用函数
        2.输出函数的返回值

例:
def fun(a,b):
    return a+b

fun(6, 10) #直接调用函数,不会输出返回值
print(fun(6, 10)) #所以要打印返回值需要print包裹起来

返回值可以有多个,并且也可以输出多个返回值
细节:
    1.返回值的类型是不限的,int/float/list/dict...都可以,也可以返回一个函数
    2.返回值的数量是不限的,可以返回多个数据,返回多个数据得到的数据类型为元组类型
    def 函数名():
        return 返回值1,返回值2
    
    def fun3():
        return '好好学习',1,8.0,(1,2),[1,2]
    res2=fun3()
    print(type(res2)) #<class 'tuple'>
    print(fun3())
    
得到的返回值还有一种用法是可以把函数返回值赋值给变量
    变量名=函数名() #把函数返回值赋值给变量
    def fun4(a,b):
        return a*b

    res=fun4(3,5) #把函数fun4的返回值赋值给变量res
    print(res) #15
    print(res+10) #返回值可以拿来用 所以可以+10

注意:
    在return后面的代码是不会执行的,因为函数执行到return就会结束
    def talk():
        print('好好学习')
        return '天天向上'
        print('hhhhh')

    # talk() #好好学习
    print(talk()) #先调用函数打印好好学习,其次打印返回值向上
    print(talk) #打印函数名 显示出的是内存地址

五、内置函数(基础篇)

python自带的一些功能函数
序列类型/散列类型/数据类型转换方法

特点:
    1.都有一个小括号
    2.每个函数都有自己的功能
    
print() : 输出语句
input(): 输入语句
type() : 获取数据类型
    
len(): 获取数据长度(里面有多少个元素)
min(): 获取最小值
max(): 获取最大值
sum():  获取数据的和
    
demo=' 好好学习'
print(max(li))
print(min(li))
print(sum(li))
print(len(li))
print(len(demo))

六、文档字符串

基于函数写的注释,看起来和注释差不多,但是可以被调用,在学函数时,更推荐使用文档字符串,里面可以写
    1.这个函数是干嘛用的
    2.这个函数参数都是干嘛用的
    3.返回值是干嘛用的
    
输出文档字符串:
    函数名.__doc__
    
def fun5(a,b):
    '''
    我是做加法运算
    :param a: float型
    :param b: float型
    :return:a+b的结果
    '''
    return a+b

print(fun5.__doc__)
print(print.__doc__)

七、练习

1.定义一个函数,内容为输出一句('人生苦短,我选python'),并调用该函数

2.定义一个函数,该函数在调用的时候会接收2个数值数据,返回值为返回里面较大的值,并调用输出

3.定义一个函数,该函数在调用的时候会接收一个元组数据,元组里的值都为数值,返回值为该参数的'长度'以及'元组里数值的和',并调用输出

4.定义一个函数,该函数在调用的时候会接收一个字符串数据为你的名字,在声明的时候有个默认参数值为'多喝热水',函数功能为输出一句 '<你的名字>要<好好学习>' ,并调用输出

5.通过函数实现一个计算器(加减乘除)
    小提醒:把加减乘除分别写成4个函数,让用户选择对应功能,数值也同样由用户输入(计算两个值之间的加减乘除的操作)

相关文章:

python开发基础——day9 函数基础与函数参数

一、初识函数(function) 编程函数!数学函数&#xff0c;里面的是逻辑&#xff0c;功能&#xff0c;而不是套公式 编程函数的作用实现特定操作的一段代码 你现在请客&#xff0c;每个人都点同样的一份吃的&#xff0c;请100个人 1.薯条 2.上校鸡块 3.可乐 那…...

STM32——使用TIM输出比较产生PWM波形控制舵机转角

一、输出比较简介&#xff1a; 只有高级定时器和通用寄存器才有输入捕获/输出比较电路&#xff0c;他们有四个CCR&#xff08;捕获/比较寄存器&#xff09;&#xff0c;共用一个CNT&#xff08;计数器&#xff09;&#xff0c;而输出比较功能是用来输出PWM波形的。 红圈部分…...

第十五章 集合(set)(Python)

文章目录 前言一、集合 前言 集合&#xff08;set&#xff09;是一个无序的不重复元素序列。 一、集合 set {1, 2, 3, 4}...

面试-javaIO机制

1.BIO BIO&#xff1a;是传统的javaIO以及部分java.net下部分接口和类。例如&#xff0c;socket,http等&#xff0c;因为网络通信同样是IO行为。传统IO基于字节流和字符流进行操作。提供了我们最熟悉的IO功能&#xff0c;譬如基于字节流的InputStream 和OutputStream.基于字符流…...

在.NET Core中,config和ConfigureServices的区别和作用

在.NET Core中&#xff0c;config和ConfigureServices是两个不同的概念&#xff0c;它们在应用程序的启动和配置过程中扮演着不同的角色。 ConfigureServices&#xff1a;这是ASP.NET Core应用程序中的一个方法&#xff0c;位于Startup类的内部。它的作用是配置依赖注入(DI)容器…...

App Inventor 2 如何实现多个定时功能?

1、可以使用多个“计时器”组件。 2、也可以用一个计时器&#xff0c;定时一分钟。也就是一分钟就会触发一次事件执行&#xff0c;定义一个全局数字变量&#xff0c;在事件中递增&#xff0c;用逻辑判断这个变量的值即可完成多个想要定时的任务(о∀о) 代码块请参考&#xf…...

技术驱动的音乐变革:AI带来的产业重塑

&#x1f4d1;引言 近一个月来&#xff0c;随着几款音乐大模型的轮番上线&#xff0c;AI在音乐产业的角色迅速扩大。这些模型不仅将音乐创作的门槛降至前所未有的低点&#xff0c;还引发了一场关于AI是否会彻底颠覆音乐行业的激烈讨论。从初期的兴奋到现在的理性审视&#xff0…...

重生之我要学后端0--HTTP协议和RESTful APIs

http和RESTful APIs HTTP协议RESTful APIs设计RESTful API设计实例 HTTP协议 HTTP&#xff08;超文本传输协议&#xff09;是用于分布式、协作式和超媒体信息系统的应用层协议。它是网页数据通讯的基础。工作原理简述如下&#xff1a; 客户端请求&#xff08;Request&#xf…...

深度之眼(二十八)——神经网络基础知识(三)-卷积神经网络

文章目录 一、前言二、卷积操作2.1 填充&#xff08;padding&#xff09;2.2 步长2.3 输出特征图尺寸计算2.4 多通道卷积 三、池化操作四、Lenet-5及CNN结构进化史4.1 Lenet-5 一、前言 卷积神经网络–AlexNet(最牛)-2012 Lenet-5-大规模商用&#xff08;1989&#xff09; 二、…...

AI Infra简单记录

向量数据库的作用 1. 在AI大模型训练过程中&#xff0c;向量数据库可以有效提升数据检索、特征提取等任务的效率。 2、在AI大模型推理过程中&#xff0c;向量数据库为大模型提供外挂知识库&#xff0c;提升模型时效性与准确性&#xff0c;提供缓存能力&#xff0c;减少调用开…...

三英战吕布 | 第5集 | 温酒斩华雄 | 竖子不足与谋 | 三国演义 | 逐鹿群雄

&#x1f64b;大家好&#xff01;我是毛毛张! &#x1f308;个人首页&#xff1a; 神马都会亿点点的毛毛张 &#x1f4cc;这篇博客分享的是《三国演义》文学剧本第Ⅰ部分《群雄逐鹿》的第5️⃣集《三英战吕布》的经典语句和文学剧本全集台词 文章目录 1.经典语句2.文学剧本台…...

【C语言】自定义类型:结构体

目录 1. 结构体类型的声明 1.1. 结构的一般声明 1.2. 结构的特殊声明 2. 结构体变量的创建和初始化 3. 结构体的自引用 4. 结构体内存对齐 4.1. 对其规则&#xff08;面试考点&#xff09; 4.2. 为什么存在内存对齐&#xff1f; 4.2.1. 平台原因&#xff08;移植…...

算法金 | 决策树、随机森林、bagging、boosting、Adaboost、GBDT、XGBoost 算法大全

大侠幸会&#xff0c;在下全网同名「算法金」 0 基础转 AI 上岸&#xff0c;多个算法赛 Top 「日更万日&#xff0c;让更多人享受智能乐趣」 决策树是一种简单直观的机器学习算法&#xff0c;它广泛应用于分类和回归问题中。它的核心思想是将复杂的决策过程分解成一系列简单的决…...

[每周一更]-(第103期):GIT初始化子模块

文章目录 初始化和更新所有子模块分步骤操作1. 克隆包含子模块的仓库2. 初始化子模块3. 更新子模块 查看子模块状态提交子模块的更改处理子模块路径错误的问题 该问题的缘由是因为&#xff1a;在写某些代码的时候&#xff0c;仓库中有些文件夹&#xff0c;只提交了文件夹名称到…...

单例模式---线程安全实现

文章目录 1.单例模式的特点&#x1f60a;2.单例模式两种实现&#x1f923;&#x1f917;&#x1f60a;2.1 饿汉式2.2 懒汉式 3.传统单例模式的线程安全问题4.解决方法4.1静态局部变量4.2加锁4.3双重检查锁&#xff08;DCL&#xff09;4.4pthread_once 1.单例模式的特点&#x1…...

Agent技术在现代软件开发与应用中的探索

一、引言 随着计算机科学的快速发展&#xff0c;Agent技术作为人工智能和分布式计算领域的重要分支&#xff0c;已经渗透到软件开发的各个方面。Agent技术通过赋予软件实体自主性和交互性&#xff0c;使得软件系统能够更加智能、灵活地响应环境变化和用户需求。本文将对Agent技…...

c语言中extern定义和引用其他文件的变量,(sublime text)单独一个文件编译不会成功

关键字extern的作用 这个很常见的都知道是定义一个外部变量或函数&#xff0c;但并不是简单的建立两个文件&#xff0c;然后在用extern 定义在另一个非最初定义变量的文件里 区分文件和编译运行的文件 例如&#xff0c;一个文件夹里有文件a.c和文件b.c,在sublime text中直接…...

时序数据中的孤立野点、异常值识别及处理方法

目录 参考资料 对时序数据做差分&#xff1b; 参考资料 [1] 离群点&#xff08;孤立点、异常值&#xff09;检测方法 2017.6&#xff1b;...

JetBrains PyCharm 2024 mac/win版编程艺术,智慧新篇

JetBrains PyCharm 2024是一款功能强大的Python集成开发环境(IDE)&#xff0c;专为提升开发者的编程效率和体验而设计。这款IDE不仅继承了前代版本的优秀特性&#xff0c;还在多个方面进行了创新和改进&#xff0c;为Python开发者带来了全新的工作体验。 JetBrains PyCharm 20…...

MCU解决800V电动汽车牵引逆变器的常见设计挑战的3种方式

电动汽车 (EV) 牵引逆变器是电动汽车的。它将高压电池的直流电转换为多相&#xff08;通常为三相&#xff09;交流电以驱动牵引电机&#xff0c;并控制制动产生的能量再生。电动汽车电子产品正在从 400V 转向 800V 架构&#xff0c;这有望实现&#xff1a; 快速充电 – 在相同…...

《逆向投资 邓普顿的长赢投资法》

接下来跟大家一起学习《逆向投资 邓普顿的长赢投资法》。邓普顿被誉为20世纪最伟大的选股人之一&#xff0c;我非常确信林奇在他的《战胜华尔街》里也提到了邓普顿&#xff0c;可惜实在想不起来林奇是怎么形容邓普顿的。 邓普顿拥有70多年的投资生涯&#xff0c;在他晚年时曾总…...

C++中main函数的参数、返回值分别什么意思?main函数返回值跟普通函数返回值一样吗?

在C中&#xff0c;main函数是程序的入口点&#xff0c;即程序开始执行的地方。main函数可以有两种形式的签名&#xff08;signature&#xff09;&#xff1a; 标准的main函数&#xff0c;不接受任何参数&#xff0c;也不返回任何值&#xff1a; int main() {// 代码... }带有参…...

Java程序员学习Go开发Higress的WASM插件

Java程序员学习Go开发Higress的WASM插件 契机 ⚙ 今年天池大赛有higress相关挑战&#xff0c;研究一下。之前没搞过go&#xff0c;踩了很多坑&#xff0c;最主要的就是tinygo打包&#xff0c;多方寻求解决无果&#xff0c;结论是tinygo0.32go1.19无法在macos arm架构下打包。…...

Python入门-基本数据类型-数字类型

数字类型是指表示数字或者数值的数据类型。在Python语言中&#xff0c;数字类型有整型(int)、 浮点型(float)、复数型(complex)&#xff0c;对应数学中的整数、小数和复数&#xff0c;此外还有一种特殊 的整型&#xff0c;即布尔型(bool)。本节将对这4种数字类型进行详细介绍。…...

小程序web-view无法打开该页面的解决方法

问题&#xff1a;开发者工具可以正常打开&#xff0c;正式上线版小程序使用 web-view 组件测试时提示&#xff1a;“无法打开该页面&#xff0c;不支持打开 https://xxxxxx&#xff0c;请在“小程序右上角更多->反馈与投诉”中和开发者反馈。” 解决方法&#xff1a;需要配…...

海外媒体发稿:媒体宣发套餐的作用分享-华媒舍

一、神奇媒体宣发套餐 神奇媒体宣发套餐是一项专业的多媒体宣传推广服务&#xff0c;旨在帮助企业、个人快速提升品牌知名度和曝光度。它通过全面覆盖主流媒体、社交网络以及各大网络平台&#xff0c;将您的宣传信息传递给广泛的受众群体&#xff0c;实现全方位、多角度的宣传…...

【R语言】plot输出窗口大小的控制

如果需要输出png格式的图片并设置dpi&#xff0c;可采用以下代码 png("A1.png",width 10.09, height 10.35, units "in",res 300) 为了匹配对应的窗口大小&#xff0c;在输出的时候保持宽度和高度一致即可&#xff0c;步骤如下&#xff1a; 如上的“10…...

【shell脚本实战案例】数据磁盘初始化

文章目录 一、案例应用场景二、案例需求三、案例算法四、代码实现五、实现验证 &#x1f308;你好呀&#xff01;我是 山顶风景独好 &#x1f388;欢迎踏入我的博客世界&#xff0c;能与您在此邂逅&#xff0c;真是缘分使然&#xff01;&#x1f60a; &#x1f338;愿您在此停留…...

1.7 计算机体系结构分类

Flynn分类法 CISC与RISC...

数据结构之B树:深入了解与应用

目录 1. B树的基本概念 1.1 B树的定义 1.2 B树的性质 1.3 B树的阶 2. B树的结构 2.1 节点结构 2.2 节点分裂 2.3 节点合并 3. B树的基本操作 3.1 搜索 3.2 插入 3.3 删除 4. B树的应用 4.1 数据库索引 4.2 文件系统 4.3 内存管理 5. B树的优势和局限 5.1 优势…...

wordpress post fonts/营销网站建设服务

http://cocobear.info/blog/2009/01/16/use-python-deal-with-excel/ 使用Python处理Excel表格 2009年01月16日 给俺的boss写的一个小工具&#xff0c;使用Python对Excel进行统计&#xff0c;然后把结束生成一个新的Excel表格&#xff0c;使用到了xlrd和pyExcelerator两个库。 …...

宁波网站排名方法/seo免费资源大全

Android 图表开源框架之MPAndroidChart LineChart折线图&#xff08;一&#xff09; Android 图表开源框架之MPAndroidChart LineChart折线图&#xff08;二&#xff09; Android 图表开源框架之MPAndroidChart LineChart折线图&#xff08;三&#xff09; Android 图表开源…...

调用wordpress数据/网络推广的优势

核心提示&#xff1a;WMS是仓库管理系统(WarehouseManagement System) 的缩写&#xff0c;仓库管理系统是通过入库业务、出库业务、仓库调拨、库存调拨和虚仓管理等功能&#xff0c;实现完善的企业仓储信息管理。现代医药物流WMS功能需求又有什么特殊之处呢&#xff1f;WMS一般…...

怎么做微网站/免费制作网页平台

一个类型允许定义多个实例构造器&#xff0c;在使用过程中确实是十分方便的。但是&#xff0c;在定义这些构造器时&#xff0c;如果稍不留神&#xff0c;可能就使你的代码编译后产生了好多不必要的垃圾&#xff0c;增加了程序集的大小&#xff0c;也不够简洁。 例如&#xff1a…...

去成都旅游攻略及费用/太原网站建设方案优化

【Updated by yepeng 2013-9-4&#xff1a; 部分调研结果分析】近期&#xff0c;IT168发起了一个2013年SOC安全管理平台应用状况调查&#xff0c;欢迎大家前往参与。导语&#xff1b; 近几年来&#xff0c;随着企业安全产品部署的越来越多&#xff0c;从而导致了企业对于IT人…...

网页翻页电子书制作模板/关键词优化搜索排名

在React 组件设计实践总结 03 - 样式的管理一文中吹了一波 styled-components 后&#xff0c;本文想深入来了解一下 styled-components 的原理. 如果你对 styled-components 还不了解&#xff0c;建议先阅读一下官方文档或前面的文章. 本文基于 styled-components v4.13 版本 目…...