【问题标题】:How to uppercase specific letter如何将特定字母大写
【发布时间】:2020-06-09 11:56:32
【问题描述】:

我想将姓名的每 5 个字母大写一次

注意:我只想使用 .upper() 方法“not capitalize()”

我试过了,但我得到了 IndexError: string index out of range

name = "Cristiano Ronaldo"

for t in range(0,len(name),5):
    name = str(name)[t].upper()
    print(name)

【问题讨论】:

标签: python uppercase


【解决方案1】:
"".join([char.upper() if index > 0 and (index - 1) % 5 == 0 else char for index, char in enumerate(name)])

【讨论】:

    【解决方案2】:

    你可以先把str改成list

    l_name = list(name)
    
    for i in range(0,len(l_name),5):
        l_name[i] = l_name[i].upper()
    
    result = ''.join(l_name)
    

    【讨论】:

      【解决方案3】:

      name = "克里斯蒂亚诺·罗纳尔多"

      print(''.join([ letter.upper() if (index+1) % 5 == 0 else letter for index,letter in enumerate(name)]))
      

      enumerate 方法用于在循环时跟踪字符串中每个字母的索引,对于每个 5 的倍数,我们正在执行 letter.upper() else letter

      【讨论】:

        【解决方案4】:

        使用pythonic方式:

        name = "cristiano Ronaldo"
        print(''.join([l if i%5 else l.upper() for i, l in enumerate(name, 1)]))
        

        【讨论】:

          猜你喜欢
          • 2013-02-04
          • 2015-08-07
          • 2020-08-24
          • 1970-01-01
          • 2014-12-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多