Day9-Python-作业-2019/01/04

1.编写一个函数,求1+2+3+···+N

def my_sum(N):
    my_list = []
    for num in range(N):
        my_list.append(num+1)
    return sum(my_list)

print('1+2+3+···+N的和为:%d' % (my_sum(6)))

2.编写一个函数,求多个数中的最大值

def my_max(*num):
    return max(*num)

print('最大值为:%d' % my_max(12,13,14,15,2,21,99,87))
print('最大值为:%d' % my_max(1,2,3,4,5))

3.编写一个函数,实现摇色子的功能,打印n个色子的点数和

import random
def my_dice(N):
    sum = 0
    for _ in range(N):
        num = random.randint(1,6)
        print('每次色子的点数:%d' % (num))
        sum += num
    return sum
print('n次色子的点数和:%d' % (my_dice(5)))

4.编写一个函数,交换指定字典的key和value

def my_exchange(dict_exchange:dict):
    for key in dict_exchange:
        key_exchange = key
        value = dict_exchange[key]
        del dict_exchange[key]  # 为什么不能直接添加键值对,
        # 报错RuntimeError: dictionary changed size during iteration,说:字典在迭代过程中改变了大小
        dict_exchange[value] = key_exchange
    return dict_exchange

print(my_exchange({'a':1, 'b':2, 'c':3,'d':4}))  # 成功,但是加了'd':4就失败
print(my_exchange({'Q':'q', 'W':'w', 'E':'e', 'R':'r'})) # 对换失败,遍历key时,新的key又被遍历
# 因为原字典在遍历过程中被改变了键值对,所以会遍历失败,和remove一个道理,因此,创建一个新字典,添加新的键值对
def my_exchange(dict_exchange:dict):
    new_dict_exchange = {}
    for key in dict_exchange:
        key_exchange = key
        value = dict_exchange[key]
        # del dict_exchange[key]  # 为什么不能直接添加键值对,报错RuntimeError: dictionary changed size during iteration
        new_dict_exchange[value] = key_exchange
    return new_dict_exchange

print(my_exchange({'a':1, 'b':2, 'c':3,'d':4}))
print(my_exchange({'Q':'q', 'W':'w', 'E':'e', 'R':'r'}))

5.编写一个函数,求三个数中的最大值

def my_max(a, b, c):
    return max(a, b, c)

print(my_max(99, 123, 19))

6.编写一个函数,提取指定字符串中的所有的字母,然后拼接在一起后打印出来

def my_str(str1:str):
    list1 = []
    for item in str1:
        if 'a' <= item <='z' or 'A' <= item <='Z':
            list1.append(item)
    return ''.join(list1)  #  return 前面的缩进很重要,放在不同的位置,返回值不同

print(my_str('231ji2ds12aj12'))

7.编写一个函数,求多个数的平均值

def my_average(*num):  #  num = (1,2,3,4,5) 是个元组
    return sum(num)/len(num)
print(my_average(10, 2, 30, 4, 50))

8.编写一个程序,默认求10的阶乘,也可以求其他数的阶乘

def my_factorial(num=10):
    sum = 1
    for item in range(1,num+1):
        sum *= item
    return sum
print(my_factorial())

9.编写一个程序,可以对多个数进行不同的运算

def my_operation(way,*num):
    if str(way) == '+':
        return sum(num)
    elif str(way) == '-':
        return num[0] - num[1]
    elif str(way) == '*':
        number = 1
        for item in num:
            number *= item
        return number

print(my_operation('+', 100, 200, 300))
print(my_operation('-', 100, 39))
print(my_operation('*', 5, 4, 3, 2, 1))
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 9,078评论 0 2
  • 8月22日-----字符串相关 2-3 个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消...
    future_d180阅读 4,553评论 0 1
  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 11,132评论 2 16
  • 测试
    你猜不到的哦阅读 1,414评论 0 0
  • 2018年9月28日。 日精进。 今天体验,在过两天9月份就要结束了,距离目标还差不少,加油冲刺一下。
    凌胜亮阅读 1,045评论 0 0

友情链接更多精彩内容