Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 每隔一个字符串打印一次*索引位置*2+;2._Python_Loops - Fatal编程技术网

Python 每隔一个字符串打印一次*索引位置*2+;2.

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] ==

我试图构建一个Python函数,该函数返回一个字符串,该字符串包含以下算法复制的所有其他字符:

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))