1、檔案內容如下,標題為:姓名,性別,年紀,薪資
egon male 18 3000
alex male 38 30000
wupeiqi female 28 20000
yuanhao female 28 10000
要求:從檔案中取出每一條記錄放入列表中,
列表的每個元素都是的形式
dic_list =with open(r
'info_db.txt
', '
rt', encoding='
utf-8
') as f:
for line in
f: info_dic ={}
name, ***, age, salary = line.strip().split('')
info_dic[
'name
'] =name
info_dic[
'***
'] =***
info_dic[
'age
'] =int(age)
info_dic[
'salary
'] =int(salary)
print(dic_list)
2 根據1得到的列表,取出所有人的薪資之和
sum_salary=(sum(i['salary
'] for i in
dic_list))
print(sum_salary)
3 根據1得到的列表,取出所有的男人的名字
all_name=(n['name
'] for n in dic_list if i['
***']=='
male')
print(all_name)
4 根據1得到的列表,將每個人的資訊中的名字對映成首字母大寫的形式
all_title=(w['name
'].title for w in
dic_list)
print(all_title)
5 根據1得到的列表,過濾掉名字以a開頭的人的資訊
info = [u for u in dic_list ifnot u['
name
'].startswith('a'
)]print(info)
6 使用遞迴列印斐波那契數列(前兩個數的和得到第三個數,如:0 1 1 2 3 4 7...)
defnumber(n):
if n <= 1:
return
n
else
:
return(number(n-1) + number(n-2))
for i in range(10):
res =number(i)
(res)
if n <0:
7 乙個巢狀很多層的列表,如l=[1,2,[3,[4,5,6,[7,8,[9,10,[11,12,13,[14,15]]]]]]],用遞迴取出所有的值
deff1(list1):
for x in
list1:
if type(x) is
list:
#如果是列表,應該再迴圈、再判斷,即重新執行本身的**
f1(x)
else
:
(x)f1(l)
作業3月24號
1 編寫課上講解的有參裝飾器準備明天默寫 def auth db type defdeco func name input your name strip pwd input your password strip if db type file print 基於檔案的驗證 if name egon...
作業3月17號
1 編寫檔案修改功能,呼叫函式時,傳入三個引數 修改的檔案路徑,要修改的內容,修改後的內容 既可完成檔案的修改 def info import os path input 請輸入路徑 front input 請輸入修改內容 later input 請輸入修改後內容 with open path,r ...
作業3月16號
1 通用檔案copy工具實現 src fire input 複製路徑 dsc fire input 貼上路徑 with open r format src fire mode rb as f1,open r format dsc fire mode wb as f2 for msg in f1 f2...