Python 每隔一个字符串打印一次*索引位置*2+;2.
我试图构建一个Python函数,该函数返回一个字符串,该字符串包含以下算法复制的所有其他字符:Python 每隔一个字符串打印一次*索引位置*2+;2.,python,loops,Python,Loops,我试图构建一个Python函数,该函数返回一个字符串,该字符串包含以下算法复制的所有其他字符: Index position * 2 + 2 例如:测试-->TTSSSSSSSSIIIIIGGGGGGGGGG 下面是我的代码,但我得到一个错误: 索引器错误:字符串索引超出范围 A版: def string_expansion(input_string): i = 0 while i < len(string): i += 1 if input_string[::2] ==
Index position * 2 + 2
例如:测试-->TTSSSSSSSSIIIIIGGGGGGGGGG
下面是我的代码,但我得到一个错误:
索引器错误:字符串索引超出范围
A版:
def string_expansion(input_string):
i = 0
while i < len(string):
i += 1
if input_string[::2] == string[i]:
return input_string[i] * (i * 2) + 2
def字符串扩展(输入字符串):
i=0
当我
第二个版本在传递参数时返回none
B版:
def string_expansion(input_string):
i = 0
while i < len(string):
if input_string[::2] == string[i]:
return input_string[i] * (i * 2) + 2
i += 1
def字符串扩展(输入字符串):
i=0
当我
如蒙协助,将不胜感激。谢谢。如果我正确回答了您的问题,您需要在每次迭代期间构建和存储字符串值:
def string_expansion(input_string):
i = 0
str=""
while i < len(input_string):
str =str+input_string[i] * ((i * 2) + 2)
i=i+2
print(str)
string_expansion("testing")
def字符串扩展(输入字符串):
i=0
str=“”
当i
我会这样做
def string_expansion(input_string):
return ''.join([e[1]*(e[0]*2+2) for e in enumerate(input_string) if e[0]%2 == 0])
string_expansion('Testing')
'TTssssssiiiiiiiiiigggggggggggggg'
如何定义“string”变量?另外,如果您在一个字符串上使用2的步长,而在输入字符串上仅增加1,则这可能是您得到索引错误的原因
i=len(string)-1
是最后一个有效的字符串索引,因此i+1
无效。您也返回得太快了;您需要在每次迭代期间建立返回值,然后返回最终结果。
def iter_tokens(inp):
for ind, ch in enumerate(inp):
if ind % 2 == 0:
yield ch * (ind * 2 + 2)
# Call this one
def str_exp(inp):
return ''.join(iter_tokens(inp))