python老男孩第二课
文件处理
- 读文件实例 f=open('d:/a.txt','rb') for line in f.readlines(): line=line.strip('\n').split(:)
- R 以只读的模式打开文件 r+(rw) 从光标的位置读或者写
- W 以只写的模式打开文件,如果没有这个文件会创造一个文件,如果有这个文件,文件中内容会被清空。 w+ 会把原文件清空后再写入
- A 以追加的模式打开文件 f.flush 刷新(把数据写到文件中) str.strip() 把字符串中行首行尾空格退掉(只能脱行首行尾的内容) str.split('\') 把字符串以'\'分割转换成列表
- R+B 以二进制格式读写模式打开 Windows系统下用
- W+B 以二进制格式写读模式打开 Windows系统下用
- A+B 以二进制格式追加及读模式打开 Windows系统下用
- f.closesd 判断此文件是否关闭 返回的是布尔值 f.encoding f.mode 模式 f.name 文件的名字 f.seek 光标跳转到指定位置 f.tell 光标当前位置 f.next 下一行(迭代)与readline 效果一样,next读到头会报错而reandline读到头不会报错 f.truncate ([size]) 从文件开头截取(截断)多少并保存到原来的文件中
- f.read 以字符串方式读出所有内容 f.readlines 以列表的方式读出所有内容 f.readline 以字符串方式读一行
- f.write 写入一行 f.writelines 写入多行 注 写入的只能是字符串 f.flush() 强制刷新
字符串处理
- S.find(substring,[start,end]) 指定范围查找字符串,返回索引值,否则返回-1 s.index(substring,[start,end]) 指定范围查找字符串,找不到产生异常
- s.rfind(substring,[start,end]) 反向查找 s.rindex(substring,[start,end])
- s.count(substring,[start,end]) 返回找到的字符串的个数
- s.capitalize 首字母大写 s.lower 转小写 s.upper 转大写 s.swapcase 大小写互换
- s.spiit (str,'') 将string 转list,以空格切分 s.join(list,'') 将list转string 以空格连接
- s.startswith() 以什么开头 s.replsce(old,new) 把老字符替换成新的字符
处理字符串的内置函数
- len(str) 字符串长度 cmp(str,str1) 两个字符串比较,第一个大返回1 max(str) 寻找字符串中最大的字符 min(str) 寻找字符串中最小的字符
列表 有序的
- list.append() #追加元素 list. extend(list1或'str') 在原列表后追加一个列表组合成新列表 list.insert(number,'') 指定位置插入数据 del list[num] 删除下标对应的元素 list.remove('') 删除指定元素 list.pop()删除最后一个元素并返回
- list.count('') 指定元素出现的次数 list.index('',[start,stop]) 返回指定元素的下标 list.reverse() 倒序 list.sort() 排序
- list[star:stop:step] 列表切片
元祖 有序的 一但生成不可改变
- tuple.count() tuple.index()
字典 所有key必须是唯一
- d.get(key,0) 同 dict[key],返回key对应的values,没有返回0.[] 没有则抛出异常 d.has_key[key] 有则返回True,没有则返回False d.keys() 返回字典键的列表 d.values() 以列表的形式返回字典中的值,返回值的列表可包含重复元素 d.items() 将所有的字典项以列表方式返回,这些列表中的每一项都采自于[key,values],但项在返回时并没有特殊的顺序 d.setdefault(k,[d) 如果字典中key不存在,添加key,d 存在则不修改(初始值)
- d.update[dict2] 增加合并字典(跟新到老字典中) d.popitem() 得到一个pair,并从字典中删除它,已空则抛出异常 d.pop(key) 删除指定key 对应的values d.clear() 清空字典,同del dict。 d.copy() 拷贝字典(浅复制) d.cmp(dict1,dict2)比较字典(优先级为元素个数,键大小,键值大小) 第一个大返回1,小返回-1,一样返回0
- dictionary dict1=dict #一个字典赋值给另一个字典 dict2 = dict.copy() 克隆即拷贝
列表与字典
- 字典 ①查找和插入速度快,不会随着KEY的增加而增加 ②需要占用大量的内存 ③key 不可变 ④默认是无序
- 列表 ①查找和插入速度随着元素增加而增加 ②占用空间小 ③通过下标查询 ④ 有序
集合 所有元素都是唯一
- 特点: ①无序 ②元素不重复
- 功能 :① 关系测试 ②去重
- set.remove() 删除
a=set([1,2,3,4]) b=set([3,4,5,6])
a&b 交集 {3,4} a|b 并集 {1,2,3,4,5,6} a-b 差集 {1,2} a^b 对称差集 {1,2,5,6} a.issubset(b) a是b的子集 False a.issuperse a是否包含b false
作业:
员工信息表 用户可以模糊查询员工信息
购物车程序

#_*_ coding:utf-8 _*_ shopping={'apple':5,'book':12,'bike':800,'car':120000,'ipone':8000} in_row=int(input('请输入工资:')) bank=in_row list1={} if in_row ==0: vip=input('请输入商品名称:') mondy=int(input('请输入商品价格:')) shopping[vip]=mondy while bank >0: print(shopping) gouwuche=input('请输入购物名称:') if shopping.get(gouwuche, 0) > 0: if shopping.get(gouwuche,0)<=bank: if list1.get(gouwuche,0)>0: list1[gouwuche]=list1[gouwuche]+1 else: list1[gouwuche]=1 bank=bank-shopping.get(gouwuche,0) print('购物清单:',list1) print('余额:',bank) else: print('余额不足') else: print('无此商品') ques=input('是否退出或结账') if ques=='y' or ques=='Y': break else: print('余额为0,不能购买商品') print('购物清单:', list1) print('余额:', bank)