python之路 《六》函数
---恢复内容开始---
为什么要有函数?
当你的老板要你写一个程序
1 def 函数0():
2 # 如果cpu占用率>90
3 # 发送邮件
4 # 发出警报
5
6 def 函数1():
7 # 如果cpu占用率小于60大于90
8 # 发送邮件
9 # 发出警报
10 def 函数2():
11 # 如果cpu占用率小于60
12 # 发送邮件
13 # 发出警报
现在很多功能在重复,当有写部分需要重复许多便再去敲的话代码重复率就太高了而且代码堆在哪也难看啊
那么现在有两个问题,
1.一个好的程序是要求我们简单明了的这么,这么多一样的堆在一起,更不适合别人看
2.当你要修改代码的时候,你就要把所有的都改了,这样的话程序就太不合理了
所以必须改进
函数是什么?
函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,具体区别,我们后面会讲,编程中的函数在英文中也有很多不同的叫法。在BASIC中叫做subroutine(子过程或子程序),在Pascal中叫做procedure(过程)和function,在C中只有function,在Java里面叫做method。
函数定义
1 def name ():
2 print()
3 return
4 # def +函数名+小括号+冒号
5 # 代码块
6 # 返回值
函数调用
1 name()
函数名加小括号就将函数调用一遍
带参函数:
1 def name (name):
2 print(name)
3 return
4
5 name("name")
仔细看此时括号里面的name就变成的一个变量可以引用
那么此时就称括号里的参数为新参
第五行括号里面的参数将会传进去那么此时称之为实参。
默认参数
1 def stu_register(name,age,country,course):
2 print("----注册学生信息------")
3 print("姓名:",name)
4 print("age:",age)
5 print("国籍:",country)
6 print("课程:",course)
7
8 stu_register("王山炮",22,"CN","python_devops")
9 stu_register("张小小",21,"CN","linux")
10 stu_register("刘老根",25,"CN","linux")
那么此时将会按照顺序为其复制
stu_register(age=66,country='wocao')
这个是关键字赋值,注意关键字参数必须要在默认参数的后面
那么我们在来看一下非固定参数
def wocao(*args):
print(args) wocao('what','the','shit')
结果为
('what', 'the', 'shit')
将会打印一个列表
也就是说*args会将传入的值存储进入一个列表
那么还有一种非固定参数就是**kwargs
def wocao(*args,**kwargs):
print(args)
print('********')
print(kwargs) wocao('what','the','shit',name='curry',age=16,list_all=['what','the','fuck'])
好的现在我们来看一下结果会是怎么样
1 ('what', 'the', 'shit')
2 ********
3 {'name': 'curry', 'age': 16, 'list_all': ['what', 'the', 'fuck']}
结果显而易见了 当使用关键字传值时,**kwargs的作用是将没有的值作为一个字典储存起来。
返回值return
1 def wocao(*args,**kwargs):
2 return kwargs
3 # 我们来做一个数据接收他看看效果
4 data=wocao('what','the','shit',name='curry',age=16,list_all=['what','the','fuck'])
5 print(data)
结果是这样的
{'name': 'curry', 'age': 16, 'list_all': ['what', 'the', 'fuck']}
也就说我们将kwargs作为这个函数的返回值传了出来 如果我定义了一个变量接收
那么返回结果就将被这个函数接收
---恢复内容结束---
python之路 《六》函数的更多相关文章
- Python之路-函数
一.函数是什么: python中函数定义:函数是逻辑结构化和过程化的一种编程方法.定义函数的方法为: def function(): ""The function definiti ...
- python之路——函数进阶
阅读目录 楔子 命名空间和作用域 函数嵌套及作用域链 函数名的本质 闭包 本章小结 楔子 假如有一个函数,实现返回两个数中的较大值: def my_max(x,y): m = x if x> ...
- 百万年薪python之路 -- 函数的动态参数
1.函数的动态参数 1.1 动态接收位置参数 在参数位置用*表示接受任意参数 def eat(*args): print('我想吃',args) eat('蒸羊羔','蒸熊掌','蒸鹿尾儿','烧花鸭 ...
- Python之路-函数基础&局部变量与全局变量&匿名函数&递归函数&高阶函数
一.函数的定义与调用 函数:组织好的.可重复使用的.用户实现单一或者关联功能的代码段.函数能够提高应用的模块性和代码的重复利用率.Python提供了很多内置的函数,比如len等等,另外也可以根据自己的 ...
- python之路函数
1.函数参数,引用 2.lambda表达式 lambda表达式 f1 = lambda a1,a2: a1+a2 3.python的内置函数 abs(),绝对值 all(),循环参数,如果每个元素都为 ...
- 百万年薪python之路 -- 函数名的第一类对象及使用
函数名是一个变量, 但它是一个特殊的变量, 与括号配合可以执行函数的变量 1.1.函数名的内存地址 def func(): print("呵呵") print(func) 结果: ...
- 百万年薪python之路 -- 函数的动态参数练习
1.继续整理函数相关知识点. 2.写函数,接收n个数字,求这些参数数字的和.(动态传参) def func(*args,**kwargs): num_sum = 0 num_dic = [] num ...
- 百万年薪python之路 -- 函数初始
1.函数 1.1 认识函数 定义一个事情或者是功能,等到需要的时候直接去用就好了.那么这里定义东西就是一个函数 函数:对代码块和功能的封装和定义 函数的好处: 减少代码的重复性 代码可读性高 将功能进 ...
- 百万年薪python之路 -- 函数初始练习
1.整理函数相关知识点 2.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者. def func(lst): lst = lst[1::2] return l ...
- 09-Python之路---函数进阶
Python之路---函数进阶️ 程序员三大美德: 懒惰 因为一直致力于减少工作的总工作量. 缺乏耐性 因为一旦让你去做本该计算机完成的事,你将会怒不可遏. 傲慢 因为被荣誉感冲晕头的你会把程序写得让 ...
随机推荐
- P2340 [USACO03FALL]Cow Exhibition G题解
新的奇巧淫技 原题传送门 众所周知,模拟退火是一种很强大的算法,DP很强,但我模拟退火也不虚,很多题你如果不会的话基本可以拿来水很多分.比如这道题,我用模拟退火可以轻松水过(虽然我是足足交了两页才过) ...
- centos8上安装ImageMagick6.9.10并压缩图片生成webp缩略图
一,ImageMagick的作用: ImageMagick 是一个用来创建.编辑.合成图片的软件. 它可以读取.转换.写入多种格式的图片. 功能包括:图片切割.颜色替换.各种效果的应用, 图片的旋转. ...
- pycharm2018.1下载激活(mac平台)
此教程实时更新,请放心使用:如果有新版本出现猪哥都会第一时间尝试激活: pycharm官网下载地址:http://www.jetbrains.com/pycharm/download/ 激活前准备工作 ...
- C# XML解析
摘自:http://www.cnblogs.com/RiseSoft/archive/2012/03/17/2404007.html 之前在项目中处理的都是一些小数据量的XML文件,都是直接用.Net ...
- 实现LNMP架构
LNMP简介 WEB资源类型: 静态资源:服务器端和客户端看到的是一样的 动态资源:服务器端放的是程序,客户端看到的是结果,并不是程序本身 和页面的静或者动没有关系 WEB相关语言 HTML JAVA ...
- JAVA 基于Jusup爬虫
java爬虫核心:httpclient slf4j jsoup slf4j 配置文件log4j.properties log4j.rootlogger=DEBUG,A1log4j.logger.cn. ...
- ASP.NET Core托管运行Quartz.NET作业调度详解
Quartz.NET这么NB的作业调度系统,不会还行? 今天介绍一下Quartz.NET的托管运行,官网传送门. 一.前言 Quartz.NET,按官网上的说法,是一款功能齐全的任务调度系统,从小 ...
- plsql查询中文乱码
1.查看数据库字符集 select userenv('language') from dual 查看数据库字符集 2.在环境变量中添加并设置变量 变量名:NLS_LANG: 变量值:第一步查询的数据库 ...
- redis限频
做法 使用redis的lua脚本功能来限频 在redis中定时刷新系统时间来作为一个全局的时钟 限频脚本: /** * 获取令牌的lua脚本 */ public final static String ...
- MFiX-DEM中的并行碰撞搜索
基于MFiX-19.2.2 DEM并行程序中的颗粒循环 在DEM并行程序中,每个进程只循环该进程包含的颗粒,并且每个进程还有一层ghost cell,用来存放另一个进程发送过来的颗粒信息. 下面添加一 ...