python - 将字母旋转固定位置[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,而不是要求中规定的旋转模式。
有人愿意就这个问题提供帮助吗?我应该如何从正确的方向开始?非常感谢大家。我真的很沮丧。。
解决方案
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
推荐阅读
- listview - SwiftUI 如果列表视图上有太多项目,为什么我的列表视图上的按钮会停止工作?
- html - 嵌套 Div 容器打破 flex wrap
- python - Python - 相同的字母但不同的字体/ascii 代码/编码?
- javascript - 如何一次将每个用户的孩子添加到另一个孩子火力基地下?
- arrays - 如何执行预定义的异步函数调用
- decorator - 更改 @track 值时 LWC 不更新视图
- nginx - Nginx 反向代理 HTTP2
- c - OpenSSL/OCSP 装订;如何在传递给 SSL_CTX_set_tlsext_status_cb(...) 的回调中访问 SSLContext?
- git - Visual Studio 2019 中的 SSH Bitbucket 克隆不起作用
- .net-core - 如何在 .NET Core 3 中不将代理与 RestSharp 一起使用