Python基础(六)

1.函数

全局变量:定义在函数外部的变量,能够在所有的函数中被使用

局部变量:只在函数的内部定义的变量,只作用于函数的内部,因此允许存在相同变量名的局部变量

全局变量和局部变量同名时,就认为是定义了一个局部变量

在函数内部修改全局变量:使用关键字global声明局部变量,然后在函数内部进行修改后即是对全局变量进行修改

2.函数返回值

如果函数的return后面跟的是多个数据,则默认是元组

3.缺省参数、不定长参数

在函数中,如果缺省参数的值没有传入,则调用默认值;在形参中有默认值的参数,称为缺省参数,带有默认值的参数一定要在最后面

在函数中,有时需要传入大量的数据,需要处理比声明时更多的参数,这些参数称为不定长参数,声明时也不会命名

在形参中,加入*args、**kwargs来接收实参传递的不定长参数,*args会存放未命名的参数,*args是元组

**kwargs接收存放实参传递的命名的参数,**kwargs是字典

在形参中,缺省参数的位置在*args的后面

4.拆包

对返回对个值时,需要作出拆包操作,那么拆包的时候,需要拆的数据的个数要与变量的个数相同,否则程序会异常

除了对元组拆包之外,还可以对列表、字典等拆包

5.引用

在函数中,变量是可以被调用的,值是靠引用来传递的。可以使用id()来判断两个变量是否是同一个值的引用,id()的返回值是一个类似内存的地址标识

6.可变不可变类型

所谓可变类型与不可变类型是指:数据能够直接进行修改,如果能直接修改那么就是可变,否则是不可变

可变类型有: 列表、字典、集合

不可变类型有: 数字、字符串、元组

7.lambda函数

lanbda函数,又被称为匿名函数,虽然在语言形式上看起来简便。但是对于刚接触的初学者来说阅读起来并不容易。

例子:lambda a: a**2 , 2   

按照通俗的函数写法可以如下:

def square(a):

  return a**2

a=square(2)

好处:

1. 不需要定义函数名称(临时函数)
2. 只做简单运算,并返回值,没有复杂的函数体

8.map()

map()函数并不多见,但是还是有必要了解一下。map(a,b) 中的a一般是作为一个函数,而b则是作为一个变量类型容器,比如列表,整型等。

例子:map(lambda a: a**2 , [1, 3, 4, 6])

结果:[1, 9, 16, 36] 

作用即对函数中的可迭代的变量类型进行全覆盖的操作

 9.递归函数

递归函数就是在函数内部调用自己本身,称为递归函数;最典型的递归操作就是斐波那契数列

10.列表推导式

列表推导式,就是指的轻量级循环创建列表

基本方式:a=[x for x in range(0,5) ]    -->     a = [0,1,2,3,4]

在循环中使用if: a = [x for x in range(0,5) if x%2==0]      -->  a=[0,2,4]

在两个循环中使用:a = [(x,y) for x in range(1,3) for y in range(3) ]        -->   a = [(1,0),(2,0),(1,1),(2,1),(1,2),(2,2)]

同理,也可以三个for循环

例子:请写出一段 Python 代码实现分组一个 list 里面的元素,比如 [1,2,3,...100]变成 [[1,2,3],[4,5,6]....]

a = [x for x in range(1,101)]
b = [a[x:x+3] for x in range(0,len(a),3)]

11.set、list、tuple

set是集合类型

set、list、tuple之间可以相互转换

使用set,可以快速的完成对list中的元素去重复的功能

 

posted @ 2018-08-09 10:16  zxh_python  阅读(182)  评论(0编辑  收藏  举报