這是我的函式,但它不能正常作業。第 1 行輸出很好,但第 2 行從頭開始文本而不是繼續它。:
def squared(text, length):
for i in range(length):
if i%length==0:
result=text*length
print(result[0:length])
if __name__ == "__main__":
squared("abc", 5)
輸出必須是:
abcab
cabca
bcabc
abcab
cabca
uj5u.com熱心網友回復:
您可以cycle圍繞文本并為每一行添加islice下 5行。這樣您就不必管理任何索引和 mod 數學。
from itertools import cycle, islice
def squared(text, length):
letters = cycle(text) # lazy iterator -> abcabcabcabc....
for i in range(length):
print("".join(islice(letters, length)))
# print(*islice(letters, length), sep="")
>>> squared("abc", 5)
abcab
cabca
bcabc
abcab
cabca
一些檔案
itertools.cycleitertools.islicestr.join
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/348434.html
