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)

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

仅供参考,欢迎指正
原文地址:https://www.cnblogs.com/jjzz1234/p/10981005.html