day4学python

字符编码转换

#coding:gbk                 //此处必声明 文件编码(看右下角编码格式)

#用来得到python默认编码
import sys
print(sys.getdefaultencoding())

#python本身所有数据类型默认Unicode (与文件编码无关)
s="你好"

#encode得到的其他编码是byte类型 decode得到的Unicode是str类型
print(s.encode("utf-8").decode("utf-8").encode("gb2312").decode("gb2312"))
@@@@@@@@@@@@@@@@@@@@@@@@
总结:一切编码都可解码为最大的Unicode 反之Unicode可转换为其他编码形式

ASCII==>GB2312 ==>GB18030==>GBK(常用中文编码)  中文编码演变
ASCII 英语占1个字节 8位 没有中文
万国码Unicode 所有字符都占2个字节 16位
=>>>>
升级成 可变长的编码UTF-8 所有英文字符 按照ASCII码占一个字节 中文字符占3个字节

========================================================================================
#函数作用
#1.代码重用
#2.保持一致性
#3.可扩展性


#返回数=0个 返回none
def fun1():
print(1)

#返回数=1个 返回这个数
def fun2():
print(2)
return 0

#返回数>1个 返回元组组合
def fun3():
print(3)
return 1,[0,1,3,6],{"sa":"bi"}


def num(x,y=2):
print(x,y)
num(1,2) #与形参列表一一对应
num(y=1,x=2) #位置参数都标出 与顺序无关
num(2,y=3) #关键参数只能放于位置参数后
num(2) #默认参数非必传 但也可给 并覆盖

def test(x,*args): #参数组 形参以*开头 只能接受位置参数 不能接受关键参数
print(x) #取出首位 接受多个参数其他位变为元组
print(args)
test("23",23,1,4353,["32",234],{"s":2})
test(*[1,32,43,2])


#**kwargs
def test2(**kwargs): #接受关键字参数变为字典形式
print(kwargs)
test2(name='cf',age=20,sex="man")
test2(**{'name':'al','age':'10','sex':'f'})

总结:
def test3(name,age=18,*args,**kwargs): #按形参顺序 *args(反元组)位于一般形参后 **kwargs位于最后
print(name)
print(age)
print(args)
print(kwargs)
test3('cf',12,"s",sex="nan")

输出:
cf
12
('s',)       #位置参数变为元组
{'sex': 'nan'}  #关键字参数变为字典

猜你喜欢

转载自www.cnblogs.com/cc123nice/p/10463611.html