如何概括python中所有字符串的给定代码?

问题描述

我的目标是编写函数将字符串作为参数,例如“Nisa”并返回“N1I2S3A”。但是我写的代码只适用于只有三个字符的字符串。如何概括所有字符串的代码?如果您能帮助我,我将非常感激,因为我是 Python 的初学者。 代码如下:

tested_str = str(input("Enter a name: "))
def strPattern(mystr):
   while tested_str:
        if len(mystr) == 1:
           return mystr.upper()
        else:
           return (mystr[0] + str("1") + mystr[1:len(mystr) - 1:1].upper() + str("2") 
           + mystr[-1]).upper()

strPattern(mystr=tested_str)

解决方法

这是真正的pythonic方式:)

tested_str = str(input("Enter a name: "))

def str_pattern(mystr):
   return ''.join([f'{c}{i}' for i,c in enumerate(mystr.upper(),1)])

str_pattern(tested_str)
,
  • 使用 enumerate 迭代字符串的字符
    • 从一开始枚举
  • 在每次迭代中:通过添加字符然后添加枚举
  • 来构建一个列表
  • 通过joining列表中的字符创建一个新字符串。
,

这可以帮助我相信。

tested_str = str(input("Enter a name: "))
def strPattern(mystr):
    output=[]
    for i,c in enumerate(mystr):
        if i != 0:
            output.append(str(i))
        output.append(c.upper())
    return "".join(output)

print(strPattern(mystr=tested_str))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...