day_10_homework

# 1. 编写函数,求1+2+3+…N的和
def sun1(n):
    x = 0
    for n in range(0,n+1):
        x += n
    return x


print(sun1(4))

# 2. 编写一个函数,求多个数中的最大值
def max1(*a):
    a2 = 0
    for a1 in a:
        if a2 < a1:
            a2 = a1
    return a2


print(max1(6,9,4))
# 3. 编写一个函数,实现摇骰子的功能,打印N个骰子的点数和
def sum2(*n):
    num2 = 0
    for num1 in n:
        num2+=num1
    return num2


print(sum2(1,3,4,5))
# 4. 编写一个函数,交换指定字典的key和value。
#        例如:dict1={'a':1, 'b':2, 'c':3}  -->  dict1={1:'a', 2:'b', 3:'c'}
def dic (dict1):

    for x in dict1.copy():
        a1 = dict1.copy()[x]
        x,a1 = a1 , x
        del dict1[a1]
        dict1[x] = a1
    return dict1

print(dic({'a':1, 'b':2, 'c':3}))


# 5. 编写一个函数,提取指定字符串中所有的字母,然后拼接在一起产生一个新的字符串
#        例如: 传入'12a&bc12d-+'   -->  'abcd'
def str1(n):
    str3 = ''
    for str2 in n:
        if 'a' <= str2 <= 'z':
            str3 += str2
    return str3


print(str1('12a&bc12d-+'))
# 1. 写一个函数,求多个数的平均值


def numbers(*n):
    num1 = 0
    for num in n:
        num1 += num
    return num1 / len(n)


print(numbers(1,7,3,1))

# 2. 写一个函数,默认求10的阶乘,也可以求其他数字的阶乘
def num5(n):
    number1 = 1
    for index in range(1,n+1):
        number1 *= index
    return number1


print(num5(6))
# =====================注意:以下方法不能使用系统提供的方法和函数,全部自己写逻辑==============

# 1. 写一个自己的capitalize函数,能够将指定字符串的首字母变成大写字母
#        例如: 'abc' -> 'Abc'   '12asd'  --> '12asd'
def cap1(n):
    n2 = (chr(ord(n[0]) - 32))
    n = n[1:]
    return n2 + n


print(cap1(n='lkhk'))

# 2. 写一个自己的endswith函数,判断一个字符串是否已指定的字符串结束
#        例如: 字符串1:'abc231ab' 字符串2:'ab' 函数结果为: True
#             字符串1:'abc231ab' 字符串2:'ab1' 函数结果为: False
def ab(a, b):
    for index1 in range(len(a)):
        if a[index1] == b[0]:
            if a[index1 + 1] == b[len(b) - 1]:
                return True
            else:
                return False


print(ab(a='abc231ab', b='ab'))
# 1. 写一个自己的isdigit函数,判断一个字符串是否是纯数字字符串
#        例如: '1234921'  结果: True
#              '23函数'   结果: False
#              'a2390'    结果: False
def num1(a):
    count = 0
    for num2 in a:
        if '0' <= num2 <= '9':
            count += 1
    if count == len(a):
        return True
    else:
        return False

print(num1(a='1237函数'))

# 1. 写一个自己的upper函数,将一个字符串中所有的小写字母变成大写字母
#        例如: 'abH23好rp1'   结果: 'ABH23好RP1'
def cap1(n):
    for x in n:
        if 'a'<=x <='z':
            n2 = (chr(ord(x) - 32))
            print(n2)



print(cap1(n='abhwe好rp1'))
# 2. 写一个自己的rjust函数,创建一个字符串的长度是指定长度,原字符串在新字符串中右对齐,剩下的部分用指定的字符填充
#        例如: 原字符:'abc'  宽度: 7  字符:'^'    结果: '^^^^abc'
#             原字符:'你好吗'  宽度: 5  字符:'0'    结果: '00你好吗'

# 3. 写一个自己的index函数,统计指定列表中指定元素的所有下标,如果列表中没有指定元素返回-1
#        例如: 列表: [1, 2, 45, 'abc', 1, '你好', 1, 0]  元素: 1   结果: 0,4,6
#             列表: ['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权']  元素: '赵云'   结果: 0,4
#             列表: ['赵云', '郭嘉', '诸葛亮', '曹操', '赵云', '孙权']  元素: '关羽'   结果: -1
def index1(a,b):
    c = []
    n2=0   #n是否全部都遍历
    n = 0 #n求下标
    for n1 in a:
        n += 1
        if n1 == b:
            c.append(n-1)
        elif n1 != b:
            n2 += 1
    if n2 == n:
        return -1
    else:
        return c


print(index1(a=[1, 2, 45, 'abc', 1, '你好', 1, 0],b=3))
# 1. 写一个自己的len函数,统计指定序列中元素的个数
#        例如: 序列:[1, 3, 5, 6]    结果: 4
#             序列:(1, 34, 'a', 45, 'bbb')  结果: 5
#             序列:'hello w'    结果: 7
def lens(a):
    count6 = 0   #统计个数用
    for count5 in a:    #循环遍历出每个元素,
        count6+=1       #每循环一次计数
    return count6

print(lens(a='hello w'))
# 1. 写一个自己的max函数,获取指定序列中元素的最大值。如果序列是字典,取字典值的最大值
#        例如: 序列:[-7, -12, -1, -9]    结果: -1
#             序列:'abcdpzasdz'    结果: 'z'
#             序列:{'小明':90, '张三': 76, '路飞':30, '小花': 98}   结果: 98
def max1(a):
    if type(a[0]) == int:
        max2 = -10      #这是最大值    没完成 序列
        for n1 in a:
            if max2 < n1:
                max2 = n1

        return max2

    elif type(a[0])==str:
        max2 = ''  #这后是最大值
        for n1 in a:
            if max2 < n1:
                max2 = n1
        return max2
print(max1(a='abcdpzasdz'))
# 1. 写一个函数实现自己in操作,判断指定序列中,指定的元素是否存在
#        例如: 序列: (12, 90, 'abc')   元素: '90'     结果: False
#             序列: [12, 90, 'abc']   元素: 90     结果: True
def in1(a=(12,90,'abc'),b=123):
    count1 = 0
    for x in a:
        if x == b:
            return True
        if x != b:
            count1+=1
        if len(a)==count1:
            return False



print(in1())
# 1. 写一个自己的replace函数,将指定字符串中指定的旧字符串转换成指定的新字符串
# 例如: 原字符串: 'how are you? and you?'   旧字符串: 'you'  新字符串:'me'  结果: 'how are me? and me?'
# a = 'how are you? and you?'
# index11=0
# a2=''
# for index1 in range(len(a)):
#     if a[index1] == 'y':
#         if a[index1+1]=='o':
#             if a[index1+2]=='u':
#                 print(index11)
#                 a2=a[0:8]+'me'+a[11:17]+'me'+a[20:]
# print(a2)

b = 'ab'
print(b[(len(b)-1)])
# 1. 写四个函数,分别实现求两个列表的交集、并集、差集、补集的功能
# 交集
def inter(set1, set2):
    set3 = set()
    for set11 in set1:
        for set22 in set2:
            if set11 == set22:
                set3.add(set11)
    return set3


print(inter(set1={1, 3, 5, 6}, set2={1, 2, 5, 6}))
# 补集
def inter(set1,set2):
    set3 = set()
    for set11 in set1:
        for set22 in set2:
            if set11 != set22:
                set3.add(set11)
    return set3


print(inter(set1={1,3,5,6},set2={1,2,5,6}))
# 并集
def inter(set1,set2):
    for set11 in set1:
        set2.add(set11)
    return set2


print(inter(set1={1,3,5,6},set2={1,2,5,6}))
# 差集
def inter(set1, set2):
    set3 = set()
    for set11 in set1:
        for set22 in set2:
            if set11 == set22:
                set3.add(set11)
    for set33 in set3:
        set1.remove(set33)
    return set1

print(inter(set1={1,3,8,2,5,6},set2={1,2,5,6}))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。