在部分python中打印一个单词

时间:2017-03-15 09:14:30

标签: python regex printing substitution

您好我想创建一个将使用增强功能(只更改已经创建它的单词)并在给定数字n的部分内打印新单词的函数。 S =测试的例子我应该得到('## t','#te','tes','est','st%','t %%')

def enhance(S,n):
    S = "#"*(n-1)+S+"%"*(n-1)
    return S

def exploder(S,n):
    S = enhance(S,n)
    x=0
    for i in range (n <= len(S)):
        print(S[x:i])
        x=x+1


S="test"
n = 3
for n in range (0,n):
    print(exploder(S,n))
    n=n+1
print(exploder(S,n))

2 个答案:

答案 0 :(得分:2)

立即修复。而不是:

  for i in range (n <= len(S)):

我想你想要:

  for i in range(n, len(S) + 1):

这会在n <= i < len(s)范围内为您提供 i 的值。

另外,正如Alex Hall建议的那样,改变:

print(exploder(S,n))

只是:

exploder(S,n)

exploder 函数返回。因此,打印是您的虚假输出的来源。

答案 1 :(得分:1)

def enhance(S, n):
    S = "#" * (n - 1) + S + "%" * (n - 1)
    return S

def exploder(S, n):
    S = enhance(S, n)
    for i in range(len(S)-n+1):
        print(S[i:i+n])

S = "test"
n = 3
exploder(S, n)

输出:

##t
#te
tes
est
st%
t%%