# 1.寫函式,檢查獲取傳入列表或元組物件的所有奇數字索引對應的元素,並將其作為新列表返回給呼叫者。
def odd_index(iterable):
return iterable[1::2]
# 2.寫函式,判斷使用者傳入的物件(字串、列表、元組)長度是否大於5。
def longer_than_5(iterable):
# return true if len(iterable) > 5 else false
return len(iterable) > 5
# 3.寫函式,檢查傳入列表的長度,如果大於2,那麼僅保留前兩個長度的內容,並將新內容返回給呼叫者。
def retain_2(list):
return list if len(list) <= 2 else list[:2]
# 4.寫函式,計算傳入函式的字串中,[數字]、[字母] 以及 [其他]的個數,並返回結果。
def count_type(string):
count_list = [0, 0, 0]
for char in string:
if char.isdecimal() == true:
count_list[0] += 1
elif char.isalpha() == true:
count_list[1] += 1
else:
count_list[2] += 1
return count_list
# 5.寫函式,接收兩個數字引數,返回比較大的那個數字。
def cmp(digit_1, digit_2):
return digit_1 if digit_1 > digit_2 else digit_2
# 6.寫函式,檢查傳入字典的每乙個value的長度,如果大於2,那麼僅保留前兩個長度的內容,並將新內容返回給呼叫者。
# dic =
# ps:字典中的value只能是字串或列表
def retain_value_2(dic):
for key in dic.keys():
dic[key] = dic[key] if len(dic[key]) < 2 else dic[key][:2]
return dic
# 7.寫函式,此函式只接收乙個引數且此引數必須是列表資料型別,此函式完成的功能是返回給呼叫者乙個字典,此字典的鍵值對為此列表的索引及對應的元素。例如傳入的列表為:[11,22,33] 返回的字典為 。
def list_to_dic(list):
dic = {}
for i in range(len(list)):
dic.setdefault(i, list[i])
return dic
# 8.寫函式,函式接收四個引數分別是:姓名,性別,年齡,學歷。使用者通過輸入這四個內容,然後將這四個內容傳入到函式中,此函式接收到這四個內容,將內容追加到乙個student_msg檔案中。
with open(r'03 作業\student_msg.txt', encoding='utf-8', mode='a') as file_handler:
file_handler.write(name + ' ' + gender + ' ' + age + ' ' + degree + '\n')
while 1:
name = input('name:\n')
gender = input('gender:\n')
age = input('age:\n')
degree = input('degree:\n')
break
# 9.對第9題公升級:支援使用者持續輸入,q或者q退出,性別預設為男,如果遇到女學生,則把性別輸入女。
with open(r'03 作業\student_msg.txt', encoding='utf-8', mode='a') as file_handler:
file_handler.write(name + ' ' + gender + ' ' + age + ' ' + degree + '\n')
while 1:
name = input('name:\n')
gender = input('gender:\n')
age = input('age:\n')
degree = input('degree:\n')
if gender == '':
else:
break
# 寫函式,使用者傳入修改的檔名,與要修改的內容,執行函式,完成整個檔案的批量修改操作(選做題)。
def revise_file(old_contents, new_contents, file_name):
import os
with open(r'03 作業\{}'.format(file_name), encoding='utf-8', mode='r') as file_handler_1,\
open(r'03 作業\{}.bak'.format(file_name), encoding='utf-8', mode='w') as file_handler_2:
for line in file_handler_1:
line = line.replace(old_contents,new_contents)
file_handler_2.write(line)
os.remove(r'03 作業\{}'.format(file_name))
os.rename(r'03 作業\{}.bak'.format(file_name), r'03 作業\{}'.format(file_name))
revise_file('alex', 'sb', 'alex自述')
函式練習題
1.打字軟體的正確率 編寫函式,計算字串匹配的準確率,類似於打字軟體 orginstr為原始內容,userstr為使用者輸入內容 2.模擬輪盤 遊戲 轉盤分為三部分 一等獎 二等獎和三等獎 輪盤轉的時候是隨機的,如果範圍在 0,0.08 之間,代表一等獎 如果範圍在 0.08,0.3 之間,代表二等...
python函式練習題
1 函式的定義 將可重複使用的,實現某種功能的 段組織在一起 2 函式的語法 def 函式名 引數 函式體 return 2.1 函式名是乙個變數,因此命名規則需遵守變數命名規則 3 函式的呼叫 函式名 4 函式的返回值 return 可空 none 單個 多個以tuple返回給呼叫者 5 函式的引...
遞迴函式練習題
1 寫乙個函式,接收乙個引數,用來返回這個函式的階乘並輸出 12345 def func num if num 1 return 1 ret func num 1 return num ret print func 5 2 寫乙個函式實現斐波那契數列 1,2,3,5,8,13,21,34,55,89...