>>> # 函数
>>> 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
<function <lambda> 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])
<filter object at 0x020AAAB0>
>>> 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
>>>

小甲鱼:Python学习笔记003_函数的更多相关文章

  1. 小甲鱼Python学习笔记

    一 isdigit()True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字False: 汉字数字Error: 无 isdecimal()True: Unicode数字, ...

  2. Python学习笔记之函数

    这篇文章介绍有关 Python 函数中一些常被大家忽略的知识点,帮助大家更全面的掌握 Python 中函数的使用技巧 1.函数文档 给函数添加注释,可以在 def 语句后面添加独立字符串,这样的注释被 ...

  3. Python学习笔记 - day6 - 函数

    函数 函数在编程语言中就是完成特定功能的一个词句组(代码块),这组语句可以作为一个单位使用,并且给它取一个名字.可以通过函数名在程序的不同地方多次执行(这叫函数的调用).函数在编程语言中有基本分为:预 ...

  4. Python学习笔记系列——函数

    今年下半年的计划主要是Python和Mysql了,公司不方便看书和视频,就照着廖雪峰的Python网站开始看了.以下纯为个人笔记记录,若是想系统学习的小伙伴还是看这里的好一些,毕竟系统.https:/ ...

  5. Python学习笔记-Day3-python函数

    1.为什么要用函数? 提高代码重复利用率,减少代码冗余.封装模块化代码,便于调用 2.函数声明定义(注意:函数先声明后调用) 注意:函数的reture循环中的exit功能一样(函数不执行,终止) 函数 ...

  6. python学习笔记(3)--函数、参数、变量、递归

    1.函数基本语法和特性 背景摘要 现在老板让你写一个监控程序,监控服务器的系统状况,当cpu\memory\disk等指标的使用量超过阀值时即发邮件报警,你掏出了所有的知识量吗,写出了以下代码 whi ...

  7. python学习笔记:函数

    一.函数是什么 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,编程中的函数在英文中也有很多不同的叫法.在BASIC中叫做subroutine(子过程或子程序),在Pasca ...

  8. Python学习笔记(五)函数和代码复用

    函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Python提供了许多内建函数,比如print().同样,你也可以自己创建函数, ...

  9. python学习笔记(五)---函数与类

    函数 def为定义函数的一个标志 demo1: def greet_user(username): print("Hello, " + username.title() + &qu ...

随机推荐

  1. 【Hibernate】版本错误 org/hibernate/Query : Unsupported major.minor version 52.0

    报错原因:jdk1.7不支持 hibernate的最新版本5.2.0,把hibernate的版本换成5.1.3或更早的版本. 补充:mysql-connector-java-6.0.x也不被hiber ...

  2. vue.js之获取当前点击对象(其实是套着vue的原生javascript吧,笑😊)

    转载请注明出处:http://www.cnblogs.com/meng1314-shuai/p/7455575.html 熟悉jquery的小伙伴应该都知道jquery获取当前点击对象是有多么的粗暴, ...

  3. 海外 App 的推送服务,试试 FCM 吧!!!

    > **版权声明:** > > **本账号发布文章均来自公众号,承香墨影(cxmyDev),版权归承香墨影所有.** > > **每周会统一更新到这里,如果喜欢,可关注公 ...

  4. shell 之解释器、变量、字符串、数组

    1.Shell简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言.Shell 是指一种应用程序,这个应用程序提供了一个 ...

  5. try...catch...finally语句块

    try-catch-finally语句主要是用来处理检查异常,捕获并处理,以及最后必须要执行的finally块. try-catch-finally语句入门: 1.try-catch-finally语 ...

  6. web安全:QQ号快速登录漏洞及被盗原理

    为什么你什么都没干,但QQ空间中却发了很多小广告?也许你的QQ账号已经被盗.本文将讲解一个QQ的快速登录的漏洞. 我前阵子在论坛上看到一个QQ的快速登录的漏洞,觉得非常不错,所以把部分原文给转到园子来 ...

  7. html5 响应式布局(媒体查询)

    响应式布局        响应式布局,简而言之,就是一个网站能够兼容多个终端--而不是为每个终端做一个特定的版本.这个概念是为解决移动互联网浏览而诞生的.        响应式布局可以为不同终端的用户 ...

  8. C语言格式化输入输出

    %i和%d之间的区别 作为匹配整数的转换说明,printf格式串中两者并没有区别,但是在scanf格式串中%d只能匹配十位制整数,而%i可以匹配八进制(前缀为0,如086).十进制或十六进制(前缀0x ...

  9. 规则集之探究何时使用HashSet、LinkedHashSet以及TreeSet?

    前言 Java集合框架三种主要类型的集合:规则集(Set).线性表(List).队列(Queue).Set用来存储不可重复的元素:List用来存储有元素构成的有序的集合:而Queue则用于存储用先进先 ...

  10. 数据绑定技术一:GridView控件

    在网站或应用程序中,要显示数据信息,可用到ASP.NET提供的数据源控件和能够显示数据的控件. 一.数据源控件 数据源控件用于连接数据源.从数据源中读取数据以及把数据写入数据源. 1.数据源控件特点 ...