python,day2:文件处理/列表/元组/字典

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个到第14name [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

 

 

作业:

制作一个员工信息表:姓名/年龄/部门/地址/手机号/邮箱,通过模糊任何一个唯独的模糊查询能查到。

 

posted @ 2018-08-19 16:53  月半月半儿瓜  阅读(111)  评论(0编辑  收藏  举报