Python函数练习题

1.编写一个名为collatz()的函数,它有一个名为number的参数,如果参数是偶数,那么collatz()就打印出number//2,如果number是奇数,collatz()就打印3*number+1

def collatz(number):
    if number % 2==0:
        print(number//2)
    else:
        print(3*number+1)

collatz(4)

Python函数练习题_第1张图片

2.编写一个函数cacluate, 可以接收任意多个数,返回的是一个元组.元组的第一个值为所有参数的平均值, 第二个值是大于平均值的所有数。

def cacluate(*num):
    li = []
    avg = sum(num)/len(num)
    for i in num:
        if i > avg:
            li.append(i)
    return int(avg),li


a = cacluate(1,2,3,4,5)
print(a)

Python函数练习题_第2张图片 

3.编写函数, 接收一个列表(包含10个整形数)和一个整形数k, 返回一个新列表.

 函数需求: 将列表下标k之前对应(不包含k)的元素逆序;

 将下标k及之后的元素逆序;

def fun(list,k):
    if k<0 or k>len(list):
        return 'error key'
    else:
        return list[:k][::-1]+list[k:][::-1]

print(fun([1,2,3,4,5,6,7,8,9,10],3))

Python函数练习题_第3张图片

 4.模拟轮盘抽奖游戏

轮盘分为三部分: 一等奖, 二等奖和三等奖;轮盘转的时候是随机的,

如果范围在[0,0.08)之间,代表一等奖,如果范围在[0.08,0.3)之间,代表2等奖,

如果范围在[0.3, 1.0)之间,代表3等奖。

import random

rewardDict = {
    '一等奖': (0, 0.08),
    '二等奖': (0.08, 0.3),
    '三等奖': (0.3, 1)
}

def rewardFun():
    """用户得奖等级"""
    # 生成一个0~1之间的随机数
    num = random.random()
    # 判断随机转盘转的数是几等奖
    for k, v in rewardDict.items():
        # 这里的v是元组
        if v[0] <= num < v[1]:
            return k

resultDict = {}

for i in range(1000):
    # res:本次转盘的等级(一/二/三等奖)
    res = rewardFun()
    if res not in resultDict:
        resultDict[res] = 1
    else:
        resultDict[res] = resultDict[res] + 1

for k, v in resultDict.items():
    print(k, '---------->', v)

Python函数练习题_第4张图片

你可能感兴趣的:(python,程序生活,编程语言,python,学习)