Python基础部分:10、数据类型的内置方法和字符编码

一、数据类型内置方法

1、字典dict内置方法

1.1、类型转换

将其他类型数据转换成字典
	dict()
条件:
	1、字典的转换一般不需要关键字,都是自己手动转换

2、字典必须要掌握的方法

2.1、取值方式

1、按key取值:  不推荐使用
	代码用法:
	# 1、设置一个字典,绑定变量名
	user_name = {'name':'kangkang', 'age':18, 'hobby':'basketball'}
	# 2、按K取值
	print(user_name['name'])
	# 3、若字典中没有这个值,则会直接报错
	print(user_name[addr]) 
    
2、get用法:	推荐使用
	代码用法:
	# 1、设置一个字典,绑定变量名
	user_name = {'name':'kangkang', 'age':18, 'hobby':'basketball'}
	# 2、get用法
	print(user_name.get('name'))
	# 3、若字典中没有这个值,则会输出None
	print(user_name.get('name'))

2.2、修改内部数据值

代码用法:	修改数据值后地址不变
	# 1、设置一个字典,绑定变量名
	user_name = {'name':'kangkang', 'age':18, 'hobby':'basketball'}
	# 2、按K修改指定数据值
	usse_name['name'] = 'zhangzhang'
新增键值对:
	# 3、键不存在则新增键值对
	user_name['gender'] = 'man'

2.3、删除数据

1、del删除
	代码用法:
	# 1、设置一个字典,绑定变量名
	user_name = {'name':'kangkang', 'age':18, 'hobby':'basketball'}
	# 2、del 后加变量名中括号内填入需要删除值的键
	del user_name['name']
    
2、pop删除
	关键词:pop()
    
	代码用法:
	# 1、设置一个字典,绑定变量名
	user_name = {'name':'kangkang', 'age':18, 'hobby':'basketball'}
	# 变量名后加关键词,括号内输入需要删除数据值的键
	user_name.pop('hobby')

2.4、统计字典中键值对个数

关键词:len()

	代码用法:
	# 1、设置一个字典,绑定变量名
	user_name = {'name':'kangkang', 'age':18, 'hobby':'basketball'}
	# 2、使用关键词查看字典键值对个数
	print(len(user_name))    

2.5、字典三剑客

1、一次性获取字典所有的键
	关键词:keys()
	代码用法:
	# 1、设置一个字典,绑定变量名
	user_name = {'name':'kangkang', 'age':18, 'hobby':'basketball'}
	# 2、一次性获取字典所有的键
	print(uese_name.keys())   
    
2、一次性获取字典所有的值
	关键词:values()
	代码用法:
	# 1、设置一个字典,绑定变量名
	user_name = {'name':'kangkang', 'age':18, 'hobby':'basketball'}
	# 2、一次性获取字典所有的值
	print(uese_name.values()) 	
	
3、一次性获取字典所有键值对
	关键词:items()
	代码用法:
	# 1、设置一个字典,绑定变量名
	user_name = {'name':'kangkang', 'age':18, 'hobby':'basketball'}
	# 2、一次性获取字典所有的值
	print(uese_name.items()) 

2.6、补充说明

1、快速生成相同字典
	关键词:formkeys()
   	代码用法:
    # 设置需要生产的字典的关键词,绑定变量名
    print(dict.fromkeys(['name', 'age', 'hobby'],123))
    
打印结果:
    # 生产的字典键值公用一个值
	{'name': 0, 'age': 0, 'hobby': 0, 123: 0}	

1、元组tuple内置方法

1.1、类型转换

将其他类型转换为元组
	tuply()
 条件:
	1、可以被for循环的数据都可以转换tuple

2、元组必须要掌握的方法

2.1、索引取值

代码表现:
	# 设置一个列表,绑定变量名
	a1 = (1, 3, 5, 7, 9)
	# 按索引方式取值
	print(a1[1])

2.2、切片操作

1、切片操作
代码表现:
	# 设置一个列表,绑定变量名
	a1 = (1, 3, 5, 7, 9)
	# 使用切片取值,中括号内输入取值区间,冒号隔开,顾头不顾尾
	print(a1[0:3])

2.3、间隔,步长

代码表现:
	# 设置一个列表,绑定变量名
	a1 = (1, 3, 5, 7, 9)
	# 括号内第三个数字可控制取值间隔
	print(a1[0:3:2])	

2.4、统计元组内数据值个数

关键词:len()
	代码用法:
    # 设置一个列表,绑定变量名
    a1 = (1, 3, 5, 7, 9)
    # 关键词内部填入需要统计数据的变量名
    print(len(a1))

2.5、统计元组内数据值出现的次数

关键词:count()
	代码用法:
	# 设置一个列表,绑定变量名
	a1 = (1, 5, 5, 3, 4)
	# 在关键词后方括号内输入需要统计的数据值
	print(al.count(5))   

2.6、统计元组内指定数据值的索引值

关键词:index()
	代码用法:
	# 设置一个列表,绑定变量名
	a1 = (1, 3, 4, 5, 6)
	# 在关键词后输入需要指定数据值的索引值
	print(a1.index(6))   

2.7、元组使用条件

1、元组内若只有一个数据值,数据值后方必须加逗号
2、元组内索引绑定的值不能被修改(不可变类型)
3、元组不能新增或删除数据

3、集合set内置方法

1、类型转换

关键词:set()
  条件:
    1、集合内数据必须时不可变类型
    2、集合内数据时无序的,不可以索引	

2、集合需要掌握的方法

2.1.去重

关键词:list()
	性质:   集合的去重无法保留原先数据的排列顺序
 
	代码用法
    # 1、生成两个集合
    a1 = (1, 3, 5, 7, 9)
    a2 = (1, 5, 9, 12, 15)
    #、使用代码去重
    a1 = list(a2)

2.2关系运算

关键词:
	1、求差值:  &  
	2、求相同值:  -
	3、合并,去多余共同值:  |
	4、去插值,合并:  ^

4、字符编码理论

1.字符编码只针对文本数据
2.回忆计算机内部存储数据的本质
3.既然计算机内部只认识01 为什么我们却可以敲出人类各式各样的字符
	肯定存在一个数字跟字符的对应关系 存储该关系的地方称为>>>:字符编码本
4.字符编码发展史
	4.1.一家独大
    	计算机是由美国人发明的 为了能够让计算机识别英文
    	需要发明一个数字跟英文字母的对应关系
		ASCII码:记录了英文字母跟数字的对应关系
        	用8bit(1字节)来表示一个英文字符
            
 	4.2.群雄割据
    	中国人
        GBK码:记录了英文、中文与数字的对应关系
       	 	用至少16bit(2字节)来表示一个中文字符
            	很多生僻字还需要使用更多的字节
           英文还是用8bit(1字节)来表示
       日本人
    	  shift_JIS码:记录了英文、日文与数字的对应关系
    	韩国人
         Euc_kr码:记录了英文、韩文与数字的对应关系
  		"""
  		每个国家的计算机使用的都是自己定制的编码本		
  			不同国家的文本数据无法直接交互 会出现"乱码"
  		"""
  	4.3.天下一统
    	unicode万国码
        	 兼容所有国家语言字符
  			  起步就是两个字节来表示字符 
  		utf系列:utf8 utf16 ...
            专门用于优化unocide存储问题
            英文还是采用一个字节 中文三个字节

5、字符编码实操

1.编码与解码
	编码:将人类的字符按照指定的编码编码成计算机能够读懂的数据
        字符串.encode()
 	解码:将计算机能够读懂的数据按照指定的编码解码成人能够读懂
        bytes类型数据.decode()
2.python2与python3差异
	python2默认的编码是ASCII
		1.文件头
        	# encoding:utf8
    	2.字符串前面加u
        	u'我是字符串我前面加U'
 	python3默认的编码是utf系列(unicode)
posted @ 2022-09-30 20:49  kangshong  阅读(54)  评论(0编辑  收藏  举报