函数练习

import random

from random import randint

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

def yt_sum(n):
    sum1 = 0
    for x in range(1, n+1):
        sum1 += x
    return sum1


print('第1题:', yt_sum(100))

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

def yt_max(*nums):
    # 最大值默认是第一个数
    max1 = nums[0]
    for item in nums:
        if item > max1:
            max1 = item
    return max1


print('第2题:', yt_max(12, 34, 6, 87, 54))

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

def play_dice(n):
    sum1 = 0
    for _ in range(n):
        num = randint(1, 6)
        print(num, '点')
        sum1 += num

    return sum1


print('第3题:', play_dice(2))

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

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

def change_key_value(dict1:dict):

    for key in dict1.copy():
        # 通过key拿到值
        value = dict1[key]
        # 删除原来的键值对
        del dict1[key]
        # 将值作为key,键作为value,添加键值对
        dict1[value] = key

    """
    copy: {'a': 1, 'b': 2, 'c': 3, 'd': 4}
    原:{ 1:'a', 2:'b', 3:'c', 4:'d' }
    key = 'a'  value=1  dict1[1]='a'
    key = 'b'  value=2  dict1[2]='b'
    ....
    
    """


dict11 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
change_key_value(dict11)
print('第4题', dict11)

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

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

def connect(list: str):
    for char in list:
        str1 = ''
        if char.isalpha():
            str1 += char
        return str1

print('第5题:', connect('12a&bchu23juj12d--'))

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

def yt_mean(*nums):
    # yt_sum的功能是求多个数的和
    return sum(nums) / len(nums)


print('第6题:', yt_mean(1, 2, 3, 4, 5))

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

def yt_factorial(n=10):
    sum1 = 1
    for x in range(1, n+1):
        sum1 *= x
    return sum1


print('第7题:', yt_factorial(5))
print('第7题:', yt_factorial())

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

如: operation('+', 1, 2, 3) ---> 求 1+2+3的结果

operation('-', 10, 9) ---> 求 10-9的结果

operation('', 2, 4, 8, 10) ---> 求 24810的结构

def yt_operation(operator, *nums):
    if operator == '+':
        sum1 = 0
        for num in nums:
            sum1 += num
        return sum1

    elif operator == '-':
        # 用第一个元素依次减后边的每一个数
        sum1 = nums[0]
        for index in range(1, len(nums)):
            sum1 -= nums[index]
        return sum1
    elif operator == '*':
        sum1 = 1
        for num in nums:
            sum1 *= num
        return sum1


print('第8题:', yt_operation('+', 1, 2, 3, 4))
print('第8题:', yt_operation('*', 1, 2, 3, 4))
print('第8题:', yt_operation('-', 1, 2, 3, 4))

9.写一个函数,求指定列表中,指定的元素的个数 。

def yt_count(list1:list, item):
    count = 0
    for x in list1:
        if x == item:
            count += 1
    return count


print('第9题:', yt_count([1, 34, 56, 7, 1, 3, 1], 17))

10.写一个函数,获取指定列表中指定元素对应的下标(如果有多个,一起返回)

def yt_index(list1, item):
    indexs = []
    for index in range(len(list1)):
        x = list1[index]
        if x == item:
            indexs.append(index)
    return indexs


print('第10题', yt_index([1, 34, 56, 7, 1, 3, 1], 1))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 编写一个函数,求1+2+3+...+N 2. 编写一个函数,求多个数中的最大值 3. 编写一个函数,实现摇骰...
    佐手牵鼬手_89a9阅读 108评论 0 0
  • 1. 编写一个函数,求1+2+3+...+N 2. 编写一个函数,求多个数中的最大值 3. 编写一个函数,实现摇骰...
    魅影_0d2e阅读 315评论 0 0
  • 编写一个函数,求1+2+3+...+N 编写一个函数,求多个数中的最大值 编写一个函数,实现摇骰子的功能,打印n个...
    逆流而上_2eb6阅读 110评论 0 0
  • 编写一个函数,求1+2+3+...+N 编写一个函数,求多个数中的最大值 编写一个函数,实现摇骰子的功能,打印n个...
    留级是不可能留级的阅读 159评论 0 0
  • 一、关于“牛人是如何炼成的”——自律二、关于“关系保鲜的秘诀”——保持成长,改变自己。三、关于“如何打破‘三句死’...
    雪梨_5114阅读 124评论 0 0