1. 程式人生 > >python-code-14

python-code-14

clas sta pla 首字母 strip res xxx view nco

今日作業:
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開頭的人的信息
技術分享圖片
##1
sum_file = 0
with 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

##3
total =0
with 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 += price print(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) ##4 user_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) ##5 user_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) ##6 user_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) ##7 user_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) ##8 user_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