我正在Python中製作一個加密工具,並且這個過程的一部分是用加密位置重新分配每個位置。該代碼是指在此通過該代碼來實現每個字符運行加密:for循環不夠循環 - Python
for pos in range (0, len(plaintext)-1):
print("pos is %s" % (pos))
下面的代碼應該是不相關的,但可以被提供。 當這個代碼運行,輸出,
pos is 0
pos is 1
環路從未達到2,儘管「明文」是3的長度如果我要刪除「-1」部分(包括作爲長度和最後的位置是不一樣的),我遇到一個錯誤,以下代碼超出範圍(以下代碼在我眼裏不需要改變,但可以提供)。
任何人都可以理解或解釋我的問題?
的Python 2.7.11 視窗8.1
編輯:
以下循環開始如下的代碼,
for pos in range (0, len(plaintext)-1):
print("pos is %s" % (pos))
for k in range (0, key):
if(plaintext[pos] == "z"):
crypt = "%s%s%s" % (crypt[:pos], "a", crypt[pos+1:])
else:
crypt = "%s%s%s" % (crypt[:pos], abc[abc.index(plaintext[pos])+1], crypt[pos+1:])
誤差是由於所述切片是 隱窩[凸起pos + 1:]
因爲你不能在2.7.11中分配一個位置,所以我的解決方法是concatenat在我的位置的任何一側,圍繞新加密的密鑰。
如果您需要此幫助,請向我們顯示'plaintext' – jacoblaw
'range()'不包含'stop'值,所以'range(len(明文))'就足夠了。注意:'對於pos,枚舉中的char(明文):'可能更好。 – AChampion
'範圍(len(明文))' –