首页 > 技术文章 > Python中函数,字符编码,全局局部变量的学习

xiaobai09 2017-10-27 17:40 原文

 在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'

推荐阅读