zoukankan      html  css  js  c++  java
  • day08作业---函数

    '''
    2.写函数,检查获取传入列表或元组对象的所有奇数位
    索引对应的元素,并将其作为新列表返回给调用者。
    '''
    #学会了 原来 range(len(iter)) 是 从零到len-1 的数的组合 建新放在函数里就可以
    #学会了 原来 range(len(iter))  是 从零到len-1 的数的组合  建新放在函数里就可以
    def hanshu1(can1):
        new_line1 = []
        for i in range(1,len(can1),2):
            new_line1.append(can1[i])
        return new_line1
    lis1 = [1,9,3,4,5,6,7]
    tup1 = (1,9,3,4,5,6,7)
    ret1 = hanshu1(lis1)
    print(ret1)
    ret2 = hanshu1(tup1)
    print(ret2)
    
    #以下两者相同 都是0-4  顾头不顾尾
    # for a in range(5):
    #     print(a,end=' ')
    # for a in range(0,5):
    #     print(a,end=' ')
    View Code
    #3 3.写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
    # 学到了 不是写 print 而是写 return 而且把 返回的值 print即可
    def hanshu2(can2):
        if len(can2)>5:
            return '大于5!'
        else:
            return '不大于5!'
    i1 = [1,2,3]
    i2 = '111112'
    i3 = (1,2,'1',[])
    print(len(i2))
    print(hanshu2(i1))
    print(hanshu2(i2))
    print(hanshu2(i3))
    View Code
    '''
    4.写函数,检查传入列表的长度,如果大于2,
    那么仅保留前两个长度的内容,并将新内容返回给调用者。
    '''#是不是只执行一个 return 只要第一个return 有了值 就不走下一个了 是!
    def hanshu3(can3):
        new_list1 = []
        if len(can3)>2:
            for i in range(2):
                new_list1.append(can3[i])
        else:
            return can3
        return new_list1
    print(hanshu3([5]))
    View Code
    #写函数,检查传入list, str ,tuple的长度,如果大于2,
    def hanshu3(can3):
        if len(can3)>2:
            a = can3[0:2]
        else:
            return can3
        return a
    print(hanshu3((1,2,3)))
    View Code
    '''
    5.写函数,计算传入函数的字符串中,
    [数字]、[字母]、[空格] 以及 [其他]的个数,并返回结果。'''
    def hanshu4(can4):
        st = 0
        zim = 0
        kongg = 0
        qit = 0
        for can in can4:
            if can.isdigit():
                st += 1
            elif can.isalpha():
                zim +=1
            elif can==' ':
                kongg +=1
            else:
                qit +=1
        return st,zim,kongg,qit
    shu,zi,kong,qi = hanshu4('adada_  11%%%')
    print('数字:{},字母:{},空格:{},其它:{}'.format(shu,zi,kong,qi))
    print(hanshu4('adada_  11%%%'))
    View Code
    #6.写函数,接收两个数字参数,返回比较大的那个数字。
    def hanshu5(can51, can52):
        return can51 if can51 > can52 else can52
    print(hanshu5(1,1))
    View Code
    '''
    7.写函数,检查传入字典的每一个value的长度,如果大于2,
    那么仅保留前两个长度的内容,并将新内容返回给调用者。
    dic = {"k1": "v1v1", "k2": [11,22,33,44]}
    PS:字典中的value只能是字符串或列表
    '''
    #学会了 用列表存值 然后用
    # for rang() 删后面的方法 都是用的这些
    # 因为 对字典进行操作 所以 都输出can6
    def hanshu6(can6):
        if len(can6)>2:
            lis = []
            for key in can6:
                lis.append(key)
            for i in range(2,len(can6)):
                print(i)
                del can6[lis[i]]
        else:
            return can6
        return can6
    dic = {"k1": "v1v1",'k3':1, "k2": [11,22,33,44] }
    print(hanshu6(dic))
    View Code
    读题读错了 是改值 的内容 两位 改之
    dic = {"k1": "v1v1", "k2": [11,22,33,44]}
    def hanshu7(can7):
        for a in can7:
            if len(can7[a])>2:
    
                can7[a] = can7[a][0:2]
        return can7
    print(hanshu7(dic))
    View Code



    '''
    8.写函数,此函数只接收一个参数且此参数必须是列表数据类型,
    此函数完成的功能是返回给调用者一个字典,此字典的键值对为此列表的索引及对应的元素。
    例如传入的列表为:[11,22,33] 返回的字典为 {0:11,1:22,2:33}。'''
    def hanshu7(can7):
        i = 0
        dic1 = {}
        for list2 in can7:
            dic1[i] =list2
            i += 1
        return dic1
    print(hanshu7([11,22,33]))''
    View Code
    '''
    9.写函数,函数接收四个参数分别是:
    姓名,性别,年龄,学历。用户通过输入这四个内容,
    然后将这四个内容传入到函数中,此函数接收到这四个内容,
    将内容追加到一个student_msg文件中。'''
    def hanshu8(can81, can82,can83,can84):
        with open('student_msg','a',encoding='utf-8') as f:
            f.write(can81)
            f.write(can82)
            f.write(str(can83))
            f.write(can84)
    name,gender,age,education = 'liuyang','',25,'本科'
    print(name,gender,age,education)
    hanshu8(name,gender,age,education)
    View Code
    '''
    # 10.对第9题升级:支持用户持续输入,Q或者q退出,
    # 性别默认为男,如果遇到女学生,则把性别输入女。'''
    # # def hanshu8(can81, can82, can83='男' , can84): # 默认的不能再待赋前
    # 因为 把后面的 改成 strip() 浪费了诸多时间 打印出来就好了
    # 就是一个赋值 的问题 因为 split(',')从中作梗,耽误了,
    # 付给他值然后split(‘,’)格式就可以了
    '''
    def hanshu8(can81, can83,can84,can82=''):
        with open('student_msg', 'a', encoding='utf-8') as f:
            f.write(can81)
            f.write(str(can83))
            f.write(can84)
            f.write(can82)
    while 1 :
    # name, gender, age, education = 'liuyang', '男', 25, '本科'
    #     a = input('输入你的内容:')
        list3 = input('name,age,education,gender:(输入qQ退出)')
        if list3.lower() =='q':
                break
        else:
            list2 = list3.split(',')
            print(list2)
            name, age, education,gender = list2
            print(name, age, education,gender)
            hanshu8(name, age, education,gender)
    View Code
    '''
    11. 写函数,用户传入修改的文件名,
    与要修改的内容,执行函数,完成整个文件的批量修改操作(升级题)。''' #肯定得先新建文件

     用r+ 

    def hanshu9(file_name , old_ele,new_ele):
        # with open(file_name)as read_f,open(file_name,'w')as write_f:
        with open(file_name,"r+")as read_f:
            a=read_f.read().replace(old_ele, new_ele)
            # read_f.seek(0,0)
            read_f.write(a)
            read_f.truncate()#如果比原有的短。自动覆盖  如果比原有的等长没事
    hanshu9('genggai','dalaoa','laoshi')
    View Code

    用删一个 赋值的方法

    def hanshu9(file_name , old_ele,new_ele,old_name):
        with open(file_name)as read_f , open(old_name,'w')as write_f:
            write_f.write(read_f.read().replace(old_ele, new_ele))
        os.remove(file_name)
        os.rename(file_name,old_name) 
    hanshu9('genggai','dalaoa','laoshi','a')
    View Code
  • 相关阅读:
    2015 多校联赛 ——HDU5389(dp)
    spring MVC配置详解
    面试题整理11
    面试题整理09
    Spring和SpringMVC的区别
    SpringMVC01
    js中typeof与instanceof用法小记
    Java 可变参数
    log4j文件的配置
    Hibernate 分组查询 子查询 原生SQL
  • 原文地址:https://www.cnblogs.com/Doner/p/10524206.html
Copyright © 2011-2022 走看看