>

처음으로 코드를 설명하겠습니다. 내 코드는 암호화 코드입니다. 처음에는 두 개의 숫자를 제공하고 두 개의 암호화 단계가 있습니다. 첫 단계는 색인이 첫 번째 숫자와 같은 문자가 될 때까지 텍스트를 뒤집습니다. 두 번째 단계는 이전 위치 출력의 문자를 새 위치의 양으로 두 번째 숫자만큼 이동합니다. 마지막으로 암호화 된 내용을 인쇄하십시오. 이 코드에서는 7 번째 코드 줄에 문제가 있습니다. 7 번째 줄에있는 변수에 어떤 유형을 사용 해야하는지 모르겠습니다. str을 사용하든 int를 사용하든 오류가 발생합니다.

first_num=int(input("Fnum: "))
second_num=input("Snum: ")
encrypt_stage1="".join(name[first_num-1::-1])+"".join(name[first_num::])
for place,char in enumerate(encrypt_stage1):
    ascii_code=ord(char)
    encryption_stage2=""
    encryption_stage2 += chr(str(int(ascii_code)+place*second_num))
print(encryption_stage2)
>>>TypeError: unsupported operand type(s) for +: 'int' and 'str'

----------
example of input: name=vahid, first_num=1, second_num=3
output will be: ygqus

  • 답변 # 1

    적어도 세 가지 문제가 있습니다 :

    second_num 변환을 잊어 버렸습니다   int

    chr() 를 적용 할 수 없습니다   str() 로 나는 chr() 를 제거  전화

    encryption_stage2="" 를 움직여야 해요  루프 외부에서 반복 할 때마다 다시 할당하지 않음

    이러한 문제를 해결 한 후 코드는 다음과 같습니다.

    name = 'name'
    first_num=int(input("Fnum: "))
    second_num=int(input("Snum: "))
    encrypt_stage1="".join(name[first_num-1::-1])+"".join(name[first_num::])
    encryption_stage2=""
    for place,char in enumerate(encrypt_stage1):
        ascii_code=ord(char)
        encryption_stage2 += str(int(ascii_code)+place*second_num)
    print(encryption_stage2)
    
    

  • 이전 javascript - jest에서 함수에 대한 테스트 케이스 작성
  • 다음 c# - Unity3D HoloLens 앱에서 BLE 비콘을 감지하는 방법은 무엇입니까?