美文网首页
Day8-函数作业

Day8-函数作业

作者: 晓晓的忍儿 | 来源:发表于2018-07-25 20:51 被阅读0次

    1.写⼀个函数将⼀个指定的列表中的元素逆序(例如[1, 2, 3] -> [3, 2, 1])(注意:不要使⽤列表⾃带的逆序函数)

    def my_reverse(list1):
        for x in range(0,(len(list1))//2):
            list2=list1[x]
            list1[x]=list1[len(list1)-x-1]
            list1[len(list1) - x - 1]=list2
        return list1
    print(my_reverse([1,2,3,4,5,6,8,9,7]))
    

    结果

    [7, 9, 8, 6, 5, 4, 3, 2, 1]

    2.写⼀个函数,提取出字符串中所有奇数位上的字符

    def my_str(str1):
        '''
        取出字符串中所有奇数位上的字符
        :param str1: 输入的字符串
        :return: 返回输入字符串的奇数位置的字符
        '''
        if str1:
            if len(str1)<2:
                print('没有奇数位置')
            else:
                str2=''
                for x in range(1,len(str1),2):
                    str2+=str1[x]
                    print('奇数位置:%s'%(str1[x])
                return str2
                # str2=str1[1::2]
                # print('奇数位置:%s' % (str1[x]))
                # return  str2
        else:
            print('没有输入字符串')
    print("返回的字符串为%s"%(my_str('hhelTOQWT25802JROR9QU')))
    

    结果:

    奇数位置:h
    奇数位置:l
    奇数位置:O
    奇数位置:W
    奇数位置:2
    奇数位置:8
    奇数位置:2
    奇数位置:R
    奇数位置:R
    奇数位置:Q
    返回的字符为hlOW282RRQ
    3.写⼀个匿名函数,判断指定的年是否是闰年

    year=lambda y:(y%4==0 and y%100!=0 ) or (y%100==0 and y%400==0)
    years=int(input('请输入年:'))
    if  year(years):
        print('%d年是闰年'%(years))
    else:
        print('%d年不是闰年'%(years))
    

    结果:

    请输入年:2000
    2000年是闰年
    4.使⽤递归打印:

    n = 3的时候
         @
        @@@
       @@@@@
    n = 4的时候:
       @
      @@@
     @@@@@
    @@@@@@@ 
    
    num=0
    def my_img(n):
        global num,b
        if num==0:
            b=n
            num=1
        if n==1:
            print(" "*(b-1),"@")
            return
        my_img(n-1)
        print(" "*(b-n),"@"*(2*n-1))
        return
    input_num=int(input('请输入层数:'))
    my_img(input_num)
    

    结果:

    请输入层数:10
              @
             @@@
            @@@@@
           @@@@@@@
          @@@@@@@@@
         @@@@@@@@@@@
        @@@@@@@@@@@@@
       @@@@@@@@@@@@@@@
      @@@@@@@@@@@@@@@@@
     @@@@@@@@@@@@@@@@@@@
    

    5.写函数,检查传⼊列表的⻓度,如果⼤于2,那么仅保留前两个⻓度的内容,并将新内容返回给调⽤者。

    def my_list(list1):
        '''
        判断列表长度,如果长度大于2就返回其前两个长度的内容
        :param list1: 列表(形参)
        :return: 返回前两个长度的值
        '''
        if len(list1)>2:
            print('列表长度为%d'%(len(list1)))
            while len(list1)>2:
                del list1[2]
            return list1
    print(my_list([1,2,3,4,5,6,7]))
    

    结果:

    列表长度为7
    [1, 2]
    6.写函数,利⽤递归获取斐波那契数列中的第 10 个数,并将该值返回给调⽤者。

    def fib(num):
    '''
        利⽤递归获取斐波那契数列中的第 num 个数
        :param num: 获取斐波那契数列中的第num个
        :return: 返回第num的值
        '''
        num1=0
        num2=1
        if num==1:
            return num1
        if num==2:
            return num2
        return fib(num-2)+fib(num-1)
    input_num=int(input('请输入个数:'))
    print('第%d个数为%d'%(input_num,fib(input_num)))
    

    结果:

    请输入个数:10
    第10个数为34
    7.写⼀个函数,获取列表中的成绩的平均值,和最⾼分

    def avg(list1):
    '''
        获取列表中的成绩的平均值,和最⾼分
        :param list1: 分数列表
        :return: 返回平均值和最高分
        '''
        sum=0
        num=0
        max=list1[0]
        for x in list1:
            sum+=x
            num+=1
            if max<x:
                max=x
        return sum/num,max
    list2=avg([80,70,80,60,78,90,85,65])
    print('列表中的平均值为%f,最高分数为%d'%(list2[0],list2[1]))
    

    结果:

    列表中的平均值为76.000000,最高分数为90
    8.写函数,检查获取传⼊列表或元组对象的所有奇数位索引对应的元素,并将其作为新的列表返回给调⽤者

    def get_type(mul):
        if type(mul)==tuple:
            def get_tuple(mul):
                tup=mul[1:len(mul):2]
                return tup
            return get_tuple
        if type(mul)==list:
            def get_list(mul):
                list1l=mul[1:len(mul):2]
                return list1l
            return get_list
    print(get_type((1,2))((1,2,3,4,5,6,7)))
    print(get_type([1,2])([1,2,3,4,5,6,7]))
    
    
    def get_type(mul):
        if type(mul)==tuple:
            tup=mul[1:len(mul):2]
            return tup
        if type(mul)==list:
            list1l=mul[1:len(mul):2]
            return list1l
    print(get_type((1,2,3,4,5,6,7,8)))
    print(get_type([1,21,2,3,4,5,6,7,8]))
    
    
    def get_type(mul):
        if type(mul)==tuple:
            def get_tuple(mul):
                tup=mul[1:len(mul):2]
                return tup
            return get_tuple(mul)
        if type(mul)==list:
            def get_list(mul):
                list1l=mul[1:len(mul):2]
                return list1l
            return get_list(mul)
    print(get_type((1,2,3,4,5,6,7)))
    print(get_type([1,2,3,4,5,6,7]))
    

    结果:

    (2, 4, 6)
    [2, 4, 6]
    (2, 4, 6, 8)
    [21, 3, 5, 7]
    (2, 4, 6)
    [2, 4, 6]

    相关文章

      网友评论

          本文标题:Day8-函数作业

          本文链接:https://www.haomeiwen.com/subject/efkmmftx.html