笔者之前一直使用MATLAB和C++语言进行编程,因此,在本次课程中主要致力于分析比较python语言与C++语言的关键点(自用)
Day 01 Python入门及环境搭建
-
python中没有 i + + , i − − i++,i-- i++,i−− ⇒ i + = 1 , i − = 1 i +=1,i-=1 i+=1,i−=1
-
python中没有 && || ⇒ and or
-
list = [] → append, pop
-
tuple = () → append
⇒ { } 表示不可重复
-
set = {} → 元素不可重复
-
dict = {key : value , key : value} → 键不可重复
-
for循环: for … in range / list / tuple / ‘string’…
Day 02 Python基础(上)
-
字符串有find方法;列表没有find方法
-
生成器
g=(x * x for x in range(10))
调用方法:next(g) / for n in g
-
字符串方法
- count
- find
- index
- split
- replace
- upper
- lower
- capitalize
- strip → 删除字符串前的空格和字符串后的\n
-
列表方法
- append
- insert(index, 元素)
-
- (不改变原数组,单纯的相加)
- count
- index
- pop → 删除列表最后一项
- remove(元素) → 删除从前往后找到的第一项
-
格式化输出
- ’%s’ % (var)
- ’{ : s}’.format(var)
- f’{var}'
Day 03 python基础(下)
-
函数定义
def funcName(nargin):
pass
return var
-
参数传递
-
位置参数(var1,var2,…)
须以正确的顺序传入函数,数量必须与声明时一样
-
缺省参数(var1,…varn=default)
值如果没有传入,则被认为是默认值
-
可变参数(*vars)
传入的参数个数是可变的
-
关键字参数(定义 → ** var,传入→ varName = value)
允许传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict
-
命名关键字参数(定义 → name,age,*,height,weight,传入 → ‘张三’, 18, height = 180, weight = 75)
限制关键字参数的名字 → 防止函数更新造成参数歧义
参数定义的顺序:必选参数,默认参数,可变参数,命名关键字参数,关键字参数
-
-
变量的作用域
- 局部变量
- 全局变量
函数优先使用局部变量,在没有局部变量的情况下,使用全局变量
定义在函数内部的变量,函数结束后自动消亡
python函数中如有局部变量名与外部变量名冲突,则默认函数内该变量为局部变量,除非使用global声明
-
lambda匿名函数
- 定义 → func = lambda var1,var2,…,varn : 返回值的表达式
- 调用 → func(val1,val2,…,valn)
-
高阶函数
- 函数名其实就是指向函数的变量
-
map:
map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。
fx = lambda x:x**2 ls = [1,2,3,4,5,6,7,8,9] ms = [] for l in ls: ms.append(fx(l)) => 等价于: rst = map(fx, ls) list(rst)
-
reduce
用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,依此类推,最后得到一个结果。
-
sorted
- reverse = True → 从大到小排序
- key → 排序关键字(函数)
-
装饰器
- 闭包:封装函数的参数
- 闭包中尽量不要涉及到闭包函数外的循环变量 → 解决方法:可以设计三层函数
装饰器的主要作用是封装重复性的代码
- 在封装的函数前加@wrapperFunctionName即可
- 闭包:封装函数的参数