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之路---函数进阶️ 程序员三大美德: 懒惰 因为一直致力于减少工作的总工作量. 缺乏耐性 因为一旦让你去做本该计算机完成的事,你将会怒不可遏. 傲慢 因为被荣誉感冲晕头的你会把程序写得让 ...
随机推荐
- 习题3-5 谜题(Puzzle, ACM/ICPC World Finals 1993, UVa227)
#include<stdio.h> #include<string.h> char s[5][5]; int main() { while(gets(s[0])) { int ...
- 自定义常用input表单元素二:纯css实现自定义radio单选按钮
这是接着上一篇纯css自定义复选框checkbox的第二篇,自定义一个radio单选按钮,同样,采用css伪类和"+"css选择器为思路,下面是预览图: 下面直入主题放代码:HTM ...
- hbase的Java基本操作
hbase的Java基本操作 建表,建列簇操作 private static Connection connection; private static Admin admin; public sta ...
- day70:Vue:Git&路飞学城页面效果
目录 1.Git 2.路飞学城项目页面效果 0.安装elements UI 1.顶部导航栏效果 2.轮播图效果 1.Git 什么是git?分布式版本管理工具 1.git操作 # 1 创建git本地仓库 ...
- 2020主流国产BI产品对比
国产BI软件由于具备较强的本土特性,可以很好地适应国内用户的使用习惯,越来越多被国内用户使用.目前国内BI产品很多,可谓百家争鸣,如何从众多的BI产品中选择适合自己的呢?这里我们对比一下目前国内主流的 ...
- linux 查看nginx的安装路径等信息
做个随笔,记录一下. 想查看nginx的配置文件,但不知道nginx是安装在哪个目录下? ps -ef | grep nginx Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的 ...
- CentOS 环境变量编辑、保存、立即生效的方法
方法一: 该方法只能修改临时配置文件,当每次系统重启后,配置文件将失效 假如我的安装路径如下:/home/oracle/app/oracle/product/11.2.0/dbhome_1/bin 那 ...
- WSL2和CUDA踩坑
WSL2和CUDA踩坑 WSL2里可以直接跑cuda了, 目前(2020年10月) 功能可用, 但bug很多, 不够完善 1. 安装 主要参考: https://docs.nvid ...
- Python合集之Python开发环境在Windows系统里面搭建
在上一个合集里面我们了解到了Python的基础信息及学习了Python对我们有什么用处,那么今天我们来了解一下,Python的开发环境该如何搭建.(注:Python的开发环境可以在Windows.MA ...
- 用匿名内部类实现 Java 同步回调
在一个应用系统中,不论使用何种编程语言,模块之间要进行调用,仅存在三种方式:同步调用.异步调用.回调.本文就其中回调方式进行详细解读,并通过匿名内部类的手段,在最后实现一个同步回调的过程. 一.回调的 ...