2017-10-30 1 views
0

기본적으로 Vigenère 사각형을 사용하는 암호화기를 만들고 있지만 어떤 이유로 파이썬은 메시지의 첫 문자 만 저장합니다 이 명령을 수행하고 각 문자를 암호화하는 동안 성공적으로 다음 메시지 변수에 추가되지 않습니다파이썬은 문자열을 문자열에 추가하지 않고 올바르게 사용하더라도 오류가 발생하지 않습니다.

message=str() 
keyword="ΒΑΡΕΘΗΚΑ" 
string="ΑΝΚΑΤΑΦΕΡΕΣΝΑ" 

charNum=[913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937] 
charTable={ "Α" : 0, "Β" : 1, "Γ" : 2, "Δ" : 3, "Ε" : 4, "Ζ" : 5, "Η" : 6, "Θ" : 7, "Ι" : 8, "Κ" : 9, "Λ" : 10, "Μ" : 11, "Ν" : 12, "Ξ" : 13, "Ο" : 14, "Π" : 15, "Ρ" : 16, "Σ" : 17, "Τ" : 18, "Υ" : 19, "Φ" : 20, "Χ" : 21, "Ψ" : 22, "Ω" : 23} 


i=0 
for char in string: 
    character=charTable[char] + charTable[keyword[i]] 
    if character > 23: 
     character -= 24 
    message += chr(charNum[character]) 
    print(message) 

    i+=1 
    if i==len(keyword): 
     i=0 

는 출력 : 때마다 메시지를 표시하도록되어

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

그것이 추가 편지.

난 출력이되는

print(message) 

print(chr(charNum[character])) 

에 변경하는 경우 : 각 제대로 암호화 된 편지입니다

Β 
Ν 
Β 
Ε 
Β 
Η 
Ζ 
Ε 
Σ 
Ε 
Κ 
Ρ 
Θ 

. 무슨 일입니까?

+0

나를? – progmatico

+0

코드를 실행할 때'Β', ΒΝ','ΒΝΒ' ...'ΒΝΒΕΒΗΖΕΣΕΚΡΘ'를 얻습니다. – toonarmycaptain

+0

@toonarmycaptain 어떤 버전을 사용하고 있습니까 – Deadman0

답변

0

for 루프에서 인쇄 (메시지)를 타고 마지막에 넣어 : 당신이 바로 의도 보이는

너무
message=str() 
keyword="ΒΑΡΕΘΗΚΑ" 
string="ΑΝΚΑΤΑΦΕΡΕΣΝΑ" 

charNum=[913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937] 
charTable={ "Α" : 0, "Β" : 1, "Γ" : 2, "Δ" : 3, "Ε" : 4, "Ζ" : 5, "Η" : 6, "Θ" : 7, "Ι" : 8, "Κ" : 9, "Λ" : 10, "Μ" : 11, "Ν" : 12, "Ξ" : 13, "Ο" : 14, "Π" : 15, "Ρ" : 16, "Σ" : 17, "Τ" : 18, "Υ" : 19, "Φ" : 20, "Χ" : 21, "Ψ" : 22, "Ω" : 23} 

i=0 
for char in string: 
    character=charTable[char] + charTable[keyword[i]] 
    if character > 23: 
     character -= 24 
    message += chr(charNum[character]) 
    i+=1 
    if i==len(keyword): 
     i=0 
print(message) 
관련 문제