03,基础数据类型的补充与编码进阶

1,数据类型的补充

字符串

# captalize,swapcase,title
name = 'dfsgnbs'
print(name.capitalize()) #首字母大写
print(name.swapcase()) #大小写翻转
msg='taibai say hi'
print(msg.title()) #每个单词的首字母大写

# 内同居中,总长度,空白处填充
a1 = '余涛'
ret2 = a1.center(20, "*")
print(ret2)

# 寻找字符串中的元素是否存在
ret6 = a4.find("fjdk",1,6)
print(ret6)  # 返回的找到的元素的索引,如果找不到返回-1

ret61 = a4.index("fjdk",4,6)
print(ret61) # 返回的找到的元素的索引,找不到报错。

元组

tu = (1)
print(tu, type(tu))  # 1 
tu1 = ('alex')
print(tu1, type(tu1))  # 'alex' 
tu2 = ([1, 2, 3])
print(tu2, type(tu2))  # [1, 2, 3] 

tu = (1,)
print(tu, type(tu))  # (1,) 
tu1 = ('alex',)
print(tu1, type(tu1))  # ('alex',) 
tu2 = ([1, 2, 3],)
print(tu2, type(tu2))  # ([1, 2, 3],) 

# index:通过元素找索引(可切片),找到第一个元素就返回,找不到该元素即报错。
tu = ('太白', [1, 2, 3, ], 'WuSir', '女神')
print(tu.index('女神'))  # 0

# count: 获取某元素在列表中出现的次数
tu = ('太白', '太白', 'WuSir', '吴超')
print(tu.count('太白')) # 2

列表

# count(数)(方法统计某个元素在列表中出现的次数)。
a = ["q", "w", "q", "r", "t", "y"]
print(a.count("q"))  # 2

# index(方法用于从列表中找出某个值第一个匹配项的索引位置)
a = ["q", "w", "r", "t", "y"]
print(a.index("r"))
# sort (方法用于在原位置对列表进行排序)。
# reverse (方法将列表中的元素反向存放)。
a = [2, 1, 3, 4, 5]
a.sort()  # 他没有返回值,所以只能打印a
print(a)
a.reverse()  # 他也没有返回值,所以只能打印a
print(a)

# 列表也可以相加与整数相乘
l1 = [1, 2, 3]
l2 = [4, 5, 6]
print(l1+l2)  # [1, 2, 3, 4, 5, 6]
print(l1 * 3)  # [1, 2, 3, 1, 2, 3, 1, 2, 3]

字典

popitem 3.5版本之前,popitem为随机删除,3.6之后为删除最后一个,有返回值
dic = {'name': '太白', 'age': 18}
ret = dic.popitem()
print(ret, dic)  # ('age', 18) {'name': '太白'}

# update
dic = {'name': '太白', 'age': 18}
dic.update(sex='男', height=175)
print(dic)  # {'name': '太白', 'age': 18, 'sex': '男', 'height': 175}

dic = {'name': '太白', 'age': 18}
dic.update([(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')])
print(dic)  # {'name': '太白', 'age': 18, 1: 'a', 2: 'b', 3: 'c', 4: 'd'}

dic1 = {"name": "jin", "age": 18, "sex": "male"}
dic2 = {"name": "alex", "weight": 75}
dic1.update(dic2)
print(dic1)  # {'name': 'alex', 'age': 18, 'sex': 'male', 'weight': 75}
print(dic2)  # {'name': 'alex', 'weight': 75}


# fromkeys:创建一个字典:字典的所有键来自一个可迭代对象,字典的值使用同一个值。

dic = dict.fromkeys('abcd','太白')
print(dic) # {'a': '太白', 'b': '太白', 'c': '太白', 'd': '太白'}

dic = dict.fromkeys([1, 2, 3],'太白')
print(dic) # {1: '太白', 2: '太白', 3: '太白'}

# 这里有一个坑,就是如果通过fromkeys得到的字典的值为可变的数据类型,那么要小心了。
dic = dict.fromkeys([1, 2, 3], [])
dic[1].append(666)
print(id(dic[1]), id(dic[2]), id(dic[3]))  # {1: [666], 2: [666], 3: [666]}
print(dic)  # {1: [666], 2: [666], 3: [666]}

2,编码

ASCII码:包含英文字母,数字,特殊字符与01010101对应关系。

  a  01000001  一个字符一个字节表示。

GBK:只包含本国文字(以及英文字母,数字,特殊字符)与0101010对应关系。

  a  01000001  ascii码中的字符:一个字符一个字节表示。

  中 01001001 01000010  中文:一个字符两个字节表示。

 Unicode:包含全世界所有的文字与二进制0101001的对应关系。

  a  01000001 01000010 01000011 00000001

  b  01000001 01000010 01100011 00000001

  中 01001001 01000010 01100011 00000001

UTF-8:包含全世界所有的文字与二进制0101001的对应关系(最少用8位一个字节表示一个字符)。

     a   01000001  ascii码中的字符:一个字符一个字节表示。

  To 01000001 01000010   (欧洲文字:葡萄牙,西班牙等)一个字符两个字节表示。

  中  01001001 01000010 01100011  亚洲文字;一个字符三个字节表示。
# 编码
s1 = '中国'
s2 = s1.encode('utf-8')
print(s1)
print(s2, type(s2))  # b'\xe4\xb8\xad\xe5\x9b\xbd'
# 解码
a1 = b'\xe4\xb8\xad\xe5\x9b\xbd'
a2 = a1.decode('utf-8')
print(a2, type(a2))  # 中国

# bytes
b = b'hello'
print(b, type(b))
print(b.upper(), type(b))

# gbk--> utf-8
b1 = b'\xd6\xd0\xb9\xfa'  # gbk编码方式
s = b1.decode('gbk')
print(s)        # 中国
b2 = s.encode('utf-8')
print(b2)       # b'\xe4\xb8\xad\xe5\x9b\xbd'  utf-8 编码方式

# utf-8--> gbk
b1 = b'\xe4\xb8\xad\xe5\x9b\xbd'   # utf-8 编码方式
s = b1.decode('utf-8')
print(s)      # s 就是unicode编码方式
b2 = s.encode('gbk')
print(b2)       # b'\xd6\xd0\xb9\xfa'  gbk 编码方式

3,字符串格式化输出

格式化输出:可以理解成按你设定的方式去输出  ----看成模板来使用
% 占位符
%s  字符串  %d 有符号的十进制整数  %f 浮点数
%a.bf  a整个打印长度,b保留几位小数
# 方法一
age = 18
name = '王吉'
print('你的名字%s,年龄是%d岁' % (name, age))


# 方法二
name = '王吉'
yu_e = 100
liang = 800
print('%s先生,你好. 您本月话费余额为%.2f元,流量剩余%.2f M' %(name,yu_e,liang))


# 方法三
# format() 挖坑填坑  拼接
print('{}:{}'.format('gou1', 'gou2'))
page = 1
print('网址:第{}页'.format(page))


# 方法四:
# f表达式
name = '王吉'
yu_e = 100
liang = 800
print(f'{name}先生,你好. 您本月话费余额为{yu_e}元,流量剩余{liang}M')



更多内容可以查看自己学python的过程,简单笔记。-CSDN博客

更多内容可以查看自己学python的过程,简单笔记。-CSDN博客

更多内容可以查看自己学python的过程,简单笔记。-CSDN博客

你可能感兴趣的:(python)