#python的基本语法网上已经有很多详细的解释了,写在这里方便自己记忆一些

  BIF是python内置的函数,任何一门语言都能用来创造函数,python也不例外

  1、创建一个函数

def func():
print("this is my first function") func() this is my first function

  2、函数的参数,python的参数数量实际上是无限的,但是定义的参数尽量不要太多,便于维护

     参数分为“形参”(parameter,函数创建和定义过程中小括号里面的参数)和“实参”(argument,函数在被调用的过程中传递进来的参数)

#单个参数情况下
def func(str):
print(str+"this is my first function") func(str='Hello Python,') Hello Python,this is my first function
def func(str1,str2):
print(str1+str2+"this is my first function") func(str2='Python,',str1='Hello') HelloPythonthis is my first function
#这里使用了两个参数,str1与str2,它们被称作关键字参数,相比于位置参数(字符串的格式化也用到了关键字和位置参数)更便于编码。

  3、收集参数(可变参数)

def func(*str):
print('str的长度是%d'%len(str))
print('str的第1个参数是',str[1]) func('Hello','Python','!')

#str的长度是3
#str的第1个参数是 Python

#如果收集参数后面还有参数的话,需要用位置参数

def func(*param,extra):
print(param)
print(extra)
func('what the fuck',1,2,extra=3) ('what the fuck',1,2)  #如果有逗号的话返回的形式为元组
3              #位置参数指定了,收集参数则不会包括位置参数

  4、内嵌函数与闭包

    函数是无法改动外部变量的,如果强行改动,那么python就会在函数内部自动创建一个名字一模一样的变量,并且这个“复制”变量作用域只在函数内部

#变量的作用域
count = 5
def func():
count = 10
return print(count)
func()
print(count) 10
5
----------------------------------------------------------------------------------
#内嵌函数的调用
def func():
print('func正在被调用')
def func2():
print('func2正在被调用')
func2() func()

func正在被调用
func2正在被调用

------------------------------------------------------------------------------------

#闭包是函数式编程的重要语法结构

#闭包的简单定义:如果在一个内部函数里对外部作用域的变量进行引用,那么内部函数就被认为是闭包

def funA():             
x = [5]                
def funB():
x[0] *= x[0]
     print(x[0])
return funB()    #注意这里的写法,如果闭包中对内部函数的调用加上了括号,那么调用外层函数只需要一个括号,否则调用外层函数需要两个函数
funA()       25
-----
def funA():
x = [5]
def funB():
x[0] *= x[0]
print(x[0])
return funB
funA()() 25

  5、lambda,实用的匿名函数

#lambda关键字用来创建匿名函数,当一个函数语句较为简短时,或者使用脚本时,使用lambda即可避免函数的定义过程
f = lambda a,b:a*b
print(f(4,6)) 24

  6、filter()和map()

   (1)filter(function/None,iterable),filter是一个过滤器,第一个参数是一个函数或者None,第二个参数是一个可迭代对象,如果第一个参数是一个函数,将可迭代

  对象代入函数把返回值为True的参数筛选出来,如果是None,将可迭代对象中值为True的参数筛选出来

print(list(filter(lambda x:x%2==1,[1,2,3])))    #一个返回基数的过滤器
print(list(filter(lambda x:x%2==0,[1,2,3])))    #一个返回偶数的过滤器

 [1, 3]
 [2]

   (2)map(function,iterable),map()是一个映射函数,同时也有两个参数,第一个是一个函数,第二个是可迭代对象,返回一个可迭代对象代入函数后返回的映射

tpl1 = 1,2,
lt1 = ['a','b']
# print(type(tpl1))
for item in enumerate(tpl1):
print(item)

Python函数的一点用法的更多相关文章

  1. Python 函数和相关用法笔记

    python中%r和%s的区别 总结:%r打印时能够重现它所代表的对象 __str__和__repr__的用法

  2. Python字典的一点用法

    #python的基本语法网上已经有很多详细的解释了,写在这里方便自己记忆一些 字典是一种映射类型的数据结构,(映射一般是数学中的术语,指两个元素之间元素相互对应的关系).字典和序列有很大的不同,序列类 ...

  3. Python序列的一点用法

    #python的基本语法网上已经有很多详细的解释了,写在这里方便自己记忆一些 序列,顾名思义,是一段数据的有序排列,列表,元组,字符串都是序列的一种,序列有很多BIF(BIF是内建方法,即python ...

  4. Python元组的一点用法

    #python的基本语法网上已经有很多详细的解释了,写在这里方便自己记忆一些 元组可以理解为不可变动的列表,访问元组中元素的方式和列表相同,但是需要注意的是元组中的元素是不可修改(增删)的 1.列表的 ...

  5. Python列表的一点用法

    #python的基本语法网上已经有很多详细的解释了,写在这里方便自己记忆一些 列表相当于python中的数组,但相对于数组,列表的操作显得更为灵活 常用的操作列表的方式:  List = [1,'bl ...

  6. python,函数的基本用法

    一.函数 函数的概念:对功能或者动作的封装可以帮我们把一段公共的代码提取出来 语法如下 def 函数名(形参): 函数体 函数名(实参) # 函数名() def yue(): print(" ...

  7. python函数和lambda表达式学习笔记

    1. python函数 不同于其他语言,python支持函数返回多个值 为函数提供说明文档:help(函数名)或者函数名.__doc__ def str_max(str1, str2): ''' 比较 ...

  8. python函数的用法

    python函数的用法 目录: 1.定义.使用函数 1.函数定义:def 2.函数调用:例:myprint() 3.函数可以当作一个值赋值给一个变量 例:a=myprint()    a() 4.写r ...

  9. Python正则替换字符串函数re.sub用法示例(1)

    本文实例讲述了Python正则替换字符串函数re.sub用法.分享给大家供大家参考,具体如下: python re.sub属于python正则的标准库,主要是的功能是用正则匹配要替换的字符串然后把它替 ...

随机推荐

  1. OpenVPN部署,实现访问云服务器的内网

    本教程不描述如何FQ 一.OpenVPN服务端部署 $ yum -y install net-tools lzo lzo-devel openssl-devel pam-devel gcc gcc-c ...

  2. python-Word模板填充-docxtpl

    docxtpl 按指定的word模板填充内容 安装 pip install docxtpl 示例 from docxtpl import DocxTemplate data_dic = { 't1': ...

  3. 201806 数据处理 SQL、python、shell 哪家强...速度PK(上篇)

    最近在工作中,进行大量的数据处理,使用的是mysql5.7.22,发现当数据量级达到几十万之后,SQL执行速度明显变慢.尤其是当多个表join时,于是就尝试用python pandas进行数据处理,发 ...

  4. CSS之实现垂直时间线展示相关内容效果

    如下,最近在工作中遇到实现时间线效果的需求,用纯css即可实现,下面给出详细实现代码. html: <div class="time_line_list_wrap hide" ...

  5. Linux(例如CentOS 7)打开TCP 22端口,基于SSH协议

    SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议.SSH 是目前较可靠,专 ...

  6. js二分查找算法

    二分查找高效的前提是数据结构是有序的.就好比猜1~100之间的数,先猜50,如果太大了就猜25,如果太小了就猜75.每一次都猜最大值和最小值的中间点. 1.随机生成100个0~100之间的随机数. v ...

  7. lua --- 表操作

    c api 参考手册:http://www.leeon.me/a/lua-c-api-manual // LuaTest.cpp : 定义控制台应用程序的入口点. // #include " ...

  8. spring配置JNDI(Java Naming and Directory Interface,Java命名和目录接口)数据源

    1.在tomcat下的server.xml的 <GlobalNamingResources> </GlobalNamingResources>添加下面代码 <Resour ...

  9. Web安全测试工具 Burp Suit 使用简介

    参考文档: https://blog.csdn.net/gitchat/article/details/79168613 https://www.cnblogs.com/nieliangcai/p/6 ...

  10. 移动app的体验性测试

    最近用户体验被提的次数较多,大家可能会遇到这种情况,客户“你们软件功能没问题了,但就是感觉不好用,能不能优化一下,做的高大上些”,作为一个有经验的测试工程师这个时候你就应该知道问题在于用户体验了 关于 ...