下面我有一個小寫字母列表。我的任務是從列表中獲取小寫字母的索引并添加移位。移位可以變化并且不是 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
提交
取消