Day-9 - 作业 (2018-10-10)

  1. 编写一个函数,求1+2+3+...+N
def sum_n (n):
    sum1 = sum(range(1,n+1))
    return sum1


sum2 = sum_n(100)
print(sum2)  # 5050
  1. 编写一个函数,求多个数中的最大值
def get_max(*nums):
    return max(nums)


max_num = get_max(1, 100, 4, 213, 321, 54, 12)
print(max_num)  # 321
  1. 编写一个函数,实现摇骰子的功能,打印n个骰子的点数和
import random


def dice(n):
    sum1 = 0
    for _ in range(n):
        num = random.randint(1, 6)
        print(num)
        sum1 += num

    return sum1


sum2 = dice(3)
sum3 = dice(3)
print(sum2,sum3)  # 13 6
  1. 编写一个函数,交换指定字典的key和value。
    如:{'a':1, 'b':2, 'c':3} ---> {1:'a', 2:'b', 3:'c'}
def exchange_dict(any_dict):
    # 声明一个交换字典key和value的函数
    for key in any_dict.copy():
        # 将键值对删除,并将值保存在value中
        value = any_dict.pop(key)
        # 将key和value交换后重新添加到字典中
        any_dict[value] = key

    # 返回交换后的字典
    return any_dict


dict1 = {'a': 1, 'b': 2, 'c': 3}
dict2 = exchange_dict(dict1)
print(dict2)
  1. 编写一个函数,提取指定字符串中的所有的字母,然后拼接在一起后打印出来
    如:'12a&bc12d--' ---> 打印'abcd'
def print_alpha(any_str):
   # 定义一个函数提取字符串的字母并拼接打印

     # 定义一个空字符串用来存放字母
    re_str = ''
    for index in range(len(any_str)):
        str1 = any_str[index]
        # 检查字符是否是字母
        if str1.isalpha():
            re_str += str1

    print(re_str)


str1 = '12a&bc12d--'
print_alpha(str1)
  1. 写一个函数,求多个数的平均值
def get_avg(*nums):
    # 定义一个函数用来求多个数的平均值
    # 求输入数的和
    sum1 = sum(nums)
    # 平输入数的平均值
    avg = sum1 / len(nums)

    # 返回平均值
    return avg


avg_num = get_avg(10, 20, 30, 40, 50)
print(avg_num)  # 30.0
  1. 写一个函数,默认求10的阶层,也可以求其他数的阶层
def get_factorial(n=10):
    sum1 = 1
    for i in range(1,n+1):
        sum1 *= i

    return sum1


num = get_factorial()
print(num)  # 3628800

num2 = get_factorial(5)
print(num2)  # 120
  1. 写一个函数,可以对多个数进行不同的运算
    如: operation('+', 1, 2, 3) ---> 求 1+2+3的结果 operation('-', 10, 9) ---> 求 10-9的结果 operation('', 2, 4, 8, 10) ---> 求 24810的结构
def calculate(oper, *nums):
    sum1 = nums[0]
    if oper == '+':
        for num in nums[1:]:
            sum1 += num
    elif oper == '-':
        for num in nums[1:]:
            sum1 -= num
    elif oper == '*':
        for num in nums[1:]:
            sum1 *= num
    elif oper == '/':
        for num in nums[1:]:
            sum1 /= num


    return sum1

num = calculate('+', 1, 2, 3)
print(num)  # 6
num2 = calculate('-', 10, 9)
print(num2)  # 1
num3 = calculate('*', 2, 4, 8, 10)
print(num3)  # 640

9.写一个函数,求指定列表中,指定的元素的个数

def count_num(any_list,any_item):
    sum1 = 0
    for item in any_list:
        if item == any_item:
            sum1 += 1

    return sum1


list1 = [1, 3, 1, 4, 5, 2, 0]
num = count_num(list1, 1)
print(num)  # 2

10.写一个函数,获取指定列表中指定元素对应的下标(如果有多个,一起返回)

def get_index(any_list, any_item):
    index_list = []
    index = 0
    while index < len(any_list):
        if any_list[index] == any_item:
            index_list.append(index)
        index += 1

    return index_list


list1 = [1, 3, 1, 4, 5, 2, 0]
index_list1 = get_index(list1,1)
print(index_list1)  # [0, 2]

你可能感兴趣的:(Day-9 - 作业 (2018-10-10))