day8 作业

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

def funct1(nums):
    """求从1加到nums的和"""
    sum1 = 0
    for num in range(1, nums+1):  # 使用循环遍历1到nums
        sum1 += num
    print(sum1)

funct1(100)
5050

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

def max1(a, *numbers):
    """求多个数中的最大值"""
    num1 = a  # 定义第一个数
    for num in numbers:
        if num > num1:  # 用a去跟后面的数作比较
            num1 = num
    print(num1)

max1(12, 34, 545, 43, 435, 6)
545

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

def shai_zi(N):
    """实现摇色子功能,并求所有色子的点数和"""
    import random  # 导入随机数模块
    sum2 = 0
    for x in range(N):
        num = random.randint(1, 6)
        print(num) # 打印每个色子的点数
        sum2 += num
    print(sum2)


shai_zi(3)
6
3
2
11

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

例如:{'a' :1,'b':2,'c' :3} ---> {1:'a', 2: 'b', 3: 'c'}

def change_dict(dict1):
    """交换字典中键和值"""
    dict2 = {}
    for x in dict1:
        value = dict1[x]    # 提取输入字典的值
        dict2[value] = x
    print(dict2)

change_dict({'a': 1, 'b': 2})
{1: 'a', 2: 'b'}

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

def max1(num1, num2, num3):
    """比较三个数的大小,并求出最大的值"""
    max_num = num1  # 假定第一个数最大
    if max_num < num2:
        max_num = num2
    if max_num < num3:
        max_num = num3
    print(max_num)

max1(52, 24, 4)
52

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

例如::' 12a&bc12d--'-->打印‘abcd’

def print_letter(string):
    """提取字符串的字母,并拼接打印"""
    str1 = ''  # 命名一个空的字符串
    for x in string:
        if x.isalpha() == True:  # 判断提取的字符是否是字母
            str1 += x  # 拼接字符串
    print(str1)

print_letter('d2eweds@!we')
dewedswe

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

def average_value(*number):
    """求平均数"""
    many = len(number)  # 用于计数
    sum1 = sum(number)  # 求和,结果为str数据类型
    print('平均数为%.3f ' % float(sum1/many))

average_value(1, 3, 5, 7, 9, 10, 11)
平均数为6.571 

8、编写一个函数,默认求10的阶层,也可以求其他数的阶层。

def factorial(nums=10):
    """计算一个数的阶乘"""
    sum1 = 1  # 用于装阶乘的结果
    for nums in range(1, nums+1):
        sum1 *= nums
    print(sum1)

factorial(5)
120

9、编写一个函数,可以对多个数进行不同的运算

例如: operation(‘+’,1,2,3)--->求 1+ 2+3的结果
operation('-',10,9)-->求10 -9 的结果
operation(‘ * ’,2,4,8,10)--->求2* 4* 8* 10的结构

def operation(symbol, *numbers):
    """多功能计算函数"""
    list1 = list(numbers)
    if symbol == '+':  # 判断运算符号是否是加号
        sum1 = sum(list1)

    if symbol == '-':  # 判断运算符号是否是减号
        sum1 = list1.pop(0)
        for num in list1:
            sum1 -= num

    if symbol == '*':  # 判断运算符号是否是乘号
        sum1 = 1
        for num in list1:
            sum1 *= num

    if symbol == '/':  # 判断运算符号是否是除号
        sum1 = list1.pop(0)
        for num in list1:
            sum1 /= num

    print('运算符号为%s,结果为%.3f' % (symbol, float(sum1)))

operation('*', 1000, 5, 18, 20)
运算符号为*,结果为1800000.000

你可能感兴趣的:(day8 作业)