首页 > 解决方案 > 在 x 行上打印字符串的 x 个字符

问题描述

我如何编写一个函数,一遍又一遍地打印一个单词,在x字母的部分中,直到x到达行。例如,以下内容:

nelio("ab",3) 
print()
nelio("aybabtu",5) 

将打印:

aba
bab
aba

aybab
tuayb
abtua
ybabt
uayba

我首先在下面编写了一个程序,它只打印整个单词的x时间,但不知道如何从这里继续前进。

def nelio(word,size):
    i = 0    
    while i < size:
        print(word)
        i+=1      

if __name__ == "__main__":
    nelio("auto",3) 

标签: python

解决方案


一个有趣的小方法是使用生成器。通常你只会使用itertools.cycle,但如果你说你不能导入,没问题:

def cycle_word(word):
    while True:
        for letter in word:
            yield letter

现在你可以用它来总是得到下一个字母:

def nelio(word, count):
    letters = cycle_word(word)
    for _ in range(count):
        new_word = ''.join(next(letters) for _ in range(count))
        print(new_word)

推荐阅读