Day8 作业

2019-01-04  本文已影响0人  ququququ
  1. 编写一个函数,求1+2+3+...+N
def my_sum(num1):
    """
    求1+2+3+...+N
    :param num1:
    :return:
    """
    total = 0
    for i in range(1, num1+1):
        total += i
    return total
print(my_sum(100))
  1. 编写一个函数,求多个数中的最大值
def my_max(*nums):
    """

    :param nums:
    :return:
    """
    return max(nums)
print(my_max(1,2,3,7))
  1. 编写一个函数,实现摇骰子的功能,打印n个骰子的点数和
def my_dice(nums):
    """
    n个骰子的点数和
    :param nums:骰子的个数
    :return:
    """
    import random
    total = 0
    for i in range(nums):
        total += random.randint(1, 6)

    return total
print(my_dice(3))
  1. 编写一个函数,交换指定字典的key和value。
    例如:{'a':1, 'b':2, 'c':3} ---> {1:'a', 2:'b', 3:'c'}
def swap_key_value (dict1 : dict):
    """
    交换指定字典的key和value
    :param dict1:
    :return:
    """
    for key in dict1:
        old_key = key
        key, dict1[key] = dict1[key], key
        dict1.pop(old_key)
    return dict1

print(swap_key_value({'a':1, 'b':2, 'c':3}))

优化代码:
注意:遍历字典的时候字典的长度不要改变,如果遍历字典时需要对字典操作,那么就不要遍历原字典而是遍历字典copy()

def swap_key_value (dict1 : dict):
    """
    交换指定字典的key和value
    :param dict1:
    :return:
    """
    new_dict = {}
    for key in dict1:
        new_dict[dict1[key]] = key
    return new_dict

print(swap_key_value({'a':'b', 'b':2, 'c':3}))
  1. 编写一个函数,三个数中的最大值
def my_max(*nums):
    """
    求多个数中的最大值
    :param nums:
    :return:
    """
    return max(nums)
  1. 编写一个函数,提取指定字符串中的所有的字母然后拼接在一起后打印出来
    例如:'12a&bc12d--' ---> 打印'abcd'
def my_str(strs):
    """
    取指定字符串中的所有的字母然后拼接在一起后打印出来
    :param strs:
    :return:
    """
    new_str = ''
    for item in strs:
        if 'a' <= item <= 'z' or 'A' <= item <= 'Z':
            new_str += item
    print(new_str)
    return new_str

my_str('12a&bc12E--' )
  1. 写一个函数,求多个数的平均值
def my_avg(*nums):
    """
    多个数的平均值
    :param nums:
    :return:
    """
    if nums == 0:
        return sum(nums)/len(nums)
    else:
        return

print(my_avg())
  1. 写一个函数,默认求10的阶层,也可以求其他数的阶层
def my_factorial(num1 = 10):
    """
    默认求10的阶层,也可以求其他数的阶层
    :param num1:
    :return:
    """
    result = 1
    for i in range(1, num1+1):
        result *= i
    return result
print(my_factorial(3))
  1. 写一个函数,可以对多个数进行不同的运算
    例如: operation('+', 1, 2, 3) ---> 求 1+2+3的结果
    operation('-', 10, 9) ---> 求 10-9的结果
    operation('*', 2, 4, 8, 10) ---> 求 2*4*8*10的结构
def my_calculate(operator : str, *nums):
    """
    对多个数进行不同的运算
    :param operator:运算符
    :param nums:数
    :return:
    """
    str_oper = operator
    str_num = str(nums)[1:-1]
    new_str = str_num.replace(',', str_oper)
    print(new_str)
    return eval(new_str)

print(my_calculate('-', 10 , 5))
上一篇下一篇

猜你喜欢

热点阅读