【python解题笔记20210317】CodeWars:Mumbling

题目

内容:检测传入大小写字母的字符串,按照如下规则输出:第1个字符输出1次,第二个字母输出2次,依次往后,另外每个首字母大写,其他小写

链接:https://www.codewars.com/kata/5667e8f4e3f572a8f2000039/train/python

截图:

 

  

解题

思路: 

1、首先需对传入的字符串进行逐个单词分隔成列表,使用list()函数。

2、对得到的列表中字母按照1、2、3的次数叠加相同的字母,使用str*i(次数)。

3、此时得到的字符串大小写情况不确定,使用title()函数将首字母转换成大写,其他字母转换成小写。

4、定义1个结果字符串将每轮得到的字符串+分隔符‘-’拼接起来。

5、由于上述得到的结果结尾处多1个'-',使用strip('-')指定删除首尾的'-',得出最终的结果。

 

结果:

 

  

源码:

def accum(s):
    """
    检测传入大小写字母的字符串,按照如下规则输出
    accum("abcd") -> "A-Bb-Ccc-Dddd"
    accum("RqaEzty") -> "R-Qq-Aaa-Eeee-Zzzzz-Tttttt-Yyyyyyy"
    accum("cwAt") -> "C-Ww-Aaa-Tttt"
    :param s: 传入字符串、只包含大小写
    :return: 输出字符串,按照第1个字符输出1次,第二个字母输出2次,依次往后,另外每个首字母大写,其他小写
    """
    s=list(s)   #将传入字符串转换成列表
    result=''   #定义空字符串用于存储最后的结果
    print(s)
    j=0
    for i in s:
        j += 1    #每次循环j+1,用于得到每次循环时生成的字母重复次数
        i=i*j     #生成重复的字母
        i=i.title()   #使用title()函数将首字母转换成大写,其他字母转换成小写
        print(i)
        result=result+i+'-'   #将每轮生成的字符串拼接在result字符串中,以及拼接上'-',此时最后一位多个1个'-'
        pass
    print(result)
    result=result.strip('-')    #使用strip()方法去除首尾的'-',由于前面没有'-',最终只删除了最后1位的'-'
    print(result)
    return result

 

 

知识点

1、strip()函数用于字符串头部和尾部的指定字符串,默认为空格或换行符,但可以指定字符串,如本次用到的strip('-')。

2、list()函数可以将字符串转换成列表。

3、字符串的拼接可以使用str1+str2号,也可以使用str*次数,来快速获取相同的字符串。(另外,PS:append函数用于在列表末尾添加新的对象。)

 

 

参考资料:

https://www.runoob.com/python3/python3-upper-lower.html

https://www.cnblogs.com/xiaoleiel/p/8301402.html

https://blog.csdn.net/runner668/article/details/81067458

posted @ 2021-03-17 10:08  chooperman  阅读(149)  评论(0编辑  收藏  举报