1.文件处理(i/o处理)
在python2里用file,在python3里用open
w没有创建/有就覆盖
r 阅读
a 追加
创建文件
f = file(‘myfile.txt’,’w’)
f = write(“hello world!”)
f.close
遍历文件内容
a = file(‘user_info.txt’)
for line in a.readlines();
print line,
a.close()
追加
f = file(‘test.txt’,’a’)
f.write(“append to the end”)
f.close()
注意:文件不关闭的的话,数据只能存储在内存中。
读取文件一般用f.xreadlines ,省内存
文件内容替换
for line in fileinput.input(“filepath”,inplace=1):
line = line.replace(“oldtext”,”newtext”)
print line
适用场合:日志分析处理用得比较多。
2.列表
list是处理和存放一组数据的列表
用途:购物列表/工资列表/送礼列表
语法:
names = ['a','b','v']
里面对应的元素编号从0开始
即names[0]=a
若取其中的内容:切片
取第4个到第14个name [4:14]
取最后5个:names[-5:]
取前5个:names[:5]
1000个名字中取tom:用索引
>>>names.index(tom)
>>>559
>>>names[559]
>>>tom
names.append()
names.count()
names.extend() --将两个列表合起来
names.insert()
names.index()
names.pop() --删除最后一个
names.remove() --删除指定内容,而不是具体的值
names.reverse() --反转
names.sort() --排序
替换列表中指定内容
names = ['hp', 'a', 'hp', 'b', 'hp', 'c', 'hp', 'd']
for i in range(names.count('hp')):
names[names.index('hp')] = 'alax'
list() ---将一个字符串变成一个列表
str() ---将一个列表变成一个字符串
拼接:’’_join()
程序编写时,一定要记得加.close()关闭文件
但也可以用 with
with open(‘test2.txt’,’r’) as f:
for i in f.readlines():
print i
批量删除:
del 不仅能删除多个,还能整个删除,慎用。
列表练习程序:
1.让用户输入工资
2.输出购物菜单及产品价格
3.计算用户是否可支付
4.输出用户剩余的钱,问用户是否继续购物,如果选择继续,继续进行,直到钱不够为止
5.如若不够,输出用户还需要工作多久才能买得起!
流程图:
编程:
'''-----begin----'''
# Author:Sunyw
import sys
#输入金额
salary = int(input("Please input you salary:"))
#物品清单
products = [
["Iphone",5800],
["MacPro",12000],
["NB shoes",560],
["I-watch",3000],
["coffee",58]
]
#购物清单
shopping_list = []
#进入循环
while True:
#按列打印出清单
print("-----------\nProducts:")
for i in products:
print(products.index(i),i[0],i[1])
#选择商品
choice = input("\033[24;1mPlease choice what you want to buy:\033[0m").strip() #此处strip待查用途
#此处加一个退出
if choice == "quit":
print("\033[36;1mYou have %s left\nYou shopping list:\033[0m"%(salary))
for p in shopping_list:
print("\t",p[0]) # \t待查作用
sys.exit("Goodbye!") #用了一个退出
if len(choice) == 0:continue
if not choice.isdigit(): continue # isdigit() 待查作用
choice = int(choice)
#加一个判断,防止输入products中没有的选项导致系统报错
if choice > 4:
#此处也可以写成 if choice > len(products): 表示products里元素的个数0到4 一共5个
print("\033[31;1m Not find this item\033[0m")
continue
#将选择的商品加入购物车,并扣钱
pro = products[choice]
if salary >= pro[1]:
salary = salary - pro[1]
shopping_list.append(pro)
print("\033[34;1m\nAdding %s to your shopping list.\n you left %s. \033[0m"%(pro[0],salary))
print("\033[35;1mshopping list :\033[0m")
#for历遍以后打印出购买的物品,更好看,用户体验
for q in shopping_list:
print("\033[35;1m\t\033[0m",q[0])
print("\033[37;1mcontine or quit..\033[0m")
#钱不够,让其重新选择
else:
print("\033[32;1mYou have %s ,less then %s,Please choice another one.\033[0m"%(salary,pro[1]))
print("\033[32;1mshopping list:\033[0m")
#for历遍以后打印出购买的物品,更好看,用户体验
for w in shopping_list:
print("\t",w[0])
'''-----end-----'''
3.元组 a = (‘a’,’b’,’c’)
特点:不能修改,不能删除,里面的值固定,用于不让别人改某些内容时使用。
元组 变 列表:
d = tuple(a)
列表 变 元组:
list(d)
4.Python字典:能让你存更多的数据
语法:dict = {
‘key1’:[‘values1’,’values2’,’values3’,’values4’....’valuesN’],
‘key2’:[‘values1’,’values2’,’values3’,’values4’....’valuesN’],
‘key3’:[‘values1’,’values2’,’values3’,’values4’....’valuesN’],
....
‘keyN’:[‘values1’,’values2’,’values3’,’values4’....’valuesN’],
}
#创建一个数据字典
contacts = {
'0001':['Alax','HR','sell'],
'0002':['Tom','IT','technology'],
'0003':['Juar','banker','finance']
}
#打印contacts员工的信息
print(contacts)
#打印0001员工的信息
print(contacts['0001'])
#将0001员工的HR改成market
contacts['0001'][1]='market'
print(contacts['0001'])
#将0001的员工信息全部改
contacts['0001']=['CK','selecter','cleaer']
print(contacts['0001'])
#查找一个值是否在字典里,不存在返回false,存在返回True
print('0005' in contacts.keys())
print('0005' in contacts)
#python2.7里面的用法 print(contacts.has_key('0005'))
#将一个字典转换成一个列表
print(contacts.items())
#循环一个字典:
#方法一:
for k in contacts:
print(k,contacts[k])
#方法二:
for k,v in contacts.items():
print(k,v)
输出结果:
参数说明:
a = {
'name':['Alax'],
'age':['33'],
'higher':['170']
}
get 有就取出,没有就无显示
a.get('name')
a.get('sex')
a.keys() 取出所有的keys
a.values() 取出所有的values
a.pop('name') 通过key删除指定的内容
a.['sex']='famle' 加入指定的内容
a.popitem() 随机删除一个内容!!!慎用
a.setdefault('key','values') 以key为标准,分三种情况:
a.update(b) 作用将另外一个字典b的内容合并到a里,若b的内容发生改变,再a.update(b)一次,可更新a里面的内容。
a.clear() 清空内容,保留空字典a
del a 彻底删除字典a
a.copy(c) 将字典a拷贝一份【实时的】字典b,无论谁有变化,都将实时的改变另一个。
深copy和浅copy
作业:
制作一个员工信息表:姓名/年龄/部门/地址/手机号/邮箱,通过模糊任何一个唯独的模糊查询能查到。