【发布时间】:2014-11-21 00:03:30
【问题描述】:
根据用户输入的字符串,您将如何根据一组特定的字母和符号旋转字符串。用户还将输入旋转量。例如,如果用户输入旋转 3,则用户已经输入的单个字符将在字符组/字符列表中向下旋转 3 个字符。
【问题讨论】:
-
请提供更具体的细节,例如一些示例输入和预期输出,以及您迄今为止尝试过的内容以及您遇到的问题。
根据用户输入的字符串,您将如何根据一组特定的字母和符号旋转字符串。用户还将输入旋转量。例如,如果用户输入旋转 3,则用户已经输入的单个字符将在字符组/字符列表中向下旋转 3 个字符。
【问题讨论】:
这是一个很酷的方法
rotated = ''.join([mystring[i-offset] for i in range(len(mystring))])
如果偏移量太高,它可能会溢出(出现越界错误),如果相关,您必须考虑这一点
解释:
我们索引到字符串并减去偏移量,利用负索引在 Python 中包装的事实(尽管只有一次,因此可能溢出)。列表推导允许我们对一行中的每个字符执行此操作,而连接函数让我们将它们重新组合成一个字符串
【讨论】:
def rotate_left(string, offset):
return string[offset:] + string[:offset]
def rotate_right(string, offset):
return string[-offset:] + string[:-offset]
>>> rotate_left('hello world', 3)
'lo worldhel'
>>> rotate_right('hello world', 3)
'rldhello wo'
【讨论】: