python基础二
内容:
1.列表、元组操作
2.字符串操作
3.字典操作
4.集合操作
5.文件操作
6.字符编码与转码
1.列表、元组操作
列表是我们最常用的数据类型之一,通过列表可以对数据实现最方便的有存储、修改等操作。
定义列表
1 | names = ['Alex',"Tenglan",'Eric'] |
通过下标访问列表中的元素,下标从0开始计数
1 | >>> names[0] |
切片:取多个元素
1 | >>> names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"] |
追加
1 | >>> names |
插入
1 | >>> names |
修改
1 | >>> names |
删除
1 | >>> del names[2] |
扩展
1 | >>> names |
拷贝
1 | >>> names |
统计
1 | >>> names |
排序&翻转
1 | >>> names |
获取下标
1 | >>> names |
元组
元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表
语法
1 | names = ("alex","jack","eric") |
它只有2个方法,一个是count,一个是index,完毕
2.字符串操作
特性:不可修改
1 | name.capitalize() 首字母大写 |
3. 字典操作
字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。
语法:
1 | info = { |
字典的特性:
dict是无序的
key必须是唯一的,so 天生去重
增加
1 | >>> info["stu1104"] = "苍井空" |
修改
1 | >>> info['stu1101'] = "武藤兰" |
删除
1 | >>> info |
查找
1 | >>> info = {'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya'} |
多级字典嵌套及操作
1 | av_catalog = { |
其它姿势
1 | #values |
循环dict
1 | #方法1 |
程序练习
程序: 三级菜单
要求:
1 | 打印省、市、县三级菜单 |
#### 4.集合操作
集合是一个无序的,不重复的数据组合,它的主要作用如下:
去重,把一个列表变成集合,就自动去重了
关系测试,测试两组数据之前的交集、差集、并集等关系
常用操作
1 | s = set([3,5,9,10]) #创建一个数值集合 |
5. 文件操作
对文件操作流程
打开文件,得到文件句柄并赋值给一个变量
通过句柄对文件进行操作
关闭文件
现有文件如下
1 | Somehow, it seems the love I knew was always the most destructive kind |
基本操作
1 | f = open('lyrics') #打开文件 |
打开文件的模式有:
1 | r,只读模式(默认)。 |
其它语法
1 | def close(self): # real signature unknown; restored from __doc__ |
with语句
为了避免打开文件后忘记关闭,可以通过管理上下文,即:
1 | with open('log','r') as f: |
如此方式,当with代码块执行完毕时,内部会自动关闭并释放文件资源。
在Python 2.7 后,with又支持同时对多个文件的上下文进行管理,即:
1 | with open('log1') as obj1, open('log2') as obj2: |
程序练习
程序1: 实现简单的shell sed替换功能
程序2:修改haproxy配置文件
需求:
1 | 1、查 |
原配置文件
1 | global |
6. 字符编码与转码
详细文章:
http://www.cnblogs.com/yuanchenqi/articles/5956943.html
http://www.diveintopython3.net/strings.html
需知:
1.在python2默认编码是ASCII, python3里默认是unicode
2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so utf-16就是现在最常用的unicode版本, 不过在文件里存的还是utf-8,因为utf8省空间
3.在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string
in python2
1 | #-*-coding:utf-8-*- |
in python3
1 | #-*-coding:gb2312 -*- #这个也可以去掉 |