直接贴笔记 :

#!/usr/bin/env python
# coding:utf-8 # 定义函数时要写成良好的注释习惯 通常用三个单引号
def test(x):
'''
计算一个y=2*x+1
:param x: 整型
:return: 整型
'''
y = 2 * x + 1
return y # print(test)
print(test(4)) ### 本次课参考 http://www.cnblogs.com/linhaifeng/articles/6113086.html#label1 def test(): ## 后定义的函数将覆盖前面的函数
'''
测试函数
:return:
'''
y = 33*2
return y print(test()) """
python中函数定义方法: def test(x):
"The function definitions"
x+=1
return x def:定义函数的关键字
test:函数名
():内可定义形参
"":文档描述(非必要,但是强烈建议为你的函数添加描述信息)
x+=1:泛指代码块或程序处理逻辑
return:定义返回值 调用运行:可以带参数也可以不带
函数名() """

过程其实就是没有返回值的函数:

#!/usr/bin/env python
# coding:utf-8 # 参考 二 为何使用函数 http://www.cnblogs.com/linhaifeng/articles/6113086.html#label1 '''
def 发送邮件(内容)
# 发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接 while True: if cpu利用率 > 90 %:
发送邮件('CPU报警') if 硬盘使用空间 > 90 %:
发送邮件('硬盘报警') if 内存占用 > 80 %:
发送邮件('内存报警')
''' # 总结使用函数的好处:
#
# 1.代码重用
#
# 2.保持一致性,易维护
#
# 3.可扩展性 ########### 过程 就是没有返回值的函数 没有return def test01():
msg = 'test 01'
print(msg) def test02():
msg = 'hello test02'
print(msg)
return msg def test03():
msg = 'test 03'
print(msg)
return 0,10,'hello',['alex','lb'],{'WuDaLang':'lb'} def test04():
msg = 'test 04'
print(msg)
return {'WuDaLang':'ssb'} t1 = test01()
t2 = test02()
t3 = test03()
t4 = test04() print(t1)
print(t2)
print(t3)
print(t4, type(t4))

各种参数的示例:

#!/usr/bin/env python
# coding:utf-8 # 1.形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。
# 函数调用结束返回主调用函数后则不能再使用该形参变量
# 2.实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。
# 因此应预先用赋值,输入等办法使参数获得确定值 # 3.位置参数和关键字(标准调用:实参与形参位置一一对应;关键字调用:位置无需固定)
def test2(x,y,z):
print(x)
print(y)
print(z)
return test2(3,2,1) #位置参数必须一一对应
test2(z=11,x=22,y=33) # 关键字调用:位置无需固定 但是个数必须相同
# test2(z=11,x=22,x=33) # 参数不能传2 个值,报错,无法执行。
# test2(11,y=22,x=33) # 位置传参时,也遵守不能传2 个值,报错,无法执行。
# 若混合使用,则关键字参数必须在位置参数后面。 # 可变长度参数
def test(x,*args):
print(x)
print(args)
return test(4,5,2,3,1) # 除了第一个参数,其它的都被当成一个元组。
test(11,{"name":"jerry"}) # 字典作为一个整体传入
test(55,*{"name":"jerry","age":38}) # 字典元素传入,则只能得到key 无法获取value
test(22,['a','b','c']) # 列表作为一个整体传入
test(33,*['a','b','c']) # 列表中的元素分别传入 # 4.默认参数 def test3(x=0,y=2):
s = x ** y
return s print(test3(3,3)) # 传了实参,将覆盖形参的默认值 def test4(x,b='mysql'):
print(x)
print(b) test4('hello',b='sqlite') ## 例:安装软件时的选项
def install(func1=False,func2=True,func3=True):
pass # 动态参数有两种: 
  *args 接收位置参数,组成元组
  **kwargs 接收关键字参数,组成字典
  顺序: 位置参数,*args, 默认参数, **kwargs
  
# 5.参数组
def test5(a,*args,default=' ', **kwargs):   # 此种函数定义可以接收最大种类最大数量的参数。
print(a)
print(args,args[-1])
print(default)
print(kwargs,kwargs.get('2')) test5(12,*[11,22,33,44], default='aaa', **{'name':'abc','2':'ffg'}) # 传字典
## 小练习
def func(x,*y,**z):
print(x,y,z) func(1,2,3,4,name='k',age=3)
# 得到 1 (2, 3, 4) {'name': 'k', 'age': 3} def fun1(x,*y,**z):
print(x,y,z) fun1(1,name=2,age=3)
# 得到 1 () {'name': 2, 'age': 3}
# 键值参数一定是传给了两个星的字典参数.

多个返回值 ,可以用多个变量接

def calc_d(a,b):
return a*a, b*b a,b = calc_d(9,8)
print(a,b)

Python基础10_函数的更多相关文章

  1. python基础——匿名函数

    python基础——匿名函数 当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便.  在Python中,对匿名函数提供了有限支持.还是以map()函数为例,计算f(x)=x2时 ...

  2. python基础——返回函数

    python基础——返回函数 函数作为返回值 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回.  我们来实现一个可变参数的求和.通常情况下,求和的函数是这样定义的: def calc_ ...

  3. python基础——sorted()函数

    python基础——sorted()函数 排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个d ...

  4. python基础——filter函数

    python基础——filter函数 Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函 ...

  5. python基础——匿名函数及递归函数

    python基础--匿名函数及递归函数 1 匿名函数语法 匿名函数lambda x: x * x实际上就是: def f(x): return x * x 关键字lambda表示匿名函数,冒号前面的x ...

  6. 八. Python基础(8)--函数

    八. Python基础(8)--函数 1 ● 函数返回布尔值 注意, 自定义的函数也可以是用来作逻辑判断的, 例如内置的startswith()等函数. def check_len(x):     ' ...

  7. python基础之函数详解

    Python基础之函数详解 目录 Python基础之函数详解 一.函数的定义 二.函数的调用 三.函数返回值 四.函数的参数 4.1 位置参数 4.2 关键字参数 实参:位置实参和关键字参数的混合使用 ...

  8. Python学习笔记(一)python基础与函数

    1.python基础 1.1输入与输出 输出 用print加上字符串,就可以打印指定的文字或数字 >>> print 'hello, world' hello, world > ...

  9. Day3 - Python基础3 函数、递归、内置函数

    Python之路,Day3 - Python基础3   本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8. ...

随机推荐

  1. 记录tiny6410 jlink 命令行调试linux-2.6.38内核

    1\首先启动nandflash uboot->linux内核->文件系统,进入文件系统命令行 2\启动JLinkGDBServer -device ARM11 3\启动arm-none-e ...

  2. django开发(二)

    1.django数据库操作---model的使用以及django自带的数据api django中已经做了ORM,表就是一个类class,表中的一个项就是一个对象object,很好用 1.1django ...

  3. java.lang.IllegalArgumentException: An invalid domain [.test.com] was specified for this cookie解决方法

    当项目中使用单点登录功能时,通常会使用cookie进行信息的保存,这样就可以在多个子域名上存取用户信息. 比如有三个domain分别为test.com,cml.test.com,b.test.com这 ...

  4. cpu使用率低负载高,原因分析

    原因总结 产生的原因一句话总结就是:等待磁盘I/O完成的进程过多,导致进程队列长度过大,但是cpu运行的进程却很少,这样就体现到负载过大了,cpu使用率低. 下面内容是具体的原理分析:在分析负载为什么 ...

  5. SQLServer “无法对数据库'XX' 执行删除,因为它正用于复制”的解决方法

    修改数据库某个字段的长度时出现: “无法修改表.无法对 表'dbo.N_Client_content' 执行 删除,因为它正用于复制.” 不能直接对该数据库进行操作,通过alter 的办法来修改,问题 ...

  6. (转载)【UGUI】侧面滑出的菜单栏,宽度自适应

    首先看下项目效果 实现效果 发现实现效果并不难,利用动画(iTween)+UGUI 有一个长按的判断处理即可 附上项目和代码 using System.Collections; using Syste ...

  7. sqlserver数据库中sql的使用

    目录: 1. 分组排序更新 2. 将查询结果插入到新的表中 3. 创建/更新存储过程 4. 创建/更新视图 5. 插入数据 6. 增加表格的列 7. 创建表格 8. 创建索引 9. 递归查询 1. 分 ...

  8. windows常见软件库

    1.护卫神软件库 http://soft.huweishen.com/special/1.html 2.护卫神windows资料库 http://v.huweishen.com/ 3.国超软件下载 h ...

  9. linux软件管理之yum管理rpm包

    YUM 使用官方源 ==================================================================================== 阿里镜像站 ...

  10. 5、SAMBA服务二:配置实例

    ①:SAMBA服务一:参数详解 ②:SAMBA服务二:配置实例 5.2.3.Samba共享目录配置实例 1.允许匿名用户读取/it共享目录,修改/etc/samba/smb.conf,在最后添加以下内 ...