標籤:ppi sed 檔案 ... not lenovo xxx 思考 開頭
今日作業:
1、求檔案a.txt中總共包含的字元個數?
2、思考題 思考為何在第一次之後的n次sum求和得到的結果為0?
with open(‘a.txt‘,encoding=‘utf-8‘) as f:
g=(len(line) for line in f)
print(sum(g))
3、檔案shopping.txt內容如下
mac,2000,3
lenovo,3000,10
tesla,1000000,10
chicken,200,1
求總共花了多少錢?
列印出所有的商品資訊,格式為
[{‘name‘:‘xxx‘,‘price‘:‘3333‘,‘count‘:3},....]
求單價大於10000的商品資訊,格式同上
4、檔案內容如下,標題為:姓名,性別,年紀,薪資
egon male 18 3000
alex male 38 30000
wupeiqi female 28 20000
yuanhao female 28 10000
要求:
從檔案中取出每一條記錄放入列表中,
列表的每個元素都是{‘name‘:‘egon‘,‘sex‘:‘male‘,‘age‘:18,‘salary‘:3000}的形式
5 根據1得到的列表,取出薪資最高的人的資訊
6 根據1得到的列表,取出最年輕的人的資訊
7 根據1得到的列表,將每個人的資訊中的名字映射成首字母大寫的形式
8 根據1得到的列表,過濾掉名字以a開頭的人的資訊
##1sum_file = 0with open(‘a.txt‘,encoding=‘utf-8‘) as f: for line in f: sum_file += len(line)print(sum_file)with open(‘a.txt‘,encoding=‘utf-8‘) as f: g=(len(line) for line in f) print(sum(g))##2#g是產生器,產生器的取值特性就是從頭到尾取完就結束,sum迭代取值第一次就取完了,所以後面g都是0,即sum也都是0##3total =0with open(‘shopping.txt‘,encoding=‘utf-8‘) as f: for line in f: line = line.strip(‘\n‘).split(‘,‘) price = int(line[1])*int(line[2]) total += priceprint(total)with open(‘shopping.txt‘,encoding=‘utf-8‘) as f: g = (int(line.strip(‘\n‘).split(‘,‘)[1])*int(line.strip(‘\n‘).split(‘,‘)[2]) for line in f) print(sum(g))shopping_info = []with open(‘shopping.txt‘,encoding=‘utf-8‘) as f: for line in f: line = line.strip(‘\n‘).split(‘,‘) keys = [‘name‘,‘price‘,‘count‘] d = {k:v for k,v in zip(keys,line)} shopping_info.append(d) print(d)print(shopping_info)shopping_info = []with open(‘shopping.txt‘,encoding=‘utf-8‘) as f: for line in f: line = line.strip(‘\n‘).split(‘,‘) if int(line[1]) > 10000: keys = [‘name‘,‘price‘,‘count‘] d = {k:v for k,v in zip(keys,line)} shopping_info.append(d)print(shopping_info)##4user_info = []with open(‘4.txt‘,encoding=‘utf-8‘) as f: for line in f: line = line.split() keys = [‘name‘,‘sex‘,‘age‘,‘salary‘] d = {k:v for k,v in zip(keys,line)} user_info.append(d)print(user_info)##5user_info = []with open(‘4.txt‘,encoding=‘utf-8‘) as f: for line in f: line = line.split() keys = [‘name‘,‘sex‘,‘age‘,‘salary‘] d = {k:v for k,v in zip(keys,line)} user_info.append(d)print(user_info)salary_list = [int(index[‘salary‘]) for index in user_info]# for index in user_info:# salary_list.append(int(index[‘salary‘]))res = max(salary_list)with open(‘4.txt‘,encoding=‘utf-8‘) as f: for line in f: if res == int(line.split()[3]): print(line)##6user_info = []with open(‘4.txt‘,encoding=‘utf-8‘) as f: for line in f: line = line.split() keys = [‘name‘,‘sex‘,‘age‘,‘salary‘] d = {k:v for k,v in zip(keys,line)} user_info.append(d)print(user_info)age_info = (int(age[‘age‘]) for age in user_info)# for age in user_info:# age = int(age[‘age‘])# age_info.append(age)for info in user_info: if int(info[‘age‘]) == min(age_info): print(info)##7user_info = []with open(‘4.txt‘, encoding=‘utf-8‘) as f: for line in f: line = line.split() keys = [‘name‘, ‘sex‘, ‘age‘, ‘salary‘] d = {k: v for k, v in zip(keys, line)} user_info.append(d)print(user_info)for name in user_info: name[‘name‘] = name[‘name‘].capitalize()print(user_info)##8user_info = []with open(‘4.txt‘, encoding=‘utf-8‘) as f: for line in f: line = line.split() keys = [‘name‘, ‘sex‘, ‘age‘, ‘salary‘] d = {k: v for k, v in zip(keys, line)} user_info.append(d)print(user_info)new_user_info = [aname for aname in user_info if not aname[‘name‘].startswith(‘a‘)]# new_user_info = []# for aname in user_info:# if not aname[‘name‘].startswith(‘a‘):# new_user_info.append(aname)print(new_user_info)View Code
python-code-14