Part 1:Python学习笔记
===================
4.4.字典表 dict
4.4.1. 示例1:{}声明
- 定义:d = {'ISBN':'234234',‘Title’:‘Python 入门’,'Price':39.00}
- 显示值:d['Title'] --> 'Python 入门'
- d['Price'] --> 39.00
- 追加:d['Author'] = 'Jerry' 注意:字典表对于不存在的键值会自动追加,但是list不可以这么操作
- 得到键值:d.get('Price') --> 39.00
- 返回没有取得键值:d.get('price',0.0) --> 0.0
- 支持原位改变:d['Price']=99.00
4.4.2.示例2:函数声明
- 定义:emp = dict(name='Mike',age=20,job='Dev')
- len(emp) --> 3
- 合并操作:1. dep={'department':'技术部'}; 2. emp.update(dep)
- 弹出键值:emp.pop('age') --> 20
4.4.3.声明
- {键:值, ...}
- dict(键=值)
4.4.4.操作
- 获取
- d['键']
- d.get('键',默认值)
- 合并
- d.update(d2)
4.4.5.属性
- keys()
- values()
- items() : Key+value
- 支持嵌套:emp = {'age':20,'name':{'firstname':'Jerry','lastname':'lee'},'dept':'行政部'}
4.4.6.排序键
- 将keys()放入列表
- ks = list(d.keys())
- ks.sort()
- 使用全局函数sorted()
- ks = d.keys()
- for k in sorted(ks):
- Print(k,d.get(k))
4.5. 元组 tuple
4.5.1.特征
- 任意对象的有序集合
- 通过下标访问
- 属“不可变”类型
- t = (1,2,3,4,5)
- t[0]=99 --> 报错
- 长度固定,任意类型,任意嵌套
4.5.2.声明
- (元素,)即(1,2)
- 1,2 省略()的声明
- index(val): 查找索引
- count(val): 统计数量
4.5.3.计算
- (1,2)+(3,4) --> (1,2,3,4)
4.5.4.赋值
- x = (40,) --> (40,)
- x = 40, --> (40,)
- len(x) --> 1
4.5.5.Named tuple
- from collections import namedtuple
- Employee = namedtuple('Employee',['name','age','department','salary'])
- jerry = Employee('Jerry', age=30, department='财务部', salary=9000.00)
- jerry.name --> 'Jerry'
- jerry.salary --> 9000.0
4.6. 文件
4.6.1.基本语法
- file = open(‘文件名”,mode)
- mode
- r 读
- w 写
- a 追加
- b 二进制
- 示例:f = open('data.bin','rb').read()
- + 即可读,又可写
- 示例
- 新建立一个hello.txt的文件:myfile = open('hello.txt','w')
- myfile.write('优品课堂\n') --> 5
- myfile.write('Hello world!\n') --> 13
- 读取一个存在文件:f = open('hello.txt')
- f.read() 读取全部内容,相当于指针
- f.readline() 每次读取一行信息
- l = open('hello.txt').readlines() --> ['优品课堂\n','Hello world!\n']
- for line in l:
- print(line)
- 中文显示正常:f = open('course.txt','w',encoding='utf8')
- f.write('优品课堂 Python教程\n') --> 14
- f.write('www.codeclassroom.com') --> 21
- f.close()
- 新建立一个hello.txt的文件:myfile = open('hello.txt','w')
4.6.2.操作
- read()
- readline()
- readlines()
- close()
- 示例
- x,y,z = 1,2,3
- l = [1,2,3]
- f = open('datafile.txt','w')
- f.write('{},{},{}'.format(x,y,z)) -->5
- f.write(str(l)) -->9
- f.close()
4.6.3.pickle存取Python对象
- dump(对象,目标文件)
- load(文件)
- 示例1:d = {'a':1,'b':2}
- f = open('datafile.pkl','wb')
- import pickle
- pickle.dump(d,f)
- f.close()
- open('datafile.pkl','rb').read()
- 示例二:f = open('datafile.pkl','rb')
- data = pickle.load(f)
4.7.汇总
4.7.1.集合
- 序列
- 可变
- 列表 list
- 不可变
- 字符串 str
- 元组 tuple
- 字节数组
- 可变
- 映射
- 字典表 dict
- 集合
- Set
4.7.2.数字
- 整型
- int
- boolean
- 浮点型
- float
- Decimal
- ... 分数
4.7.3.可调用
- 函数 function
- 生成器 Generator
- 类 Class
- 方法 Method
4.7.4.其他
- 文件
- None
- 视图
- ...
4.7.5.内部
- Type
- ...
5. 语句,表达式以及流程控制
5.1.代码风格
5.1.1.代码格式指南
- PEP8
- 缩进4空格
- 一行不超过79个字符
- 空行
5.2.赋值语句
5.2.1.示例1: x = 5
5.2.2.示例2:(x,y) = (5,10)
- or x,y = 5,10
5.2.3.示例3:[x,y,z]=[10,20,30]
- 交换:x,y = y,x
- or [a,b,c]=(1,2,3)
5.2.4.示例4:a,b,c='uke'
- a --> 'u'
- b --> 'k'
- c --> 'e'
5.2.5.基本
5.2.6.序列赋值
- 示例1:a,b,c = 'you' 没问题
- a,b,c = 'youpin' 报错
- 1修改为
- a,b,c = s[0],s[1],s[2:]
- 2或修改为 a,b,*c = s
5.2.7.扩展序列解包赋值
- *变量,获取剩余元素到list
- 示例:s = 'youpin';a,b,*c = s
5.2.8.多目标赋值
- a=b=c='uke'
5.2.9. 参数化赋值
- x = 5; y = 6; x = x + y; x --> 11
- a,b = 1,2; a += b; a --> 3
- += 或者extend()来扩展列表值
5.3.表达式
5.3.1.函数调用
5.3.2.方法调用
5.3.3.字面值
5.3.4.打印操作
- print()
- sep='分隔符'
- end='终止符'
- file=指定文件
- 示例:print(s,url,url2,end='......\n',file=open('result.txt','w',encoding='utf8'))
5.4.流程控制
5.4.1.if .. 语句
- 一般格式
- score = 75
- if score >= 60:
- print('及格')
- else:
- print('不及格')
- 实现多重分支
- 三元运算符
- a = Y if X else Z
- 示例:result = '及格' if score >= 60 else '不及格'
- a = Y if X else Z
5.4.2.while循环
- 一般格式
- x = 'youpinketang'
- while x:
- print(x,end=' ')
- x = x[1:]
- break 跳出
- continue 跳到循环的头,进行相面的循环
- pass 占位符
- else
5.4.3.for循环
- 一般格式
- for x in 目标序列:
- 示例:for x in [1,2,3,4]
- 后续语句pass
- 示例:print(x, end=' ')
- for x in 目标序列:
- range() 返回生成器对象,不是列表
- for x in range(1,100):
- enumerate()
- s = 'youpinketang'
- for (idx, item) in enumerate(s):
- print('{},{}'.format(idx + 1,item))