python通用編程第二階段:函數

一、文件內容修改

用戶傳入修改的文件名,與要修改的內容,執行函數,完成修改操作

import os


def modify_file(file_name, old_content, new_content):
    with open(file_name, mode='rt', encoding='utf-8') as read_f, \
            open('%s.swap' % file_name, mode='wt', encoding='utf-8') as write_f:
        for line in read_f:
            if old_content in line:
                line = line.replace(old_content, new_content)

            write_f.write(line)

    os.remove(file_name)
    os.rename('%s.swap' % file_name, file_name)


modify_file('db.txt', '馬一特', '馬一特[Albert]')

二、計數

計算傳入字符串中【數字】、【字母】、【空格] 以及【其他】的個數

def calculate_count(data_str):
    dict_count = {'alpha': 0, 'number': 0, 'space': 0, 'other': 0}
    for i in data_str:
        if i.isalpha():
            dict_count['alpha'] += 1
        elif i.isdigit():
            dict_count['number'] += 1
        elif i.isspace:
            dict_count['space'] += 1
        else:
            dict_count['other'] += 1
    return dict_count


res = calculate_count('32441adhjf  ^&%$#@()*')
print(res)

三、獲取奇數位

獲取傳入列表或元組對象的所有奇數位索引對應 的元素,並將其作爲新列表返回

def get_odd_list(data):
    odd_list = []
    for i in data:
        if data.index(i) % 2:
            odd_list.append(i)
    return odd_list


print(get_odd_list([1, 2, 3, 4, ]))
print(get_odd_list((13, 4322, 2333, 114,)))
print(get_odd_list(['a', 'b', 'c', 'd']))

四、字典值截取

檢查字典的每一個value的長度,如果大於2,那麼僅保留前兩個長度的內容,並將新內容返回給調用者。

dict1 = {"k1": "v1v1", "k2": [11, 22, 33, 44], 'k3': (9, 8, 7, 65, 4)}


def check_up_list(data_dict):
    for key, value in data_dict.items():
        if len(value) > 2:
            data_dict[key] = value[:2]
    return data_dict


res = check_up_list(dict1)
print(res)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章