下面我有一个小写字母列表。我的任务是从列表中获取小写字母的索引并添加移位。移位可以变化并且不是 1000。也可以是 50000 或 10 等。如果索引 + 移位大于 25,则应继续从“a”开始计数,直到达到 (索引 + 移位) 并返回字母。我不被允许使用图书馆。我的解决方案不适用于 1000 这样的大班次shift = 1000alphaList = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']index = alphaList.index('u')index = (index + shift) - len(alphaList) # this part has to be adjusted print(index)print(alphaList[index])结果应该是:“g”我得到的是:---------------------------------------------------------------------------IndexError Traceback (most recent call last)<ipython-input-20-8d37e597ee25> in <module> 5 index = (index + shift) - len(alphaList) 6 print(index)----> 7 print(alphaList[index])IndexError: list index out of range----------------------------------------------------------------------------
2 回答
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
您正在寻找模运算符。从文档(重点是我的):
%(模)运算符产生第一个参数除以第二个参数的余数。数字参数首先被转换为通用类型。右参数为零会引发 ZeroDivisionError 异常。参数可以是浮点数,例如,3.14%0.7 等于 0.34(因为 3.14 等于 4*0.7 + 0.34。)模运算符始终产生与其第二个操作数具有相同符号(或零)的结果;结果的绝对值严格小于第二个操作数的绝对值
index = (index + shift) % len(alphaList)
添加回答
举报
0/150
提交
取消