PYTHON学习之路_PYTHON基础(3)
学习内容:
1、Python字典
2、Python集合
3、Python字符编码
4、Python文件操作
5、Python实例
一、Python字典
1、定义:
dic1={'name':'alex','age':18,}
字典的Key值定义规则:
1)数据类型不可变,数据类型可哈希的就可以是key
2)字典的Key值是唯一的
2、查询
dic1['name'] 若Key值不存在,会报错
dic1.get(123456) 若Key值不存在,返回None
3、增加
dic1['sex'] = 'F'
4、更改
dic1['sex'] = 'M'
5、删除
del dic1['sex']
6、字典的内置函数
dic1.clear() #清空字典
dic1=names.copy() #复制
dic2=dic1.fromkeys('abc',1) #重新定义一个字典,结果与dic1无关
dic1.get('name') 等同于dic1['name'] 若Key值不存在,前者不报错,后者会报错
dic1.items() #将key、value转成元组保存在列表中
dic1.pop('key值') #删除字典中的key值,打印返回value
dic1.popitem() #随机删除 若key值为空,出现KeyError错误
dic1.setdefault('gender',[]) #新增字典内容==dic1['gender']
dic1.setdefault('gender',[]).append('male')
names.update(dic1) # names新增dic1内容,重复的覆盖
dic1.update(name='lhf',gender='nale') #将内容新增到字典中,key值重复的覆盖掉
dic1.values() #取所有value值保存在列表中
dic1.keys() #取所有key值保存在列表中
import copy
copy.copy() #浅copy
copy.deepcopy() #深copy 完全克隆一份
二、Python集合
1、创建
s1={'a',1,2,3,4,5,6,7,8,9,10,2,3,3}
list_1 = [1,3,5,7,26,8,65]
list_1=set(list_1)
python_set={'alex','lhf','sijiayong','panmfeng','sunahaifeng'}
linux_set={'zhao','qian','alex','lhf'}
go_set={'alex','linyi','qiner'}
print (type(python_set))
2、集合间的操作
1)交集 & or intersection
python_set.intersection(linux_set)
2)并集 | or union
python_set.union(linux_set)
3)差集 - or difference
python_set.difference(linux_set)
4)对称差集 ^ or symmetric_difference
python_set.symmetric_difference(linux_set)
5)子集 <= or issubset
s1.issubset(s2)
6)父集 >= or issuperset
s1.issuperset(s2)
3、集合的内置函数
s1.update('eh') #按单个增加
s1.add('hello') #按一个字符串增加
s1.pop() #随机删除
s1.remove('Y') #指定删除,若没有该元素,则报
s1.discard('o') #不报错的删除,若没有该元素,返回None
三、Python字符编码
1、内存固定使用unicode编码,硬盘的编码(即你可以修改的软件编码)
2、使用什么编码往硬盘存,就用什么编码去读取
3、程序运行分俩个阶段:1)从硬盘读到内存;2)python解释器运行已经读到内存的代码
4、针对一个test.py文件来说,python与pycharm、nodpad++的区别是多了第二步骤
5、coding指定的编码只是表面从硬盘到内存用什么区读
四、Python文件操作
1、打开文件
指定用utf-8编码打开文件,默认是读模式(r)
f=open ('lyrics',encoding='utf-8')
2、读取文件
f.readline().strip()
3、写文件
f=open ('lyrics','w',encoding='utf-8')
f.write('天安门上太阳升\n')
4、遍历文件
第一种方法(一行一行读取,高效):
for line in f :
print (line.strip())
f.close()
第二种方法(也是一行一行读取):
for i in range(5):
print (f.readline().strip())
第三种方法(把文件全部读取到内存中,建议不要用):
for index,line in enumerate(f.readlines()):
if index <5:
print (line.strip())
else:
break
5、文件的混合模式
r+ 读写
w+ 写读
a+ 追加读
6、文件的内置函数
print(f.closed) #关闭打开的文件
print (f.encoding) #文件编码
print (f.fileno()) #文件时系统帮忙打开的,返回的是系统内该文件的文件标签
f.flush() #将缓冲区的内容写入硬盘
f.isatty() #判断是否为tty终端文件
print(f.name) #打印f文件的名字
f.seek() #移动光标
f.seekable() #二进制文件不可以seek
f.tell() #告诉当前光标的位置
f.truncate( ) #截断,从光标的位置把内容全截断,对于文本的截断没大用,只能按字符截断,对二进制文件有用
7、文件的内容修改
f = open('lyrics','r',encoding='utf-8')
f2 = open('lyrics_new','w',encoding='utf-8')
find_str = '夜晚的'
new_str = '白天的寒冷的'
for line in f:
if find_str in line:
line =line.replace(find_str,new_str)
f2.write(line)
f.close()
f2.close()
五、Python实例
1、sed替换程序
2、修改haproxy配置文件程序
PYTHON学习之路_PYTHON基础(3)的更多相关文章
- PYTHON学习之路_PYTHON基础(1)
学习内容: 1.Python介绍 2.Python程序初接触和变量 3.Python用户交互 4.Python数据类型 5.Python循环if...(elif)...else 6.Python循环w ...
- PYTHON学习之路_PYTHON基础(10)
学习内容: Python进程与线程 1.线程及线程类 2.线程守护 3.线程等待 4.线程锁 5.信号量 6.timer用法 7.队列 8.事件驱动 9.生产者消费者模型 10.进程及进程同步 11. ...
- PYTHON学习之路_PYTHON基础(8)
学习内容: Python模块介绍 1.经典类 or 新式类 2.抽象接口 3.静态方法.类方法.属性方法 4.反射 5.异常处理 6.socket编程初识 7.用socket实现get.put文件等功 ...
- PYTHON学习之路_PYTHON基础(6)
学习内容: Python模块介绍 1.time &datetime模块 2.random 3.shutil 4.shelve 5.xml处理 6.configparser 7.hashlib ...
- PYTHON学习之路_PYTHON基础(4)
学习内容: 1.Python函数的基本语法 2.Python函数的返回值与变量 3.Python嵌套函数 4.Python递归函数及实例(二分查找) 5.Python匿名函数 6.Python内置方法 ...
- PYTHON学习之路_PYTHON基础(2)
学习内容: 1.Python数据类型与变量 2.Python字符串 3.Python列表 4.Python while循环 5.Python字典 6.Python实例 一.Python数据类型与变量 ...
- python学习之路-day2-pyth基础2
一. 模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,第三方库存放位置:site-packages sys模块简介 导入模块 import sys 3 sys模 ...
- Python学习之路-Day2-Python基础2
Python学习之路第二天 学习内容: 1.模块初识 2.pyc是什么 3.python数据类型 4.数据运算 5.bytes/str之别 6.列表 7.元组 8.字典 9.字符串常用操作 1.模块初 ...
- Python学习之路-Day1-Python基础
学习python的过程: 在茫茫的编程语言中我选择了python,因为感觉python很强大,能用到很多领域.我自己也学过一些编程语言,比如:C,java,php,html,css等.但是我感觉自己都 ...
随机推荐
- EhCache RMI 分布式缓存/缓存集群
EhCache 系统简介 EhCache 是一个纯 Java 的进程内缓存框架,具有快速.精干等特点. EhCache 的主要特性有: 快速.精干 简单: 多种缓存策略: 缓存数据有两级:内存和磁盘, ...
- UVM的类库
[转]http://www.asicdv.com/ 一个UVM验证平台可以看成由多个模块组合在一起的,这和以前的verilog代码,以及verilog结合其它各种语言的验证手段在理念上是一样的,最大的 ...
- M站开发规范——By Klax
M站开发的规范,根据具体情况,涉及代码组织的模式,代码编码风格,模块化等,经...研究...决定: 1.采用AMD 规范(RequireJS)实现js模块化. 2.单个文件尽量采用面向对象编程和模块化 ...
- js- this
this对象是基于函数在执行的环境绑定的. (一) this 在闭包环境中指向的对象. <Js高级程序设计>中提到: 每个函数在被调用时,其活动对象都会自动取得两个特殊变量:this和 ...
- Ajax调用SpringMVC ModelAndView 无返回情况
在项目中使用Ajax的时候,success中返回的data一直都是null,也没有报错.在确定Ajax语法没有错误,也没有牵扯跨域问题后,用排除法挨着删除代码,发现是因为Spring MVC会自动把方 ...
- iOS 自带二维码扫描功能的实现
自从iOS7以后中新增了二维码扫描功能.因此可以在不借助第三方类库的情况下简单的写出二维码的扫描功能: 原生的二维码扫描功能在AVFoundation框架下,所以在使用原生的二维码扫描功能时要先导入A ...
- SQLserver聚集表、堆和索引
SQL Server 表使用下列两种方法之一来组织其分区中的数据页: 聚集表是有聚集索引的表.数据行基于聚集索引键按顺序存储.聚集索引按 B 树索引结构实现,B 树索引结构支持基于聚集索引键值对行进行 ...
- oracle 第一章总结
sysdba: 即数据库管理员,权限包括:打开数据库服务器.关闭数据库服务器.备份数据库.恢复数据库.日志归档.会话限制.管理功能.创建数据库.sys用户必须用 sysdba身份才能登录,syste ...
- Xamarin踩坑经历
1.SDK版本 Android SDK Build-tools必须安装23.0.1版,不得升级高版本,否则将导致异常:尝试在条件"$(_DeviceSdkVersion) >= 21& ...
- 十分钟使用github pages +hexo拥有个人博客
最近想自己搭建自己的个人博客,毕竟这样觉得比较geek,但是搜了资料,感觉良莠不齐,好多东西说的含糊不清,于是自己记录下自己的搭建过程. 1, 安装nodejs 2, 安装git 3, 申请githu ...