为何要用函数:

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. MVC3;0问题与知识点

        1.    代码中@Html.BeginForm不对,应 @using(Html.BeginForm){}   2.   不设置 注解 required属性中的 errormessage,则错 ...

  2. Ajax-01 Ajax概述

    Web应用程序: 用户浏览器发送请求,服务端接收并处理请求,然后返回结果,往往返回就是字符串(HTML).浏览器将字符串(HTML)渲染并显示到浏览器上. 传统的Web应用: 一个简单操作(每个请求) ...

  3. pOJ-1061 exgcd求同余方程组

    链接 就是求(m-n)*a+b*l=y-x, 类似于求解a*x+b*y=c,r=gcd(a,b),当c%r==0时有解,用exgcd求出a*x+b*y=gcd(a,b)的解,然后x*c/gcd(a,b ...

  4. P3374 【模板】树状数组 1

    树状数组模板题,用cdq分治做 cdq分治: 分:把l到r分成两个区间操作 治:对每个分出来的区间进行操作 但是cdq分治和一般分治不同的是,一般的分治左右两个区间互不干扰,但是cdq分治处理的是区间 ...

  5. 【Hive】执行脚本

    1.linux下执行hive sql脚本 (1)hive -e “sql语句” (2)hive -e “sql语句” >> xxx 将sql查出来的语句重定向到xxx文件中,会显示Ok和数 ...

  6. SpringMVC中WebDataBinder的应用及原理

     Controller方法的参数类型可以是基本类型,也可以是封装后的普通Java类型.若这个普通Java类型没有声明任何注解,则意味着它的每一个属性都需要到Request中去查找对应的请求参数.众所周 ...

  7. Flask的配置文件

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

  8. So sad! ,Asphyre Closure

    So sad ! Asphyre Closure! 不过我相信开发App用Delphi应该是快的. 越与平台无关,优势越明显. 积累的组件市场. 虽然objc 有很多开源支持. 但总感觉还不够delp ...

  9. java网络编程客户端与服务端原理以及用URL解析HTTP协议

    常见客户端与服务端 客户端: 浏览器:IE 服务端: 服务器:web服务器(Tomcat),存储服务器,数据库服务器. (注:会用到Tomact服务器,在webapps下有一个自己创建的目录myweb ...

  10. libwebsockets 运行问题

    /****************************************************************************** * libwebsockets 运行问题 ...