我的循环正在努力将字符串的第一个字符移动到打印的字符串末尾,以获得字符串的长度

2024-09-29 21:33:23 发布

您现在位置:Python中文网/ 问答频道 /正文

如果给定长度为7的字符串“abcdefg”,则输出应打印出7行,如下所示:

abcdefg
bcdefga
cdefgab
defgabc
efgabcd
fgabcde
gabcedf

但我似乎错过了船后,许多小时的各种循环和打印声明

s = str("abcdefg")
print(s)
print()
for i in range(len(s)):
    new_s = s[:i+1] + s[-i:] + s[-i]
    print(new_s)

我明白了:

abcdefg

aabcdefga
abgg
abcfgf
abcdefge
abcdedefgd
abcdefcdefgc
abcdefgbcdefgb

Tags: 字符串in声明newforprint小时str
2条回答

循环可以是这样的:

s_len = len(s)
for i in range(s_len):
    s = s[1:] + s[0]
    print(s)

你太复杂了。正确的表达方式是

new_s = s[i:] + s[:i]

切片包括开始索引,不包括结束索引。上述表达式保证了结果的长度与输入列表的长度相同,只是交换了其中的变量部分

请注意,第一个new_s值是原始字符串本身。不需要在程序开始时打印

结果是:

abcdefg
bcdefga
cdefgab
defgabc
efgabcd
fgabcde
gabcdef

详细切片:Understanding slice notation

相关问题 更多 >

    热门问题