python - 在 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)
解决方案
一个有趣的小方法是使用生成器。通常你只会使用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)
推荐阅读
- java - 从其他阶段将项目添加到 TableView
- javascript - 使用 TypeScript 和 Less 文件创建组件库
- c# - 如何让我的 winforms UI 更新更快?
- javascript - 在护照 app.use() 回调中未收到 Req 和 Res 参数
- mrtk - MRTKv2:如何获得空间感知观察者
- c - 尝试使用 Open Function 调用时出现错误消息
- pascal - 为什么运行代码后会出现语法错误?
- javascript - 无法从txt文件中获取数字总和
- php - parse_str():不推荐在没有结果参数的情况下调用 parse_str()
- flutter - 是否可以使用 Flutter 构建 Apple Watch App?