• python学习之那些你不在乎却操作非主流的练习题(一)


    1.写代码,有如下列表,按照要求实现每⼀个功能
    lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
    (1)将列表lis中的"tt"变成大写(用两种方式)。
    (2)将列表中的数字3变成字符串"100"(用两种方式)。

    lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
    #将列表lis中的"tt"变成大写(用两种方式)。
    #方法一:利用函数
    lis[3][2][1][0] = lis[3][2][1][0].upper()
    print(lis)
    #方法二:直接修改
    lis[3][2][1][0] = 'TT'
    print(lis)
    # 方法三:替换
    lis[3][2][1][0] = lis[3][2][1][0].replace('t','T')
    print(lis)
    #方法四:大小写转换
    lis[3][2][1][0] = lis[3][2][1][0].swapcase()
    print(lis)
    
    #将列表中的数字3变成字符串"100"(用两种方式)
    #方法一:
    lis[1] = '100'
    lis[3][2][1][1] = '100'
    print(lis)
    #方法二:
    lis[1] = str(lis[1]).replace('3','100')
    lis[3][2][1][1]= str(lis[3][2][1][1]).replace('3','100')
    print(lis)
    #方法三:相加(骚气)
    lis[3][2][1][1] = str(lis[3][2][1][1]+97)
    print(lis)
    
    ##将列表中的字符串'1'变成数字101(用两种方式)
    #方法一:替换
    lis[3][2][1][2]= int((lis[3][2][1][2]).replace('1','101'))
    print(lis)
    #方法二:数字相加
    lis[3][2][1][2] = int(lis[3][2][1][2]) + 100
    print(lis)
    #方法三:字符相加
    lis[3][2][1][2] = int(lis[3][2][1][2]+'01')
    print(lis)
    

    输⼊⼀个字符串,要求判断在这个字符串中⼤写字⺟,⼩写字⺟,数字,其他共出现了多少次,并输出来

    contents = input("请输入;")
    up = 0
    low = 0
    num = 0
    oth = 0
    for i in contents :
        if i.lower() != i  :  #条件可以用 i.isupper()代替
            up += 1
        elif i.upper() != i :  #件可以用 i.islower()代替
            low += 1
        elif i.isnumeric() == True :
            num += 1
        else:
            oth += 1
    print(f"大写字母有{up}个,小写字母有{low}个,数字有{num}个,其他字符有{oth}个")
    

    3,写代码实现
    v1 = {"alex","wusir","taibai"}
    v2 = []
    循环让用户输入,如果用户输入的内容在v1中存在,就添加到v2中,如果v1中不存在就添加的v1中,用户输入Q退出程序
    解析:这道题我本没有用 in 来进行判断,而是直接add给v1,然后判断v1的长度有没有变化。

    v1 = {"德玛","皇子","赵信"}
    v2 = []
    while 1 :
        l = len(v1)
        s = input('请输入,按q退出:')
        v1.add(s)
        if s.upper() == 'Q':
            print('程序退出!')
            break
        elif  len(v1) == l :
            v2.append(s)
            print('v1中已存在,添加到v2中')
    print(v1)
    print(v2)
    

    4.⻋牌区域划分, 现给出以下⻋牌. 根据⻋牌的信息, 分析出各省的⻋牌持有量。
    cars = ['鲁A32444','鲁B12333','京B8989M','⿊C49678','⿊C46555','沪 B25041'.....],
    locals = {'沪':'上海', '⿊':'⿊⻰江', '鲁':'⼭东', '鄂':'湖北', '湘':'湖南'.....}
    结果: {'⿊⻰江':2, '⼭东': 2, '北京': 1,'上海':1}

    #方法一;
    cars = ['鲁A32444','鲁B12333','京B8989M','黑C46555','沪B25041','湘A32134']
    locals = {'沪':'上海','黑':'黑龙江','鲁':'山东','湘':'湖南','京':'北京'}
    inf = {}    #定义一个字典,用来存放"完整的地区名:数量"键值对
    for i in cars :
        if inf.get(locals[i[0]]) == None :  #首先利用.get()返回值的特性判断inf里有没有存在获得的KEY,如果不存在返回None,进行键值对的添加,value为1
            inf[locals[i[0]]] = 1
        else:                                          #获得的KEY已经存在的情况下,value的值自加1即可
            inf[locals[i[0]]] += 1
    print(inf )
    
    #方法二:脑路清奇版
    cars = ['鲁A32444','鲁B12333','京B8989M','黑C46555','沪B25041','湘A32134']
    locals = {'沪':'上海','黑':'黑龙江','鲁':'山东','湘':'湖南','京':'北京'}
    inf = {}    #定义一个字典,用来存放"完整的地区名:数量"键值对
    for i in cars :
        inf[locals[i[0]] = inf.get(locals[i[0]],0) + 1    #充分利用.get就有返回值的特性,当第一次get时,因为inf里不存在key返回数量0并赋值给新创建的这个key
    print(inf )
    

    5.使用for循环计算1-3+5-7+9-11+13...99的结果

    #方法一:普通
    sum1 = 0
    ls =[]
    for i in range(1,100,2):
        ls.append(i)
    for l in range(0,len(ls)):
        if l%2 == 0:
            sum1 += ls[l]
        else:
            sum1 -= ls[l]
    print(sum1)
    
    #方法二:各元素直接%4会出现1和3两种情况
    '''
    sum1 = 0
    ls =[]
    for i in range(1,100,2):
        if i%4 == 1:
            sum1 += i
        else:
            sum1 -= i
    print(sum1)
    
    #方法三:第一次循环+下一次循环-,以此类推
    
    sum1 = 0
    count = 0
    j = 1
    for i in range(1,100,2):
        sum1 += j*i
        j *= -1
    print(sum1)
    

    代码仅用于学习交流,不做他用------持续更新

    仅供参考,欢迎指正
  • 相关阅读:
    POJ 1149 PIGS(Dinic最大流)
    HDU 4514 湫湫系列故事——设计风景线(并查集+树形DP)
    [kuangbin带你飞]专题十一 网络流个人题解(L题留坑)
    BZOJ 3931 网络吞吐量(最短路+拆点最大流)
    学习RMQ-ST表
    `这个符号在mysql中的作用
    用一条mysql语句插入多条数据
    Leetcode 257 Binary Tree Paths 二叉树 DFS
    Leetcode 203 Remove Linked List Elements 链表
    Leetcode 38 Count and Say 传说中的递推
  • 原文地址:https://www.cnblogs.com/jjzz1234/p/10981005.html
Copyright © 2020-2023  润新知