为何要用函数:

1、解决代码重用的问题

2、提高代码的可维护性,统一维护

3、程序的组织结构清晰,可读性强

定义函数

先定义后使用!!!

def funcname(arg1,arg2,.....)  #funcname = 函数体

“描述信息”

函数体

return value

定义无参函数   无返回值

def foo()

print("foo")

定义有参函数   接受外部传入的值,有return 返回一个值

def my_sum(x,y)

return x+y

定义空函数    pass

调用函数

语句形式:foo()

表达式形式:res=10*my_sum(1,2)

函数调用作为另外一个函数的参数:print(my_sum(1,2))

函数返回值

不写return ----->None

return 一个值---->这个值

return 多个值 -----> 由这多个值组成的元组

函数的参数

形参:定义函数时候用的参数(命名)

实参:调用函数时候用的参数(实数) 也可以定义变量值再调用函数

my_sum(1,2)

a=1,b=2

my_sum(a,b)

实参在函数调用的过程中有效,过了就无效!

从实参的角度:

按位置传值 my_sum(1,2)

按关键字传值 my_sum(y=1,x=2)

混合传值 my_sum(1,y=2)

从形参角度:

位置参数: def foo(x,y,z) (函数变化比较多)

默认参数: def foo(x,y=1)(函数变化不多,调用次数不多)

什么时候用?

二者的位置排列?

二者的特性?

*args  def foo(x,*args)

按位置传值,多余的值被*接收,组成元组的形式

**kwargs  def  foo(x,**kwargs)

按关键字传值,多余的值被**接收,组成字典的形式

*args 接收元组,列表,字符串,集合,输出是元组
**kwargs 接收字典,输出也是字典

def foo(x,*args,**kwargs)

foo(1,2,3,4,5,6,a=1,b=2,c=3)

x=1

args=(2,3,4,5,6)

kwargs={"a":1,"b":2,"c":3}

Py修行路 python基础 (八)函数(随时更改)的更多相关文章

  1. Py修行路 python基础 (二十三)模块与包

    一.模块 1)定义: 模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 2)为何要用模块: 退出python解释器然后重新进入,那之前定义的函数或者变量都将丢失,因 ...

  2. Py修行路 python基础 (十二) 协程函数应用 列表生成式 生成器表达式

    一.知识点整理: 1.可迭代的:对象下有_iter_方法的都是可迭代的对象 迭代器:对象._iter_()得到的结果就是迭代器 迭代器的特性: 迭代器._next_() 取下一个值 优点: 1.提供了 ...

  3. Py修行路 python基础 (十三)匿名函数 与 内置函数

    一.匿名函数  1.定义: 匿名函数顾名思义就是指:是指一类无需定义标识符(函数名)的函数或子程序. 2.语法格式:lambda 参数:表达式 lambda语句中,开头先写关键字lambda,冒号前是 ...

  4. Py修行路 python基础 (十八) 反射 内置attr 包装

    一.isinstance 和 issubclass1.isinstance(obj,cls)检查是否obj是否是类 cls 的对象.2.issubclass(sub, super)检查sub类是否是 ...

  5. Py修行路 python基础 (九)作用域 函数嵌套 闭包

    名称空间与作用域 变量,函数 分成三种 #内置名称空间  内置函数, 系统函数内部自定义的. python查看内置函数,命令: import builtins dir(builtins) #全局名称空 ...

  6. Py修行路 python基础 (七)文件操作 笔记(随时更改添加)

    文件操作流程: 1.打开文件 open() 2.操作文件 read .writeread(n) n对应读指定个数的 2.x中读取的是字节! 3.x中读取的是字符!read 往外读取文件,是以光标位置开 ...

  7. Py修行路 python基础 (二十五)线程与进程

    操作系统是用户和硬件沟通的桥梁 操作系统,位于底层硬件与应用软件之间的一层 工作方式:向下管理硬件,向上提供接口 操作系统进行切换操作: 把CPU的使用权切换给不同的进程. 1.出现IO操作 2.固定 ...

  8. Py修行路 python基础 (十九)面向对象进阶(下)

    item系列 __slots__方法 __next__ 和 __iter__实现迭代器  析构函数 上下文管理协议 元类一.item系列 把对象操作属性模拟成字典的格式.  例如:对象名['key'] ...

  9. Py修行路 python基础 (十一)迭代器 与 生成器

    一.什么是迭代? 迭代通俗的讲就是一个遍历重复的过程. 维基百科中 迭代(Iteration) 的一个通用概念是:重复某个过程的行为,这个过程中的每次重复称为一次迭代.具体对应到Python编程中就是 ...

随机推荐

  1. Sql Server 中关于@@ERROR的一个小小误区

    我们经常写存储过程的时候会用到@@ERROR来判断执行是否成功,很久没有写复杂点的存储过程了,今天发现前段时间写的一个proc出现了bug,由于定义参数时,字符串长度设的有点短,导致传进来的值中间被截 ...

  2. nodejs cheerio模块提取html页面内容

    nodejs cheerio模块提取html页面内容 1. nodejs cheerio模块提取html页面内容 1.1. 找到目标元素 1.2. 美化文本输出 1.3. 提取答案文本 1.4. 最终 ...

  3. 使用vue遇到坑

    1.请求ajax方式一定要在Vue methods或creads里去请求. 方便做下拉刷新数据 . 2.多看看vue源码. 3.多写tab常项,h5下拉滚动,pc分页效果,回到顶部,提高熟悉vue需求 ...

  4. Node大文件处理

    之前有个需求要将文件解析再处理,当时直接将整个文件内容读到内存中然后解析,也是没有考虑到大文件的问题,那么要如何解析大文件呢? 输入:文件的内容是多个json,按顺序排列 输出:解析后的json数据 ...

  5. OC-常见归档总结

    /*****  该文一共总结了以下六种文件操作   1.NSKeyedArchiver. 2.对类对象进行归档 <NSCoder>协议 3.文件管理类 NSFileManger  4.对文 ...

  6. 【tensorflow:Google】三、tensorflow入门

    [一]计算图模型 节点是计算,边是数据流, a = tf.constant( [1., 2.] )定义的是节点,节点有属性 a.graph 取得默认计算图 g1 = tf.get_default_gr ...

  7. SWF文件加密、混淆

    简单说下SWF文件的混淆原理,(已经明白的请跳过本段):我们的AS源代码被编译完成后,SWF内部会形成一个字符串映射表,包含源码里出现的所有字符串(类名,包名,成员变量名,常量等).一个数字(相当于地 ...

  8. Flask的配置文件

    Flask的配置文件 与 session 配置文件 flask中的配置文件是一个flask.config.Config对象(继承字典) 默认配置为: { 'DEBUG': get_debug_flag ...

  9. Zookeeper集群是如何升级到新版本的

    方案1:复用老数据方案 这是经过实践的升级方案,该方案是复用旧版本的数据,zk集群拓扑,配置文件都不变,只是启动的程序为最新的版本. 参考文章: Zookeeper集群是如何升级到新版本的 方案2:重 ...

  10. pod上传私有spec文件库

    一.验证 function podlint() { pod lib lint $1.podspec --use-libraries --allow-warnings --verbose --sourc ...