函数练习

  1. 编写一个函数,求1+2+3+...+N
def my_sum(num):
    """
    求1+2+3+...+N
    :type num: 输入的N值
    """
    nums = 0
    for x in range(1,num+1):#遍历1-N
        nums += x
    return nums
n = int(input('请输入N值:'))
print(my_sum(n))
请输入N值:3
6

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

def my_max(*num):
    max_num = 0#给默认最大值赋初值
    for number in num:  # 遍历所有输入的值,并与输入之前最大的数作比较
        if max_num > number:  # 如果小于当前最大的值,则最大值不变
            max_num = max_num
        else:  # 否则将当前值赋给最大值
            max_num = number
    return max_num


print(my_max(1, 23, 43, 56))
最大值: 56

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

import random


def my_sum1(n):
    m = 0
    for _ in range(n):  # 控制摇色子次数
        x = random.randint(1, 7)  # 生成摇色子点数
        m += x  # 求和
    return m


print(my_sum1(6))

18
  1. 编写一个函数,交换指定字典的key和value。
def change_key_value(d):
    return dict((v, k) for k, v in d.items())  # 生成器表达式(将字典先转换成一个包含两个元素的元组,交换两个元素的位置后,再将元组转换成字典)


dict1 = {'a': 1, 'b': 2}
print(change_key_value(dict1))
{1: 'a', 2: 'b'}
  1. 编写一个函数,三个数中的最大值
def there_max(a, b, c):
    max_num = a  # 默认a为最大值
    if b > max_num:  # 如果b大于a,就将b的值赋给a
        max_num = b
    if c > max_num:  # 如果c大于a,就将c的值赋给a
        max_num = c
    return max_num


print(there_max(23, 12, 56))


56
  1. 编写一个函数,提取指定字符串中的所有的字母,然后拼接在一起后打印出来
def get_word(d):
    str1 = ''  # 声明一个空字符串
    for x in d:
        if 'A' < x < 'z' or x == 'A' or x == 'z':  # 取A-z的字母,加入声明的空字符串中
            str1 += x
    return str1


print(get_word('ewfhudeui23234guuyfy'))

ewfhudeuiguuyfy
  1. 写一个函数,求多个数的平均值
def avg(*num):
    sum_itm = 0  # 声明和
    count = 0  # 声明个数
    for number in num:  # 遍历实参
        sum_itm += number
        count += 1
    avg_item = sum_itm / count  # 求平均数
    return avg_item


print(avg(1, 2, 3, 4, 5))


3
  1. 写一个函数,默认求10的阶层,也可以求其他数的阶层

def stratum(n=10):
    stratum_value = 1  # 默认阶层值为1
    for i in range(1, n + 1):#从1开始到n结束
        stratum_value *= i
    return stratum_value


print(stratum(3))

6
  1. 写一个函数,可以对多个数进行不同的运算
def chose_operation(operation, *number):
    if operation == '*':#判断运算符
        result = 1#置初值
        for m in number:#遍历参数
            result *= m

    if operation == '+':
        result = 0
        for m in number:
            result += m

    if operation == '-':
        result = 2*number[0]
        for m in number:
            result -= m
    return result


print(chose_operation('+', 1, 2, 3))
print(chose_operation('-', 10, 9))
print(chose_operation('*', 4, 2, 8, 10))


6
1
640

你可能感兴趣的:(函数练习)