Python中函数,字符编码,全局局部变量的学习
在python2中默认的编码事ASCII,python3中是unicode,在python中encode,在转码的同时会把string变成bytes类型,在decode解码同时把bytes转成string。
上图是适用于python2中。
在python3中默认是unicode
msg = "我爱北京天安门" #msg_gb2312 = msg.decode("utf-8").encode("gb2312") msg_gb2312 = msg.encode("gb2312") #默认就是unicode,不用再decode,喜大普奔 gb2312_to_unicode = msg_gb2312.decode("gb2312") gb2312_to_utf8 = msg_gb2312.decode("gb2312").encode("utf-8")
在进行转换时所有的格式都要decode称为unicode在encode成你想要的格式。
函数:
在python中使用函数防止代码重用,保持一致性和可扩展性。
def fun1(): def fun2:()
print('in the fun1') print('in the fun2')
return 0
x = fun1()
y = fun2()
在打印这两个函数后显示 x = 0 y 是none 在fun2函数中没有进行return默认返回一个none。
在函数中可以进行传参数
def test(x,y) 这里的x y是形参
print(x)
print(y)
test(1,2) 这里调用函数 1,2是实参 这样时位置调用,必须要位置对应。
test (x=1,y=2)这样是关键参数调用,位置可以更换,但参数必须全有。
test(2,y=2)也可混合写,但必须是关键参数不能在位置参数前面
默认参数:
def test(x y=5)
print(x)
print(y)
在调用参数时 y可以写也可以不写
test(3)输出的就是 3,5
test(3,7)输出的就是3,7
在实参不固定时形参可以写成*args
def test(*args)
print(args)
形参中还是可传入字典是用**kwargs
def test(**kwargs)
print(kwargs)
test(name='zhang',age='23')
全局局部变量:
局部变量
def change_name(name):
print('before name',name)
name = 'ZHANG' #这里只是一个局部变量 局部变量只在函数这个作用域中
print('after name',name)
name =' zhang'
change_name(name)
print(name)
输出:before name zhang , after name ZHANG, zhang
全局变量:
声明一个全局变量要在文件头声明
name = 'zhang'
def change_name(name):
global name #这是在函数中修改全局变量的方式。如果全局变量是字符串和整数时,强烈不建议修改全局变量。列表和字典可以进行修改
name = 'ZHANG'