2017-12-30 2 views
-4

13 행에 사용 된 임의의 정수를 문자열로 변환하려고 시도하지만 암호화 할 수는 있지만 문자열 인덱스가 Python에서 범위를 벗어나고 있습니다. 파이썬 최신 버전을 사용하고 있습니다.문자열 인덱스가 범위를 벗어났습니다.

import random 
result = '' 
message = '' 
choice = '' 
key = '' 
number = random.randint(1,50) 

while choice != '2': 
    choice = input("would you like to 1. encrypt message or 2. exit ") 

    if choice == '1': 
     message = input("enter message to be encrypted ") 
     for i in range(0, len(message)): 
      result = result + chr(ord(message[i]) - number) 
     number = str(number) 
     for i in range(0, len(number[i])): 
      key = key key + int(ord(number[i])-7) 
     print(result + " press enter to close") 
     print(key) 
     end = input() 
     break 
+1

질문에 코드를 붙여 넣기하세요 : 대신에 노력합니다. 또한 전체 오류 추적을 제공하십시오. [StackOverflow 좋은 질문을하는 법] (https://stackoverflow.com/help/how-to-ask)을 읽어보십시오. –

+0

예, 코드를 게시하지 말고 게시해야합니다. 그러나 '나는 범위 안에있다 (len (number [i]))'- 이것은 무엇을하기로되어 있나? – MrT

+0

메시지에''number '가 50 인 경우 어떻게됩니까? 여기를 올려서 생각하면됩니다 : https://ascii.cl/ 현재 오류를 수정했을 때 –

답변

0

나는 '나'만을 루프의 범위 내 액세스 할 수 있습니다 당신이 줄 번호 (16)

for i in range(0, len(number[i])): 

에 문제가 있다고 생각. len (number [i])는 컴파일러와 인덱스 오류에 대해 이해가되지 않습니다. 그것을 스크린 샷하지 않는,

for i in range(len(number)): 

안부

관련 문제