>>> # 函数

>>> def myFirstFunction(params1,params2...):

print("这是我的第一个函数!")

print("Python你好吗?")

>>> #调用函数

>>>

>>>myFirstFunction()

这是我的第一个函数!

Python你好吗?

>>>#函数的返回值  return

#函数文档, 就是函数的说明,与java里面的 /** */ 一样

>>> # 它是使用 字符串的形式表示的

>>>

>>> def myFunction1(name):

'这个就是函数文档 : 函数定义过程中的name是叫形参'

# 因为它只是一个形式,表示占据一个参数位置

print("传递进来的"+name+"叫实参,因为它是具体点的参数值!")

>>> myFunction1('cxn')

传递进来的cxn叫实参,因为它是具体点的参数值!

>>>

>>># 函数也有一些特殊的属性, 比如显示函数文档的属性

>>> # 特殊属性基本上都是以 __开始 __结束

>>> myFunction1.__doc__

'这个就是函数文档 : 函数定义过程中的name是叫形参'

>>>

>>>

>>> # 关键字参数 ,就是在传递值时指定名称,以免传递出错

>>>

>>> def myFunction2(name,words):

print(name+"-->"+words)

>>> myFunction2("yangw","吃了吗?")

yangw-->吃了吗?

>>> myFunction2("吃了吗?","yangw")

吃了吗?-->yangw

>>> myFunction2(words="吃了吗?",name="yangw")

yangw-->吃了吗?

>>>

>>>#默认参数, 是定义了默认值的参数

>>> def myFunction3(name="yangw",words="吃了吗"):

print(name+"-->"+words)

>>> myFunction3()

yangw-->吃了吗

>>> myFunction3("cxn")

cxn-->吃了吗

>>>

>>># 关键字参数是函数在调用的时候,通过参数名指定需要赋值的参数,这样做就不怕因为搞不清参数的顺序而出错

>>> #默认参数是在函数定义的时候,为形参赋初始值;当函数调用的时候忘记传参数,就会使用初始值

>>> 收集参数(也叫可变参数),只要在参数前面加上*即可

def test(*params):

print("参数长度是:",len(params))

print("第一个参数的值:",params[0])

>>> test(1,"yangw","haha")

参数长度是: 3

第一个参数的值: 1

>>> 如果收集参数后面还有参数,函数调用传递时使用 关键字参数

>>>为了防止出错,定义函数的时候使用上默认参数

>>>其实最好还是将收集参数定义在最后

>>> def test2(lala,*params):

print("参数长度是:",len(params),lala)

>>> test2("nini",2,"we")

参数长度是: 2 nini

>>>

局部变量(一般是在函数中定义的变量、函数参数)、全局变量(在函数之外定义的变量,作用域是在整个*.py文件中有效)

可以在函数中访问全局变量,但是不要试图去修改它;如果要修改它,Python会使用屏蔽的方式来保护全局变量(Python会在函数内部创建一个名字一模一样的局部变量,这样的话修改只能修改到函数内部的局部变量,而不会影响到全局变量)

>>>

>>> # 使用global来声明函数中的变量就是全局变量

>>> count=10

>>> def myFunc():

global count

count=20

print(count)

>>> myFunc()

20

# Python在写一些脚本时,使用lambda就可以省下函数的定义过程,使用lambda可以使得代码更加简洁

>>> # 对于一些比较抽线并且整个执行下来只需要的调用一两次的函数,有时候起个函数名也是头疼的,使用lambda就不需要考虑命名问题

>>> # 还可以简化代码的可读性

>>>

>>>

>>> def ds(x):

return 2*x+1

>>> ds(5)

11

>>> lambda x : 2*x+1

at 0x020DF8A0>

>>> g=lambda x : 2 * x + 1

>>> g(5)

11

>>> #lambda 的语法 冒号前面是参数,冒号后面是函数返回的内容

>>>

>>> # 两个参数的lambda

>>>

>>> g = lambda x , y : x + y

>>> g(1,2)

3

>>>

>>>

>>> #比较实用的两个BIF函数 filter() map()

>>>

>>> # filter(Function or None , iterable) ,第一个参数是函数或者None对象,第二个参数是可迭代的数据

>>> # 如果第一个参数是函数,则将第二个参数中的每一个元素作为函数的参数计算,返回True的值筛选出来,定义成数组返回; 如果第一个参数是None对象,则将第二个参数中为True的值返回

>>>

>>> filter(None , [1,True,False,"2",0])

>>> list(filter(None , [1,True,False,"2",0]))

[1, True, '2']

>>>

>>> # 我们举一个筛选出基数的例子

>>> # 普通函数定义的方式

>>> def odd(x):

return x % 2

>>> temp = range(10)

>>> show = filter(odd,temp)

>>> list(show)

[1, 3, 5, 7, 9]

>>>

>>> # 改成lambda方式的函数

>>>

>>> list(filter(lambda x : x % 2 ,range(10)))

[1, 3, 5, 7, 9]

>>>

>>>

>>> #map(function , iterables) ,将第二个参数中的每一个值到放到第一个参数指定的函数中去计算,最后以数组形式返回计算后的结果

>>>

>>> list(map(lambda x : x+2, range(10)))

[2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

>>>

>>>

>>>

>>> # 递归 ,函数自己调用自己

>>> # Python3 默认的递归层次是100层,可以使用下面的方式设置递归的层次

>>> import sys

>>> sys.setrecursionlimit(1000)

>>>

*.py文件的内容

# 下面的例子是使用递归方式实现阶乘

def factorial(n):

if(n == 1):

return 1

return n * factorial(n-1)

number=int(input("请输入一个正整数:"))

result = factorial(number)

print("%d 的阶乘是 %d" %(number,result))

运行

>>>

=============== RESTART: C:\Users\Administrator\Desktop\xxx.py ===============

请输入一个正整数:5

5 的阶乘是 120

>>>

小甲鱼python003答案_小甲鱼:Python学习笔记003_函数相关推荐

  1. 小甲鱼python003答案_小甲鱼Python第003讲:插曲之变量和字符串|课后测验及参考答案...

    测试题: 0. 以下哪个变量的命名不正确?为什么? (A) MM_520 (B) _MM520_ (C) 520_MM (D) _520_MM C:变量不能以数字开头 1. 在不上机的情况下,以下代码 ...

  2. Python学习笔记12_函数

    Python学习笔记12_函数 文章目录 Python学习笔记12_函数 1.函数定义 2.函数调用 3.函数的参数 3.1.可更改对象和不可更改对象参数 3.2.必需参数(位置参数) 3.3.关键字 ...

  3. Python学习笔记:函数(Function)

    Python学习笔记:函数(Function) 一.函数基本概念 函数是Python里组织与重用代码最重要的方法.一般来说,如果你期望多次重复相同或相似的代码,写一个可重用的函数可能是值得的.函数通过 ...

  4. python基础论文_北大博士Python学习笔记,Python基础语法总结,一篇文章带你入门...

    image.png 网上现在Python学习资料有很多,但是很杂.很多初学Python的朋友就不知道该怎么去抉择,那些是自己当下所需要的. 刚好朋友是北大的博士,在IT行业也工作八年了.就把他学习Py ...

  5. Python学习笔记——一些函数

    本文对应头歌上的Python练习:https://www.educoder.net/paths/pn7qklv9 基础知识1: input( )函数 input()函数从控制台获得用户输入,无论用户在 ...

  6. Python学习笔记--day10函数入门

    day10 函数入门 初识函数 函数的参数 函数的返回值 1. 初识函数 函数到底是个什么东西? 函数,可以当做是一大堆功能代码的集合. def 函数名():函数内编写代码......函数名() 例如 ...

  7. Python学习笔记---day12函数进阶

    day12函数进阶 函数的嵌套 闭包 装饰器 上述内容均属于函数部分必备知识,以后开发时直接和间接都会使用,请务必理解(重在理解,不要去死记硬背). 1. 函数嵌套 Python中以函数为作用域,在作 ...

  8. python小甲鱼练习题答案_小甲鱼Python第 013讲元组:戴上了枷锁的列表 | 课后测试题及参考答案...

    测试题: 0. 请用一句话描述什么是列表?再用一句话描述什么是元组? 列表:一个大仓库,可以随时往里面添加和删除任何东西. 元祖:封闭的列表,一旦定义,就不可改变(不能添加.删除或修改) 1. 什么情 ...

  9. 小甲鱼Python学习笔记之函数(三)

    递归 定义 递归的两个特点(重中之重!!!) 递归的应用 能够用递归实现的功能都能够用循环迭代来实现 用递归实现斐波那契数列 用其他方式实现斐波那契数列 用递归实现汉诺塔 定义 函数之间是可以相互调用 ...

最新文章

  1. R语言ggplot2可视化增加坐标轴的刻度数实战:自定义坐标轴刻度粒度、增加坐标轴刻度的粒度、更加精细地表达
  2. MFC/UDP通信函数详细解说
  3. 统计学习方法笔记(一)-k近邻算法原理及python实现
  4. PAT甲级1076 Forwards on Weibo (30 分) :[C++题解]图论、bfs
  5. nagios监控cfg模块
  6. HTML如何消除别的块的影响,CSS清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响?...
  7. 数据安全治理所遵循的有哪些原则
  8. 读这样的文章才能清楚什么是RIA
  9. 微信取消分享后还是执行成功函数
  10. hdu2586How far away ?
  11. 不用爬虫,也能写一个聚合搜索引擎
  12. M2BEV:采用统一BEV表征的多摄像头联合3D检测分割
  13. 【模拟】Parity
  14. 知道创宇赵伟乌镇演讲:以云护云、以云治云,构建云端安全治理体系
  15. 大翻盘!超80亿美元Java侵权案落槌,谷歌胜诉!
  16. 首涂[A020]第二十套模板最终版 苹果CMS V10
  17. android获取短信中心号
  18. 色彩大全 Android 颜色值
  19. 企业遇到3C审厂不符合项应该如何整改?
  20. Cassandra repair 工具使用

热门文章

  1. 运行ORB-SLAM笔记_编译篇(一)
  2. ADPRL - 近似动态规划和强化学习 - Note 10 - 蒙特卡洛法和时序差分学习及其实例 (Monte Carlo and Temporal Difference)
  3. Udacity机器人软件工程师课程笔记(三十二) - 卡尔曼滤波器 - 一维卡尔曼滤波器 - 多维卡尔曼滤波器 - 拓展卡尔曼滤波器(EKF)
  4. WebStorm设置Ctrl+0恢复默认字体大小,设置全局字号大小
  5. 在Ubuntu 14.04 64bit上编译安装Crtmpserver trunk svn 811版本!
  6. Rocksdb 通过ingestfile 来支持高效的离线数据导入
  7. Windows平台下程序打包流程
  8. 爬虫之Xpath详解
  9. 南大算法设计与分析课程OJ答案代码(5)--割点与桥和任务调度问题
  10. Scrum卡片层次图