Python-五道练习题(huaxiawudi0727)

'''
第一题:去除列表中的重复元素
1.列表中的元素有重复,需要去掉重复元素
2.要求保留原来的元素顺序
3.不需要返回值,直接修改原列表即可
'''

def duplicate_removal(lt):
    l = []
    for i in lt:
        if i not in l:
            l.append(i)
    lt.clear()
    lt.extend(l)
    # for i in l:
       # lt.append(i)
    print(lt)
lt = [1,2,3,4,8,5,5,6,2,1,2]
duplicate_removal(lt)
'''
第二题:计算字符串中所有数字的和
1.字符串中只有小写字母和数字
2.数字可能连续,也可能不连续
3.连续数字要当作一个数处理
如:12abc34de5f => 12 + 34 + 5 => 51
'''

s = '12abc34de5f'
def sum_of_num(s):
    sum = 0
    ret = ''
    for i in range(len(s)):
        if s[i].isdecimal() == True:
            ret += s[i]
    else:
        ret += ''
    l = ret.split('')
    for i in l:
        if i.isdecimal() == True:
            sum += int(i)
        return sum
    print(sum_of_num(s))
'''
第三题:返回列表中的第二小的元素的下表
1.参数是一个列表,元素全部是整数
2.返回第二小的元素的下标
'''

def seconde_min(lt):
    l = []
    for i in lt:
        l.append(i)
    l.sort()
    for i in range(len(lt)):
        if i == l[1]:
            return i
'''
第四题:写出冒泡排序函数,可以排序任意类型的元素,可以逆序
1.实现冒泡排序算法
2.可以排序任意类型的元素
3.能够通过参数设置进行逆序,默认升序
'''

def list_sort(lt,key = None,reverse = False):
    n = len(lt)
    if not reverse:

        if key:
            for j in range(n - 1):
                if key(lt[i]) > key(lt[i + 1]):
                    lt[i],lt[i + 1] = lt[i + 1],lt[i]
    else:
        if key:
            for j in range(n - 1):
                for i in range(n - j - 1):
                     if key(lt[i]) < key(lt[i + 1]):
                         lt[i],lt[i + 1] = lt[i + 1],lt[i]
        return lt

'''
第五题:自己实现一个字符串的find函数
1.在一个字符串中查找另一个字符串
2.找到了返回第一次出现的位置
3.没找到返回-1
4.参数s1为源字符串,参数s2为要查找的字符串
解题思路:切割代码s2,若能切割,则存在s1,其中第一段字符长度为s2所在位置
'''

#def index_of_str(s1,s2):
#    if len(s2) != 0:
#        if s2 in s1:
#            return s1.index(s2)
#        else:
#            return -1
#    else:
#        return -1

def index_of_str(s1,s2):
    if len(s2) != 0:
        l = s1.split(s2)
        if True:
            return len(l[0])
        else:
            return -1
    else:
        return -1
s1 = 'abcdss12av123'
s2 = 'dss'
print(index_of_str(s1,s2))

随笔:不要拿自己的无知当个性!

猜你喜欢

转载自blog.csdn.net/huaxiawudi/article/details/81461730