作業3月25號

2022-09-06 13:03:22 字數 1854 閱讀 3955

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 if

not u['

name

'].startswith('a'

)]print(info)

6 使用遞迴列印斐波那契數列(前兩個數的和得到第三個數,如:0 1 1 2 3 4 7...)

def

number(n):

if n <= 1:

return

n

else

:

return(number(n-1) + number(n-2))

for i in range(10):

res =number(i)

print

(res)

if n <0:

7 乙個巢狀很多層的列表,如l=[1,2,[3,[4,5,6,[7,8,[9,10,[11,12,13,[14,15]]]]]]],用遞迴取出所有的值

def

f1(list1):

for x in

list1:

if type(x) is

list:

#如果是列表,應該再迴圈、再判斷,即重新執行本身的**

f1(x)

else

:

print

(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...