首页 > 解决方案 > 将字母旋转固定位置[python编程]

问题描述

我是 python 编程的新手,想编写一个具有以下要求的程序:

该程序接受输入字符串和旋转次数。旋转字符串中的所有字符并在屏幕上打印结果。

例如输入为 ABCDZ 3 那么输出为 DEFGC

def rotate(input,d): 

Rfirst = input[0 : len(input)-d] 
Rsecond = input[len(input)-d : ] 

print "Right Rotation : ", (Rsecond + Rfirst) 

但是,我自己编写了一些代码,结果发现我只能将 ABCDZ 中的字符旋转为例如 ZABCD,而不是要求中规定的旋转模式。

有人愿意就这个问题提供帮助吗?我应该如何从正确的方向开始?非常感谢大家。我真的很沮丧。。

标签: pythonrotation

解决方案


Could this work?

def rotate_str(mstr, n):
  reverse = False
  if n < 0:
    n, reverse = - n, True
  for _ in range (0,n):
    if not reverse: mstr = mstr[-1] + mstr[0:-1]
    if reverse: mstr = mstr[1:] + mstr[0]
  return mstr

Negative n reverses the direction of rotation.

mstr = 'ABCDZ'
print(rotate_str(mstr, 3)) #=> CDZAB
print(rotate_str(mstr, -4)) #=> ZABCD

推荐阅读