day10-函数的应用-作业

2018-10-11  本文已影响0人  _桑心人

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

代码如下

def reserver(n):
    index = len(n)
    for x in range(index // 2):
        t = n[x]
        n[x] = n[index - x -1]
        n[index - x -1] = t
    return n


list1 = ['a', 1, 2, 'asd', 56]
list3 = ['a', 1, 2, 'asd']
list2 = reserver(list1)
print('逆序后', list2)
list2 = reserver(list2)
print('逆序后', list2)

运行结果

逆序后 [56, 'asd', 2, 1, 'a']
逆序后 ['a', 1, 2, 'asd', 56]

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

代码如下

def qi_shu(str1):
    str2 = str1[1::2]
    return str2


str1 = input('请输入一串字符串:')
print('奇数位上的字符为:', qi_shu(str1))

运行结果

请输入一串字符串:5sd5a6ds5
奇数位上的字符为: s56s

3.写一个匿名函数,判断指定的年是否是闰年####代码如下

year = lambda x: x % 400 == 0 or (x % 4 == 0 and x % 100 != 0)
print('是否闰年:', year(2018))

运行结果

是否闰年: False

4.使用递归打印:

n = 3的时候   
   @    
  @@@  
 @@@@@ 
 
n = 4的时候: 
    @
   @@@
  @@@@@
 @@@@@@@

代码如下

def print_star(n, t):
    if n == 1:
        print(' ' * t, '@')
        return
    print_star(n - 1, t)
    print(' ' * (t - n + 1), '@' * (n + n - 1))


print_star(5, 5)

运行结果

      @
     @@@
    @@@@@
   @@@@@@@
  @@@@@@@@@

5.写函数,利用递归获取斐波那契数列中的第 10 个数,并将该值返回给调用者。

代码如下

def f1(a, a1, a2):
    if a == 10:
        return a1
    a3 = a1 + a2
    r = f1(a + 1, a2, a3)
    return r


ret = f1(1, 0, 1)
print('第十个斐波那契数:', ret)

运行结果

第十个斐波那契数: 34

6.写一个函数,获取列表中的成绩的平均值,和最高分

代码如下

def Avg_max(*nums):
    sum1 = sum(nums)
    avg1 = sum1 / len(nums)
    n = 0
    for x in range(len(nums)):
        if n < nums[x]:
            n = nums[x]
    return avg1,n


print('平均值为:', Avg_max(52, 36, 10, 3)[0], '最大值为:', Avg_max(52, 36, 10, 3)[1])

运行结果

平均值为: 25.25 最大值为: 52

7.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,值,和最高分

代码如下

def ji_index(*n):
    list1 = list(n)
    list2 = []
    for x in range(len(list1)):
        if x & 1:
            list2.append(list1[x])
    return list2


print('新列表:', ji_index(2, 5, 'sad', 55, 'ad'))

运行结果

新列表: [5, 55]

8.实现属于自己的字典update方法:用一个字典去更新另一个字典的元素(不能使用自带的update方法)yt_update(字典1, 字典2)

代码如下

def dict_update(num1, num2):
    dict1 = dict(num1)
    dict2 = dict(num2)
    dict3 = {}
    for key1, value1 in dict1.items():
        for key2, value2 in dict2.items():
            if key1 != key2:
                dict3[key1] = value1
                dict3[key2] = value2
            else:
                dict3[key1] = value2
    return dict3


student = {'name': '小明', 'age': 30, 'study_id': 'py001', 'sex': 'boy'}
student1 = {'name': '小王', 'study_id': 'py001', 'sex': 'boy', 'tel': 4665456}
print('更新后为:', dict_update(student, student1))

运行结果

更新后为: {'name': '小王', 'study_id': 'py001', 'sex': 'boy', 'tel': 4665456, 'age': 30}

9.实现属于自己的items方法:将字典转换成列表,字典中的键值对转换成元祖。(不能使用items方法)yt_items(字典)

代码如下

def dict_update(num1, num2):
    dict1 = dict(num1)
    dict2 = dict(num2)
    dict3 = {}
    for key1, value1 in dict1.items():
        for key2, value2 in dict2.items():
            if key1 != key2:
                dict3[key1] = value1
                dict3[key2] = value2
            else:
                dict3[key1] = value2
    return dict3


student = {'name': '小明', 'age': 30, 'study_id': 'py001', 'sex': 'boy'}
student1 = {'name': '小王', 'study_id': 'py001', 'sex': 'boy', 'tel': 4665456}
print('更新后为:', dict_update(student, student1))

运行结果

转换后: [('name', '小明'), ('age', 30), ('study_id', 'py001'), ('sex', 'boy')]
上一篇下一篇

猜你喜欢

热点阅读