函数练习

#!/usr/bin/env python
# -*- coding:utf-8 -*-  
# by wk

'''
1、写函数,,用户传入修改的文件名,与要修改的内容,执行函数,完成批了修改操作
2、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数
3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
4、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
5、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
6、写函数,检查字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表
'''

import os


# 第一题
def update_file(old, new):
    with open('test.txt', 'r', encoding='utf8') as read_f, open('test_new.txt', 'w', encoding='utf8') as write_f:
        for line in read_f:
            if old in line:
                line = line.replace(old, new)
            write_f.write(line)
    os.remove('test.txt')
    os.rename('test_new.txt', 'test.txt')
    print('update success')


# 第二题
def count_enter(mystrings):
    count = 0
    mystring_list = [0, 0, 0, 0]
    for mystring in mystrings:
        if mystring.isdigit():
            mystring_list[0] += 1
        elif mystring.isalpha():
            mystring_list[1] += 1
        elif mystring.isspace():
            mystring_list[2] += 1
        else:
            mystring_list[3] += 1

    print('num is %s, letter is %s, Space is %s, Other is %s' % (
        mystring_list[0], mystring_list[1], mystring_list[2], mystring_list[3]))


# 第三题
def check_len(mystrings):
    if type(mystrings) == str:
        if len(mystrings) > 5:
            print('this is str and len > 5')
        else:
            print('this is str but len =< 5')
    elif type(mystrings) == list:
        if len(mystrings) > 5:
            print('this is list and len > 5')
        else:
            print('this is list but len =< 5')
    elif type(mystrings) == tuple:
        if len(mystrings) > 5:
            print('this is tuple and len > 5')
        else:
            print('this is tuple but len =< 5')


# 第四题
def check_list_len(mystrings):
    if len(mystrings)>2:
        print(mystrings[0:2])
    else:
        print(mystrings)


# 第五题
def check_odd(mystrings):
    i = 0
    new_mystrings = []
    while True:
        if i > len(mystrings)-1:
            break
        new_mystrings.append(mystrings[i])
        i += 2
    print(new_mystrings)


#第六题
def my_dic(mylendict):
    new_mydict = {}
    print(type(mylendict))
    for lenv in mylendict:
        if len(mylendict[lenv]) > 2:
            new_mydict[lenv] = mylendict[lenv][0:2]
        else:
            new_mydict[lenv] = mylendict[lenv]
    print(new_mydict)


if __name__ == '__main__':
    update_file('a', 'b')
    count_enter('asdasda123   @#$$')
    check_len([1, 2, 3, 4, 5])
    check_len((1, 2, 3, 4, 5, 6))
    check_len('aaaaaaaaaa')
    check_list_len(['a',1,2,'b','c',6])
    check_odd(['a',3,6,'g',5])
    dic = {"k1": "v1v1", "k2": [11, 22, 33, 44]}
    my_dic(dic)

 

posted @ 2017-07-27 16:39  GodSpeed034  阅读(115)  评论(0编辑  收藏  举报