python学习道路(day3note)(元组,字典 ,集合,字符编码,文件操作)
1.元组()
元组跟列表一样,但是不能增删改,能查。元组又叫只读列表
2个方法 一个 count 一个 index
2.字典{}
字典是通过key来寻找value
因为这里功能比较多,所以写入了一个Code里面,后面加了注释。
#!/usr/bin/env python
#_*_coding:utf-8_*_
info = {
'stu1101':"Tenglan Wu",
'stu1102':"LongZe Luola",
'stu1103':"XiaoZe Maliya",
}
#print(info)
#print(info["stu1101"]) #查找
#print(info.get('stu1104')) #查找 常用
#info['stu1101'] = "武藤兰" #修改
#info['stu1104'] = "cangjingkong" #添加
#del
#del info["stu1101"] #删除
#info.pop("stu1101") #删除
#print("stu1103" in info) #判读是不是有个这个key,返回true false
# #print(info)
b = {
'stu1101':"alex",
1:3,
2:5,
}
#info.update(b) #把2个字典合并,有交叉的Key覆盖,没有的旧添加
#print(info)
#c = dict.fromkeys([6,7,8],[1,{"name":"alex"},444]) 没用
#print(c)
#print(info.items()) #把字典转化为一个列表
for i in info:
print(i,info[i]) #这个更高效
for k,v in info.items(): #items 是把字典转为列表过程,时间会慢
print(k,v)
3.集合
跟数学里面的定义差不多
因为这里功能比较多,所以写入了一个Code里面,后面加了注释。
#!/usr/bin/env python #_*_coding:utf-8_*_ #集合 #list_1 = [1,4,5,7,3,6,7,9] #集合也是无序的 #list_1 = set(list_1) #list_1化为集合 #print(list_1,type(list_1)) #list_2 = set([2,6,0,66,22,8,4]) #print(list_1,list_2) #交集 & #print(list_1.intersection(list_2)) #并集 | #print(list_1.union(list_2))#union联合的意思 #差级 我有你没有,你有我没有的 - #print(list_1.difference(list_2)) #保留1里面有的,2里面有没有的 #子集 我包含你 #print(list_1.issubset(list_2)) #返回ture false #print(list_1.issuperset(list_2)) #对称差集 ^ 上面的 #print(list_1.symmetric_difference(list_2))#互相都没有的取出来放到一块 #print(list_1.isdisjoint(list_2)) #判断有没有交集 返回true false #添加一项 #list_1.add(999) #print(list_1) #添加多个 #list_1.update([888,777,555]) #print(list_1) #删除 #list_1.remove(888) #不用print删除就是删除了 #list_1.pop() #list_1.discard(777) #删除不会报错 #长度 #print(len(list_1)) #成员使用 #in not in
4.字符编码
记住一句话,用什么编码写的程序,就用什么编码打开
#!/usr/bin/env python
#_*_coding:utf-8_*_
#默认编码
#import sys
#print(sys.getfilesystemencoding())
#s = "您好"
#s_to_unicode = s.decode("utf-8")
#print(s_to_unicode)
#s_to_gbk = s.decode("utf-8").encode("gbk") #(不给值,就是默认)
#print(s_to_gbk)
5.文件操作
一般r+ w的关闭和打开具有清空文件作用
因为这里功能比较多,所以写入了一个Code里面,后面加了注释。
#!/usr/bin/env python
#_*_coding:utf-8_*_
#文件操作
#readlines 是将文件读成列表的形式 ,每行就是一个元素 预先读到内存里成列表
#date = open("yesterday.txt",encoding="utf-8").read()
#f = open("yesterday.txt",'w',encoding="utf-8")#f 文件句柄,就是这个文件的内存文件对象 w这个写模式是创建文件会覆盖
#date= f.read()
#f = open("yesterday.txt",'a',encoding="utf-8") #a 就是追加不覆盖文件
#ate2 =f.read()#文件指针的这种东西,date2没有内容,文件只读一遍
#print(date)
#f.write("我爱北京天安门.......,\n") #斜杠为转义符,\n就是回车
#f.write("天安门上太阳升......")
#读前五行
#f = open("yesterday.txt",'r',encoding="utf-8")
#print(f.readline())
#print(f.readline())
#print(f.readline())
#for i in range(5):
# print(f.readline())
#for line in f.readlines(): #循环列表,相当于每一行,每一行元素
# print(line.strip())
#print(f.readlines()) #每行一个元素
#for index,line in enumerate(f.readlines()): #打印到9行前内容 但是提前读了全文 f.readline适合小文件
# if index == 9:
# print("___fengexian____")
# continue
# print(line.strip())
#count = 0
#for line in f: #一行行的读,内存也只读一行信息#打印到9行前内容
# if count == 9:
# print("fdsfsdfsdfsdf___fengexian____dsfdfdsfdsfs")
# count += 1
# continue
# print(line)
# count += 1
#print(f.read(5))#读五个字符
#print(f.tell())#告诉你文件句柄的指针打印出来 按字符个数计数
#f.seek(0)#回到光标的开始位置 0可以是其他前面的会被删除显示
#print(f.readline())
#print(f.encoding)#打印文件编码
#print(f.fileno()) #返回一个编号,一个接口,调用操作系统文件的IO
#print(f.name)#打印文件名字
#print(f.isatty())#终端 tty
#print(f.readable())#判断文件是否可读
#print(f.writable())#判断文件是否可写
#print(f.flush())#刷为了解决文件存在内存然后恶意关闭,其实他是有个内存值,当达到了这个值会直接写到硬盘里面
#f = open("yesterday.txt",'a',encoding="utf-8")
#print(f.closed) #判断文件是否关闭
#f.truncate(10)#本意截断的意思 不写就是清空 从10往后截断 还需要跟a配合
#f.close()
#文件读写
#f = open("yesterday.txt",'r+',encoding="utf-8") #以读和追加打开 a+追加读
##print(f.readline())
#print(f.tell())
#f.write("12456----duiaoi-------")
#写读
#f = open("yesterday.txt",'w+',encoding="utf-8") #先创建个文件再追加进去 rb读二进制文件 显示b'就是bytes文件
#多用于网络传输,进制文件
#f.write("12456----duiaoi-------")
#print(f.tell())
#f.seek(10)
#print(f.tell())
#print(f.readline())
#f.write("wode tian a shenme iqnkguang ")
#在原文件上的修改必须同字符,不然不能修改会把内容覆盖
#ru r+u windows上\r回车,linux\n回车为了统一
#硬盘修改文件方法
#f = open("yesterday.txt",'r',encoding="utf-8")
#f_new = open("yesterday.bak.txt",'w',encoding="utf-8")
#for line in f:
# if "年少轻狂" in line:
# line = line.replace("年少轻狂","hahaha")
# f_new.write(line)
#f.close()
#f_new.close()
#with 语法 可以不需要手动写关闭
#with open("yesterday.txt",'r',encoding="utf-8") as f:
# for line in f:
# print(line.strip())
#同时打开2个文件
#with open("yesterday.txt",'r',encoding="utf-8") as f,\
# open("yesterday.bak.txt",'w',encoding="utf-8") as f_new:
python学习道路(day3note)(元组,字典 ,集合,字符编码,文件操作)的更多相关文章
- PYTHON 学习笔记3 元组、集合、字典
前言 在上一节的学习中.学习了基本的流程控制语句,if-elif-else for while 等,本节将拓展上一节学习过的一些List 列表当中操作的一些基本方法,以及元祖.序列等. 列表扩展 我们 ...
- python学习Day7 数据类型的转换,字符编码演变历程
一.数据类型的转换 1.1.1.字符转列表:lst1 = str.split(默认空格,也可依据指定字符分界),若无分界字符,就没法拆分,这时可以直接放进list转成列表 ----> s1 = ...
- python学习之路(2)---字符编码
二进制编码 bin(300) python计算二进制编码,十进制转2进制 一个二进制位就是1bit 1bit代表了8个字节,00001111 1bit = 1bytes 缩写1b 1kb ...
- python字符编码-文件操作
字符编码 字符编码历史及发展 为什么有字符编码 ''' 原因:人们想要将数据存入计算机 计算机的能存储的信息都是二进制的数据 内存是基于电工作的,而电信号只有高低频两种,就用01来表示高低电频,所以计 ...
- Python 基础-python-列表-元组-字典-集合
列表格式:name = []name = [name1, name2, name3, name4, name5] #针对列表的操作 name.index("name1")#查询指定 ...
- python3笔记十八:python列表元组字典集合文件操作
一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle #数据持久性模块 #封装的方法def OptionData(data,path): # ...
- **python中列表 元组 字典 集合
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特 ...
- python学习笔记(一)元组,序列,字典
python学习笔记(一)元组,序列,字典
- python中列表 元组 字典 集合的区别
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...
随机推荐
- [k]优雅的css
1.图片文字列表 (2016-01-25) 1.1 实现效果图如下: 1.2 代码: html:( 代码十分优雅哦! ) <ul> <li class="step1&quo ...
- POJ 1860(spfa)
http://poj.org/problem?id=1860 题意:汇率转换,与之前的2240有点类似,不同的是那个题它去换钱的时候,是不需要手续费的,这个题是需要手续费的,这是个很大的不同. 思路: ...
- ++i vs i++
[分析] i++与++i哪个效率更高? (1)在内建数据类型的情况下,效率没有区别: (2)在自定义数据类型Class的情况下,++i效率更高! 自定义数据类型的情况下:++i返回对象的引用:i++总 ...
- HTTP状态码(2xx,3xx,4xx,5xx)
HTTP状态码负责表示客户端请求的返回结果,标记服务器的处理结果. HTTP常用状态码分为5种: 类别 原因短语 1xx Informational(信息状态码) 接受请求正在处理 2xx Suc ...
- 简单快捷好用的vim配置和终端配置推荐
vim 配置实用spf13-vim,安装方便简单快捷,极力推荐. 另外oh-my-zsh 终端配置很好,与之搭配使用效果更佳. 安装都很简单,一个脚本搞定, 都是在gitHub上开源的,自行搜索,这里 ...
- ASP.NET MVC与ASP.NET Web Form简单区别与适用场景
概论: Asp.net 微软 提供web开发框架或者技术.分Web Form和ASP.NET MVC.下面简单说明各自优缺点及使用场景. Web Form 优点: 1.支持丰富的服务器控件.如:Gr ...
- 进击的Python【第一章】:Python背景初探与Python基础(一)
Python背景初探 一.Python起源 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做 ...
- 本机tomcat的server.xml被还原的问题及解决办法
将tomcat的server.xml进行修改,但当eclipse发布站点后,发布tomcat中的server.xml会被还原. 原因是eclipse会将自己的tomcat配置文件对tomcat覆盖,解 ...
- 廖雪峰js教程笔记12 用DOM更新 innerHMTL 和修改css样式
拿到一个DOM节点后,我们可以对它进行更新. 可以直接修改节点的文本,方法有两种: 一种是修改innerHTML属性,这个方式非常强大,不但可以修改一个DOM节点的文本内容,还可以直接通过HTML片段 ...
- Linux 下MySql 重置密码
1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录 ...