美文网首页
作业008:函数基础

作业008:函数基础

作者: yydafx | 来源:发表于2019-11-15 10:00 被阅读0次

1. 编写函数,求1+2+3+…N的和

def yyd_sum(num):
    """
    求1到N的相加的和
    :param num:
    :return: 返回1到N的相加的和
    """
    sum1 = 0
    for i in range(num+1):
        sum1 += i
    return sum1


num = int(input('请输入任意正整数:'))
print(yyd_sum(num))

第1题代码演示

请输入任意正整数:100
5050

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

def yyd_max(*num):
    """
    求多个数中的最大值
    :param num:
    :return: 返回最大值
    """
    max1 = num[0]
    for i in num:
        if max1 < i:
            max1 = i
    return max1

print(yyd_max(12, 23, 32, 12))


3. 编写一个函数,实现摇骰子的功能,打印N个骰子的点数和
import random
def yyd_sieve_sum(num):
    """
    N个骰子的点数和
    :param num: 多少个骰子
    :return: N个骰子的点数和
    """
    sum1 = 0
    for i in range(num):
        sum1 += random.randint(1, 6)
    return sum1


print(yyd_sieve_sum(3))

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

  • 例如: dict1 = {'a': 1, 'b': 2, 'c': 3} --> dict1 = {1: 'a', 2: 'b', 3: 'c'}
def yyd_change(dict1):
    """
    交换指定字典的key和value
    :param num:
    :return: 交换后的值
    """
    new_dict1 = {}
    for i in dict1:
        new_dict1[dict1[i]] = i
    dict1 = new_dict1
    return dict1

dict1 = {'a': 1, 'b': 2, 'c': 3}
print(yyd_change(dict1))

5、编写一个函数,提取指定字符串中所有的字母,然后拼接在一起产生一个新的字符串

  • 编写一个函数,提取指定字符串中所有的字母,然后拼接在一起产生一个新的字符串
def yyd_extra_str(char):
    """
    提取指定字符串中所有的字母,然后拼接在一起产生一个新的字符串
    :param char:
    :return: 返回新的字符串
    """
    str1 = ''
    for ch in char:
        if 'a' <= ch <= 'z' or 'A' <= ch <= 'Z':
            str1 = str1 + ch
    return str1

print(yyd_extra_str('abc231FGb'))

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

def yyd_avg(*num):
    """
    求多个数的平均值
    :param num:
    :return: 返回平均值
    """
    count = 0
    max1 = 0
    for i in num:
        count += 1
        max1 += i
    return max1/count


print(yyd_avg(12, 23, 32, 12))

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

def yyd_fac(num):
    """
    求数字的阶乘
    :param num: 需要求阶乘的数字
    :return: 返回任意数字的阶乘
    """
    duct = 1
    for i in range(1, num+1):
        duct *= i
    return duct


print(yyd_fac(10))

8.写一个自己的capitalize函数,能够将指定字符串的首字母变成大写字母

  • 例如: 'abc' -> 'Abc' '12asd' --> '12asd'
def yyd_capitalize(char):
    """
    将指定字符串的首字母变成大写字母
    :param char:
    :return: 返回改变后的字符串
    """
    if 'a' <= char[0] <= 'z':
        char = char.replace(char[0], chr(ord(char[0])-32))
    return char

print(yyd_capitalize('abc'))

9、写一个自己的endswith函数,判断一个字符串是否已指定的字符串结束

  • 例如: 字符串1:'abc231ab' 字符串2:'ab' 函数结果为: True
  •  字符串1:'abc231ab' 字符串2:'ab1' 函数结果为: False
def yyd_endswith(char):
    """
    判断一个字符串是否已指定的字符串结束
    :param char:
    :return: 返回True或者False
    """
    str1 = 'abc231ab'
    if str1[-len(char):] == char:
        return True
    else:
        return False

print(yyd_endswith('ab'))

10、写一个自己的isdigit函数,判断一个字符串是否是纯数字字符串

  • 例如:
      '1234921'结果: True
      '23函数'结果: False
      'a2390'结果: False
def yyd_isdigit(char):
    """
    判断一个字符串是否是纯数字字符串
    :param char:
    :return: 返回True或者False
    """
    for i in char:
        if not '0' <= char <= '9':
            return False
        else:
            return True

print(yyd_isdigit('1234921'))

11、写一个自己的upper函数,将一个字符串中所有的小写字母变成大写字母

  • 例如: 'abH23好rp1' 结果: 'ABH23好RP1'
def yyd_upper(char):
    """
    将一个字符串中所有的小写字母变成大写字母
    :param char:
    :return: 返回改变后的字符串
    """
    n = 0
    for ch in char:
        if 'a' <= ch <= 'z':
            char = char.replace(char[n], chr(ord(ch)-32))
        n += 1
    return char


print(yyd_upper('abH23好rp1'))

12、写一个自己的rjust函数,创建一个字符串的长度是指定长度,原字符串在新字符串中右对齐,剩下的部分用指定的字符填充

  • 例如: 原字符:'abc'宽度: 7字符: '^'结果: '^^^^abc'
      原字符: '你好吗'宽度: 5字符: '0'结果: '00你好吗'
def yyd_rjust(num, char):
    a = '你好吗'
    if len(a) < num:
        a = (num - len(a)) * char + a
    print(a)


print(yyd_rjust(5, '+'))

13、写一个自己的index函数,统计指定列表中指定元素的所有下标,如果列表中没有指定元素返回-1

  • 例如: 列表: [1, 2, 45, 'abc', 1, '你好', 1, 0] 元素: 1 结果: 0,4,6
        列表: ['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权'] 元素: '赵云' 结果: 0,4
        列表: ['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权'] 元素: '关羽' 结果: -1
def yyd_index(list1: list, char):
    for index in range(len(list1)):
        if list1[index] == char:
            print(index, end=', ')
        else:
            print('-1')
            break
    return

yyd_index(['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权'], '赵云')

14、写一个自己的len函数,统计指定序列中元素的个数

  • 例如: 序列:[1, 3, 5, 6] 结果: 4
      序列:(1, 34, 'a', 45, 'bbb') 结果: 5
      序列:'hello w' 结果: 7
def yyd_len(char):
    """
    统计指定序列中元素的个数
    :param char:
    :return: 返回元素个数
    """
    count = 0
    for i in char:
        count += 1
    return count


print(yyd_len((1, 34, 'a', 45, 'bbb')))

15、写一个自己的max函数,获取指定序列中元素的最大值。如果序列是字典,取字典值的最大值

  • 例如: 序列:[-7, -12, -1, -9] 结果: -1
      序列:'abcdpzasdz' 结果: 'z'
      序列:{'小明':90, '张三': 76, '路飞':30, '小花': 98} 结果: 98

16、写一个函数实现自己in操作,判断指定序列中,指定的元素是否存在

  • 例如: 序列: (12, 90, 'abc') 元素: '90' 结果: False
      序列: [12, 90, 'abc'] 元素: 90 结果: True
def yyd_in(seq, char):
    num = 0
    while num < len(seq):
        if char == seq[num]:
            return True
        num += 1
    else:
        return False


print(yyd_in((12, 90, 'abc'), 'a'))

17、写一个自己的replace函数,将指定字符串中指定的旧字符串转换成指定的新字符串

  • 例如: 原字符串: 'how are you? and you?' 旧字符串: 'you' 新字符串:'me' 结果: 'how are me? and me?'
def yyd_replace(str1, old_str, new_str):
    """
    字符串替换
    :param str1: 旧字符串
    :param old_str: 被替换的字符串
    :param new_str: 用来替换的字符串
    :return: 新的字符串
    """
    return new_str.join(str1.split(old_str))

str1 = 'how are you? and you?'
str2 = 'you'
str3 = 'me'
print(yyd_replace(str1, str2, str3))

18、写四个函数,分别实现求两个列表的交集、并集、差集、补集的功能

# 交集
def yyd_intersection(char1, char2):
    list3 = set()
    for ch1 in char1:
        for ch2 in char2:
            if ch1 == ch2:
                list3.add(ch1)
    return list3
print(yyd_intersection(char1, char2))


# 并集
def yyd_union(char1, char2):
    list3 = set()
    for ch1 in char1:
        for ch2 in char2:
            list3.add(ch2)
        list3.add(ch1)
    print(list3)
yyd_union(char1, char2)

相关文章

网友评论

      本文标题:作业008:函数基础

      本文链接:https://www.haomeiwen.com/subject/qxddictx.html