【问题标题】:Print a word in parts python分部打印一个单词python
【发布时间】:2017-08-05 22:27:09
【问题描述】:

您好,我想创建一个函数,该函数将使用增强(它只是更改已经生成的单词)并在给定数字 n 的部分中打印新单词。 S=test 的示例我应该得到 ('##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))

【问题讨论】:

标签: python regex printing substitution


【解决方案1】:

立即修复。而不是:

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

我想你想要:

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

这将为您提供 n &lt;= i &lt; len(s) 范围内的 i 值。

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

print(exploder(S,n))

只是:

exploder(S,n)

exploder 函数返回 None。所以打印是你的虚假 None 输出的来源。

【讨论】:

  • 这行得通,但我又得到了一个无打印。对不起,我是 python 新手
  • @Alex 只需调用exploder,不要print 它,因为您正在打印它返回的内容,这没什么。 exploder 自行打印。
  • @Alex 正确识别了代码的第二个问题。 print(exploder(S,n))None 输出的来源。
【解决方案2】:
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%%

【讨论】:

  • 但是这样我没有得到 t%% 打印最后一个。
  • @Alex 哎呀,没注意到。您只需在i 的范围内添加一个,就像我在edited 一样。
猜你喜欢
  • 2015-04-21
  • 1970-01-01
  • 1970-01-01
  • 2021-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-29
相关资源
最近更新 更多