栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【python练习题01】字符串格式化输出

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【python练习题01】字符串格式化输出

题目:
输入形如AB-ABC-cABd-Cb@,输入待分隔长度k; 要求输出保留第一个“-”前面的字符串格式,后面的每k个字符一分格,每三个字符中,大写字母数多的三个字母转大写,小写字母数多的三个字母转小写,一样多的不处理。

输入:
AB-ABC-cABd-Cb@
2

输出:
AB-AB-CC-AB-dc-b@

思路:
题解:

head, tail = input().split("-", 1)  # "-"为分隔符,1为分隔次数
k = int(input())

tail = tail.replace("-", "")
ls = ""
for i in range(0, len(tail), 3):
    fen = tail[i:i+3]  # 把后面的字符串以3个字符分隔
    up_count = 0
    low_count = 0
    for c in fen:  # 每3个字符分隔的串循环一次
        if 'A' <= c <= 'Z':
            up_count += 1
        if 'a' <= c <= 'z':
            low_count += 1
    if up_count == low_count:
        ls += fen
    elif up_count > low_count:
        ls += fen.upper()
    else:
        ls += fen.lower()
# 按长度k处理ls
new_ls = []
for j in range(0, len(ls), k):
    new_ls.append(ls[j:j+k])

print(f"{head}-{'-'.join(new_ls)}")

方法二:

str_input = ""
k = int(input())
ls = []
for j in str_input:
    ls.append(j)
    if j == "-":
        ls.append(j)
        break
    else:
        j += 1
m = len(ls)
new_ls = []
ls_i = []  # 所有符号-的下标数
for i in range(len(str_input[m:])):
    new_ls.append(str_input[i])
    if str_input[i] == "-":
        ls_i.append(i)
    else:
        continue
new_ls = new_ls[::3]
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/980392.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号