09-函数的相关练习与思路

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

# 1.编写一个函数,求1+2+3+...+N
def 高斯求和(n):
    return int(0.5*(n*(n+1)))   # 高斯求和公式 s=(n+1)*n/2

n = int(input("请输入N的值"))
print("高斯求和的结果是:",高斯求和(n))

运行效果:
请输入N的值100
高斯求和的结果是: 5050


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

# 2.编写一个函数,求多个数中的最大值
def 求最大数(number):
    max_number = 0
    for i in number:
        if i > max_number:
            max_number = i
    return max_number
input_num = input("请输入几个数字,每个数字用空格隔开:")
number =[]
for num in input_num.split(" "):  # 把输入的字符以空格进行分割,分割后的数据存入一个列表
    number.append(int(num)) 
print(number)
print("这些数字中最大的数是:",求最大数(number))

运行效果:
请输入几个数字,每个数字用空格隔开:1 2 5 99 3 5
[1, 2, 5, 99, 3, 5]
这些数字中最大的数是: 99


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

# 3.编写一一个函数,实现摇色子的功能,打印n个色子的点数和
import random
def 摇色子(n):
    s = 0  # s用于计算色子的点数和
    for _ in range(n):  # 产生N个色子
        s += random.randint(1,6)
    print("色子总点数为:",s)
n = int(input("请输入色子的个数:"))
摇色子(n)

运行效果:
请输入色子的个数:6
色子总点数为: 20


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

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

# 4.编写一个函数,  交换指定字典的key和value。
#   例如:{'a' :1,'b':2,'c' :3} ---> {1:'a', 2: 'b', 3: 'c'}

def 键值交换(dict1):  # 参数传一个字典
    keys = []  # 存提取出来的keys
    value = []          # 存提取出来的value
    for key in dict1:
        keys.append(key)    # 把传入的字典中的key提取出来放入 keys这个列表中  以便后面使用
        value.append(dict1[key])  # 把传入的字典中的value提取出来放入 value这个列表中  以便后面使用
    dict2 = dict1.fromkeys(value,)   # 用value这个列表为Key创建一个新的字典
    i = 0
    for key in value:
        dict2[key] = keys[i]    # 将keys列表里的值赋给新创建的字典的value
        i += 1
    print(dict2)
键值交换({'a' :1,'b':2,'c' :3,"d":4})

运行结果:
{1: 'a', 2: 'b', 3: 'c', 4: 'd'}


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

def 提取字母(str1):
    str2 = ""
    for x in str1:
        if "a"<=x<="z" or "A"<=x<="Z":
            str2 += x
    print("提取出的字母是:",str2)
str1 = input("请输入一串字符:")
提取字母(str1)

运行结果:
请输入一串字符:DFASF 13124dfg
提取出的字母是: DFASFdfg


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

# 写一个函数,默认求10的阶层,也可以求其他数的阶层
def 求阶乘(n=10):
    积 = 1
    for number in range(1,n+1):
        积 *= number
    print("%d的阶乘是:%d"%(n,积))
求阶乘()
求阶乘(25)

运行结果:
10的阶乘是:3628800
25的阶乘是:15511210043330985984000000


7.写一个函数,可以对多个数进行不同的运算

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

# 写一个函数,可以对多个数进行不同的运算
#   例如: operation('+', 1,2,3) --->求1+2+3的结果
#   operation( '-',10,9) --->求10-9的结果
#   operation( '*',2,4,8,10) --->求2*4* 8* 10的结构

def operation(operate, *nubers):  #通过第一个参数来判断是什么操作
    if operate == "+":
        resoult = 0
        for nuber in nubers:
            resoult += nuber
        print(resoult)
    elif operate == "-":
        resoult = nubers[0]   #被减数是第一个数
        x = 0
        for nuber in nubers:
             if x>0:                  #判断number是不是从第二开始的
                 resoult -= nuber
             x +=1
        print(resoult)
    elif operate == "*":
        resoult = 1
        for nuber in nubers:
            resoult *= nuber
        print(resoult)
    else:
        print("操作符输入有误")
operation("-",12,5,22,1)
operation("+",12,5,22,66)
operation("*",12,5,22,19)

运行结果:
-16
105
25080

你可能感兴趣的:(09-函数的相关练习与思路)