python学习笔记
本笔记只是个人在学习python的时候对于python特有的特性做个记录,防止忘记了。(有记录复习也方便)
pycharm好用的插件
- rainbow bracket (防止多括号丢括号的情况)
函数定义
python只有函数没有过程
ps:函数干完事要返回值,过程只是干个活。
def function1():
print('hello world')
#---------------------------
def function2(parameter):
print(parameter)
#---------------------------
def function3(*parameters):
print(parameters[0], parameters[1], parameters[2])
#---------------------------
def function3(*parameters, exp):
print(parameters[0], parameters[1], parameters[2], exp)
functions('hello', 'world', 123, exp = '好好学习,天天向上')
函数内部修改全局变量
count = 5
def function():
global count #必须加上这句,否则不能操作全局变量
count = 10
print('函数运行结束!')
function()
print(count) # 结果为10
内嵌函数
def func1():
print('func1正在被调用...')
def func2():
print('func2正在被调用...')
func2()
# 测试
func1()
闭包
def function_A(value_a):
def function_B(value_b):
return value_a * value_b
return function_B
# 测试
function_A(4)(5) #值为20
本人对于闭包的理解为内嵌函数使用外部函数的变量并且返回内嵌函数,实现动态生成我们想要的函数。
python自己实现switch
def trends_function(int_value):
def func_1():
print('动态生成函数1')
def func_2():
print('动态生成函数2')
def func_3():
print('动态生成函数3')
switch = {1: func_1,
2: func_2,
3: func_3}
return switch.get(int_value)
# 测试
trends_function(1)()
trends_function(2)()
trends_function(3)()
Lambda 表达式
list(filter(lambda x: x % 2, range(10))) #从1到10种筛选奇数
#结果 [1, 3, 5, 7, 9]
list(map(lambda x: x * 2, range(10)))
# 结果 [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]