python - 如何将字符串向右移动 n 个字符
问题描述
我正在练习编码,并在互联网上找到了这个练习:
两行分别输入一个字符串s和一个整数n,定义一个函数,将字符串s向右移动n位,当n为负数时向左移动。
如果 s 是空字符串 '',则输出 '' 而不管 n。
样本输入:
s ='123456'
n=3
样本输出:
Output result: 456123
到目前为止,我这样做了:
def shiftall(s, n, left, right):
while left <= right:
if s[left] < 0 and s[right] < 0:
left += n
elif s[left] > 0 and s[right] < 0:
s[left], s[right] = \
s[right], s[left]
left += n
right -= n
elif s[left] > 0 and s[right] > 0:
right -= n
else:
left += n
right -= n
def display(s):
for i in range(len(s)):
print(s[i], end=" ")
print()
if __name__ == "__main__":
s = str(input('s='))
n = int(input('n='))
shiftall(s, 0, n - 1)
display(s)
但是出现错误并且无法解决:
Traceback (most recent call last):
File "C:\Users\User\PycharmProjects\pythonProject\main.py", line 31, in <module>
shiftall(s, 0, n - 1)
TypeError: shiftall() missing 1 required positional argument: 'right'
有什么建议么?编辑错误输出*
解决方案
它是__name__
和不是name
你也可以这样做:
s = s[n:] + s[:n]
移动字符串。
推荐阅读
- r - dplyr:如何在 mutate_at funs 中使用多个变量
- python - 在数据库中创建自动对象 (Django)
- python - 结构化流式传输 - 什么是一次性触发?
- c# - 如何比较相同复杂类型的两个列表?
- sql - SQL Server 根据值重复行数
- ms-office - Microsoft Office 为何不需要 .NET 3.5 或 4.5,而 VSTO 插件需要它们?
- powerpoint - PowerPoint 加载项仅在 Office Online 上第三次初始化后才有效
- python - 通过 Statsmodels 进行时间序列预测
- html - 如何在 Angular 中的复选框上设置默认值?
- google-cloud-platform - 谷歌云计算使用导出到存储不起作用