You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中使用for/while循环实现字符串右旋转?

实现字符串右旋转的Python解决方案

你需要实现字符串的右旋转操作——每次将字符串的最后一个字符移至开头,循环执行该操作得到完整序列。以字符串"Burrow"为例,期望输出右旋转后的所有结果,但当前代码仅能实现左旋转,尝试负索引未成功,以下是正确的实现方法:

现有左旋转代码

def main():
    word = "Burrow"
    a = word
    for i in range(len(word)):
        c = a[i:] + a[:i]
        print(c)

if __name__ == "__main__":
    main()

右旋转的两种实现方式

方法一:使用负索引切片

左旋转逻辑是取a[i:] + a[:i],右旋转则需要每次把最后i个字符移到字符串头部。直接利用负索引切片即可实现,注意循环从1开始(i=0时会得到原字符串,无旋转意义):

def main():
    word = "Burrow"
    for i in range(1, len(word)+1):
        rotated = word[-i:] + word[:-i]
        print(rotated)

if __name__ == "__main__":
    main()

执行后输出"Burrow"的右旋转序列:

wBurro
owBurr
rowBur
rrowBu
urrrowB
Burrow

方法二:通过长度计算切片位置

如果对负索引不熟悉,也可以用字符串长度计算分割点,逻辑和负索引完全一致:

def main():
    word = "Burrow"
    str_len = len(word)
    for i in range(1, str_len+1):
        split_pos = str_len - i
        rotated = word[split_pos:] + word[:split_pos]
        print(rotated)

if __name__ == "__main__":
    main()

该方法通过正索引计算分割位置,效果和方法一完全相同,更适合对切片逻辑不熟悉的场景。

逻辑说明

左旋转是从左到右逐个将字符移至末尾,右旋转则是从右到左逐个将字符移至开头。两种实现均利用Python字符串的切片特性,对于短字符串来说效率足够。

内容的提问来源于stack exchange,提问作者rg4s

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 21:03:43