一,几种编程思想
1.面向过程编程:根据业务逻辑从上到下实现功能,
2.函数式编程:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可
3.面向对象编程:对函数进行分类和封装
二,函数的定义和使用
1. 函数的构成
- def:表示函数的关键字
- 函数名:函数的名称,日后根据函数名调用函数
- 函数体:函数中进行一系列的逻辑计算,如:发送邮件、计算出 [11,22,38,888,2]中的最大数等...
- 参数:为函数体提供数据
- 返回值:当函数执行完毕后,可以给调用者返回数据。
2.参数的分类
- 普通参数,即为函数体提供的数据,后期调用时需,按顺序填写
# name 叫做函数func的形式参数,简称:形参 def func(name): print name # ######### 执行函数 ######### # ‘x‘ 叫做函数func的实际参数,简称:实参 func(‘x‘)
- 指定参数,后期调用时,需要声明所提供数据的参数名称,不必按顺序。
def func(name): print name func(name=‘x‘)
- 默认参数,在括号中需默认一个数值,多个参数的话需要位于最后面,后期再调用时可以不填写,填写需指定参数名称。
def func(name,sex =‘0‘): print name func(‘x‘)
- 动态参数,*参数名接受内容为元组 **参数名接受内容为字典,如果实参的名称带有*则直接替换形参内容。
def func(*args): print args # 执行方式一 func(11,33,4,4454,5) # 执行方式二 li = [11,2,2,3,3,4,54] func(*li) def func(**kwargs): print args # 执行方式一 func(name=‘wupeiqi‘,age=18) # 执行方式二 li = {‘name‘:‘wupeiqi‘, age:18, ‘gender‘:‘male‘} func(**li)
三,三元运算
三元运算(三目运算),是对简单的条件语句的缩写。
1 2 3 4 5 |
|
四,深浅拷贝
一、数字和字符串
对于 数字 和 字符串 而言,赋值、浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
二、其他基本数据类型
对于字典、元祖、列表 而言,进行赋值、浅拷贝和深拷贝时,其内存地址的变化是不同的。
1、赋值
赋值,只是创建一个变量,该变量指向原来内存地址,如:
1 2 3 |
|
2、浅拷贝
浅拷贝,在内存中只额外创建第一层数据
1 2 3 4 5 |
|
3、深拷贝
深拷贝,在内存中将所有的数据重新创建一份(排除最后一层,即:python内部对字符串和数字的优化)
1 2 3 4 5 |
|