Python学习日志day04-20210415

数据类型内置方法

# 字典
d = {
    'username':'jason',
    'password':123,
    'hobby':['read','study','music']
}
1.统计长度(键值对的个数)
	print(len(d))  # 3
2.获取值
    print(d['username'])  # jason
    print(d.get('hobby'))  # ['read', 'study', 'music']
    print(d['xxx'])  # 键不存在直接报错
    print(d.get('xxx'))  # 键不存在不报错  返回None(空)
    print(d.get('xxx','不会意思没有xxx这个键'))  # 自定义提示信息(键不存在才会展示)
    print(d.get('username','不会意思没有xxx这个键'))  # jason
3.修改值
    d['username'] = 'jasonNB'
    d['hobby'].append('run')
	print(d)  # 
4.删除值
    res = d.pop('password')  # 返回删除掉的value
    print(d,res)  # {'username': 'jasonNB', 'hobby': ['read', 'study', 'music', 'run']} 123
5.三个小方法
    print(d.keys())  # 获取字典所有的键  dict_keys(['username', 'password', 'hobby'])
    print(d.values())  # 获取字典所有的值  dict_values(['jason', 123, ['read', 'study', 'music']])
    print(d.items())  # 获取字典所有的键值对  dict_items([('username', 'jason'), ('password', 123), ('hobby', ['read', 'study', 'music'])])

# 元组
t = (11,22,33,44)
1.统计长度
    print(len(t))  # 4
2.索引取值和切片操作
    print(t[0],t[1:3]) # 11 (22,33)
3.元组内元素不能被修改
    t1 = (11,22,33,[1,2,3])
    t1[-1].append(666)
    print(t1)  # (11, 22, 33, [1, 2, 3, 666])

# 集合
"""
1.去重
2.关系运算
"""
# 去重:集合内不允许出现重复的元素 会自动去重
    se = {11,11,22,22,111,22,11,33,44,55}
    print(se)  # {33, 22, 55, 11, 44, 111}
# 关系运算
    s1 = {'jason','kevin','tony'}
    s2 = {'jason','tom','jack'}
    print(s1 & s2)  # 交集  共同好友
    print(s1 | s2)
    print(s1 ^ s2)
    print(s1 - s2)
    print(s1 > s2)

在这里插入图片描述

字符编码

理论特别多 结论特别少

前提:
    我们在使用计算机的时候输入的是我们各自国家的文字
    但是计算机存储数据的时候只识别01二进制数
    
    人类的字符	 参考本  	二进制
 
字符编码
	记录了人类的字符与数字的对应关系
   
# 1.一家独大
	计算机是有美国人发明的,美国人一开始只想着让计算机能够识别英文
    美国人开发了一套字符编码表
    	ASCII码表
        	记录了英文字符与数字的对应关系
            8bit=1bytes 表示一个英文字符
# 2.群雄割据
	中国 
    	GBK码表
        	记录了英文字符、中文字符与数字的对应关系
            1bytes 表示一个英文字符
            2bytes表示一个中文字符(遇到生僻字可能采用3bytes 4bytes...)
    日本	
    	shift_JIS码表
        	1bytes 表示一个英文字符
        	记录了英文字符、日文字符与数字的对应关系
    韩国
    	Euc_kr码表
        	1bytes 表示一个英文字符
        	记录了英文字符、韩文字符与数字的对应关系
# 3.天下一统
	unicode万国码
    	统一使用2bytes存储字符
       
    utf8
    	是针对unicode的优化版本	
        	1bytes 表示一个英文字符
            3bytes  表示一个中文字符
        
"""
内存使用的是unicode
硬盘使用的是utf8
"""

1.文件不乱码的核心
	文件当初以什么编码存的就以什么编码打开
2.编码与解码
	编码	encode
    	将人类的字符按照指定的编码编成计算机能够直接识别的数据
    解码   decode
    	将计算机数字类型的数据按照指定的编码解码成人类的字符
    info = '年少有为'
    # 编码
    res = info.encode('GBK')
    print(res)  # b'\xc4\xea\xc9\xd9\xd3\xd0\xce\xaa'
    # 解码
    res1 = res.decode('GBK')
    print(res1)  # '年少有为'

文件操作

文件
	操作系统提供给用户用来操作计算机硬盘的快捷方式
 
绝对路径与相对路径
	绝对路径
        不需要参考系 地址给任何人都可以直接找到对应的数据
    相对路径
        需要有参考系 地址只能给基于参考系的才可以找到数据
        
转义
	\n表示换行符
    \t表示制表符(四个空格)
	在字符串路径的前面加字母r
    
# 读写模式
	r	以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。若文件路径不存在,r模式直接报错。
    w	打开一个文件只用于写入。如果该文件已存在,则打开文件并从头开始编辑,原有内容会被删除。如果该文件不存在,则创建新文件。
    a	打开一个文件用于追加。若已存在,文件指针会放在文件结尾。若不存在,则创建新文件进行写入。

# 操作模式
	t	文本模式  只能操作文本文件,必须指定encoding参数
    b	二进制模式	能操作所有文件
    
# 文件拷贝
# 先打开待拷贝的文件
with open(r'111.jpg','rb') as f:
     data = f.read()
# 之后创建新文件写入数据即可
with open(r'D:\222.jpg','wb') as f:
    f.write(data)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值