想开个学习笔记系列,就是拉一遍python开发知识,希望可以涵盖编程基础、python基础、数据分析、web框架等。
本笔记系列由视频跟学+知识点补充组成,大致会按照视频教程划分目录,补充知识点参考文章将会进行标注。
视频课程地址:https://edu.csdn.net/course/detail/10041
1.函数及变量
函数:实现单一功能的代码块
help(func)
: 输出函数func的信息(如函数开头多行注释中的介绍)
(1)传参可变与不可变的区别
def func1(*args):
print(type(args)) #output: <class 'tuple'> 是元组
for i in args:
print(i,end=' ')
func1(1,2,3,4) #output: 1 2 3 4
print()
def func2(**kwargs):
print(type(kwargs)) #output: <class 'dict'> 是字典
for (k,v) in kwargs.items():
print(k,' ',v,end='||')
func2(name1 = 1,name2 = 2) #output: name1 1||name2 2||
#output
<class 'tuple'>
1 2 3 4
<class 'dict'>
name1 1||name2 2||
(2)fun(*args,**kwargs)
关键字*args
和**kwargs
:用于函数定义,将不定长数量的参数传递给一个函数。
*args
:用来发送一个非键值对的不定长度的参数列表给一个函数。
**kwargs
:用来发送一个键值对的不定长度的参数列表给一个函数。如果要在一个函数里处理带名字的函数,则需要用**kwargs关键字。
def func1(*args):
for i in args:
print(i,end=' ')
func1(1,2,3,4) #output: 1 2 3 4
print()
def func2(**kwargs):
for (k,v) in kwargs.items():
print(k,' ',v,end='||')
func2(name1 = 1,name2 = 2) #output: name1 1||name2 2||
(3)变量作用域
def func(val):
val = 200 #直接在局部作用于定义参数val,如果是直接使用会优先在局部作用域查找变量名
print(val) #200
val = 100
func(val)
print(val)#100
(4)全局变量
使用 global 申明全局变量:
def func():
global val
print(val) #100
val = 100
func()
注意:形参不能是全局变量,否则会报错如下
def func(val):
global val #形参不能是全局变量
print(val)
val = 100
func(val)
#output
global val
^
SyntaxError: name 'val' is parameter and global
2.lambda表达式
格式:lambda 参数1,...参数n :函数体
(该函数体只有一行语句,其计算值默认作为lambda函数返回值)
func = lambda a,b,c:a+b+c
print(func(1,2,3)) # 6
其他应用:
#字典按值排序
dict1 = {
'1':4,'2':3,'3':2,'4':1}
res = sorted(dict1.items(),key=lambda items:items[1])
print(res) #[('4', 1), ('3', 2), ('2', 3), ('1', 4)]
#匿名函数自执行
print((lambda a:a*a)(2)) #4
3.内置函数
列举一些常用内建函数:
print(abs(-2)) #2 求绝对值
print(divmod(7,2)) #(3,1) 求商和余数
print(ord('A')) #65 求ascii编码
print(chr(65)) #A 由ascii编码求字符
print(pow(2,3)) #8 2**3
print(pow(2,3,4)) #0 (2**3)%4
print(sum([1,2,3],4)) #10 (1+2+3)+4(最多2个param)
func = compile('for i in range(0,10): print(i,end=" ")','','exec') #compile 数将一个字符串编译为字节代码。
exec(func) #0 1 2 3 4 5 6 7 8 9
func = compile('1+3','','eval')
print(eval(func)) #4
a = 1; b =