09 練習題 函式 引數

2022-08-13 00:48:23 字數 2878 閱讀 1919

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