zoukankan      html  css  js  c++  java
  • python测试一

    1,写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。

    """
    2,写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
    """
    
    
    def nmber(ob_j):
    
        a = [ob_j[i] for i in range(len(ob_j)) if not i % 2 == 0]
    
        return a
    
    
    list = [0, 1, 2, 3, 4, 5, 6, 7, 8]
    
    
    b=nmber(list)
    
    print(b) #[1, 3, 5, 7]

    2,写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。

    """
    
    3,写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
    """
    
    def send(str, lis, tupe):
    if len(str) > 5:
    print("大于5")

    if len(lis) > 5:
    print("大于5")

    if len(tupe) > 5:
    print("大于5")


    a = "ashjdhajd"
    b = [1, 2, 3,]
    c = (1, 2, 3, 4, 5, 6)

    send(a, b, c)
    
    

    3、写函数,检查传入列表的长度,如果大于2,将列表的前两项内容返回给调用者。

    def funtion(ob_j):
        if len(ob_j) > 2:
            return ob_j[0:2]
    
    
    li = [1, 2, 3, 4, 5, 6, 7]
    print(funtion(li))

    4,写函数,计算传入函数的字符串中, 数字、字母、空格 以及 其他内容的个数,并返回结果。

    # 定义数字,字母,空客变量
    # 便利穿进来的字符串
    # 判断字符式什么累加变量
    # 返回结果
    
    
    def funtion(ob_j):
        nubmber = 0  # 数字
        blank = 0  # 空客
        other = 0  # 其他
        Letter = 0  # 字母
    
        for s in range(0,len(ob_j)):
            if ob_j[s].isalpha():  # 判断是否为全为字母
                Letter += 1
            elif ob_j[s].isdigit():  # 判断是否为数字
                nubmber += 1
    
            elif ob_j[s].isspace():  # 判断是否为空客
                blank += 1
            else:
                other += 1
        return "该字符串中数字有%d个,字母%d个,空格%d个,其他的%d个." % (nubmber, Letter, blank, other)
    
    
    a = "hhhasd55 45212"
    
    print(funtion(a))

    5,写函数,接收两个数字参数,返回比较大的那个数字。

    def size(x, y):
        add = lambda x, y: x > y
        a = add(x, y)
        if a:
            return x
        else:
            return y
    
    
    print(size(4, 3))
    

    6、写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

        dic = {"k1": "v1v1", "k2": [11,22,33,44]}

        PS:字典中的value只能是字符串或列表

    dic = {"k1": "v1v1", "k2": [11, 22, 33, 44]}
    
    
    def size2(dic):
        a = [v[:2] for i, v in dic.items() if len(v) > 2]
    
        return a
    size2(dic)


    7,写函数,此函数只接收一个参数且此参数必须是列表数据类型,此函数完成的功能是返回给调用者一个字典,此字典的键值对为此列表的索引及对应的元素。例如传入的列表为:[11,22,33] 返回的字典为 {0:11,1:22,2:33}。

    def index(agx):
        dic={i:d for i,d in enumerate(agx)}
        return dic
    
    
    
    a=[11,22,33]
    
    print(index(a))
    
    {0: 11, 1: 22, 2: 33}

    8、函数,函数接收四个参数分别是:姓名,性别,年龄,学历。用户通过输入这四个内容,然后将这四个内容传入到函数中,此函数接收到这四个内容,将内容追加到一个student_msg文件中。

    import json
    
    
    def login(name, gender, age, education):
        dic = {}
        dic["name"] = name
        dic["gender"] = gender
        dic["age"] = age
        dic['education'] = education
    
        with open("./student_msg.txt", "a+", encoding="utf8") as f:
            json.dump(dic, f, ensure_ascii=False)
    
    
    name = "wang"
    age = 18
    gender = "nv"
    education = "大学"
    
    login(name=name, age=age, gender=gender, education=education)

    9,对第9题升级:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女。

    import json
    
    
    def login(name,age, education,gender=""):
        dic = {}
        dic["name"] = name
        dic["gender"] = gender
        dic["age"] = age
        dic['education'] = education
    
        with open("./student_msg.txt", "a+", encoding="utf8") as f:
            json.dump(dic, f, ensure_ascii=False)
    
    
    while True:
        quet = input("Q/q退出")
        if quet.upper() == "Q":
            break
        name = input("name")
        age = input("age")
        gender = input("gender")
        print(type(gender),gender)
        education = input("education")
    
        if gender:
            login(name=name, age=age, gender=gender, education=education)
        else:
            login(name=name, age=age, education=education)

    10、写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(升级题)

     

    # def new_flie_content(name,old_content,new_content):
    #     """
    #     :param name:修改的文件名
    #     :param old_content: 要修改的内容
    #     :param new_content: 添加的内容
    #     :return:
    #     """
    #     file_data=""
    #     # r 已只读的方式取打开文件,文件指针放在文件开头
    #     with open(name,"r",encoding="utf-8") as  f :
    #         for lien in f:
    #             if old_content in lien:
    #                 lien=lien.replace(old_content,new_content)
    #
    #             file_data+=lien
    #
    #
    #     with open(name,"w",encoding="utf8") as f:
    #         f.write(file_data)
    #
    #
    #
    # new_flie_content("student_msg.txt","w","a")
    
    
    """
    二、把原文件内容和要修改的内容写到新文件中进行存储的方式
    """
    
    # def file_alter(file_nam,old_str,new_str):
    #
    #     """
    #     :param file_nam:文件名
    #     :param old_str: 旧内容
    #     :param new_str: 新内容
    #     :return:
    #     """
    #
    #     with open(file_nam,"r",encoding="utf8") as f1,open("{}.bak".format(file_nam),"w",encoding="utf8") as f2:
    #         for lien in f1:
    #             if old_str in lien:
    #                 lien =lien.replace(old_str,new_str) #Replace 函数使用另一个字符串替换字符串的指定部分指定的次数
    #
    #             f2.write(lien)
    #
    #
    #
    # file_alter("./student_msg.txt","18","19")
    
    """
    # 2.2 python 使用正则表达式 替换文件内容 re.sub 方法替换
    """
    
    import os, re
    
    
    def alter(file, old_str, new_str):
        with open(file, "r", encoding="utf8")as f, open("%.bak".format(file), "w", encoding="utf8") as f2:
            """
            re.sub共有五个参数。
            其中三个必选参数:pattern, repl, string
            两个可选参数:count, flags
            pattern,表示正则中的模式字符串,
            repl,就是replacement,被替换,的字符串的意思。
            string,即表示要被处理,要被替换的那个string字符串。
            """
    
            for line in f:
                f2.write(re.sub(old_str, new_str, line))
    
            # 删除原文件名
        os.remove(file)
        # 创建源文件名(内容是修改的)
        os.rename("%s.bak" % file, file)
        """
        os.rename(src, dst)
        src -- 要修改的目录名
        dst -- 修改后的目录名      
        """
    alter("student_msg.txt", "aang", "tang")

     

                     

  • 相关阅读:
    个人总结
    再见,我的伪算法竞赛生涯。
    C语言实现迷宫小游戏
    关于第九届蓝桥杯决赛
    蓝桥杯近3年决赛题之3(17年b组)
    蓝桥杯近3年决赛题之二(16年b组)
    蓝桥杯近三年决赛题之一(15年B组)
    第九届蓝桥杯C/C++B组省赛感想
    读书笔记《程序员的自我修养—链接、装载与库》
    蓝桥杯近3年初赛题之三(17年b组)
  • 原文地址:https://www.cnblogs.com/Xingtxx/p/9788940.html
Copyright © 2011-2022 走看看