저는 시저 - 사이퍼 (cesher-cypher) 함수를 만들 예정입니다. 내가 내장 된 ord() 및 chr() 함수를 사용하여 내 과정에서 사용하는 교과서에서이 작업을 수행하는 것이 좋습니다. 그게 최선의 방법 일 수도 있고 그렇지 않을 수도 있습니다. (내가 봤던 것이 아닙니다.) 그러나 그들이 당신이하기를 원하는 것입니다.Caesar-cypher : ord() 함수는 문자열을 받거나 정수를 받았다고 말합니다.
내 문제는 for 루프에서 ordhol() 함수에 placeholder 변수를 보낼 때 길이가 1 인 문자열을 예상했지만 대신 정수를 받는다는 오류가 발생합니다. 이 바로 앞에 변수 c가 'i'값을 가지고 있는지 확인하기 위해 print 함수를 넣었지만 관계없이 실패한 것으로 보입니다. 여기
제가 생성 함수이다def rotate_word(word, num):
count = 0
newWord = ''
while count < len(word):
for c in word:
print(c)
newWord += chr(((ord(c)) - (ord(num) -1)))
count += 1
print(newWord)
그리고이 I 나타나는 오류이다
rotate_word('ibm', -1)
i
Traceback (most recent call last):
File "<pyshell#95>", line 1, in <module>
rotate_word('ibm', -1)
File "<pyshell#94>", line 7, in rotate_word
newWord += chr(((ord(c)) - (ord(num) -1)))
TypeError: ord() expected string of length 1, but int found
이 오류가 -1 이상 또한 다른 정수 발생. 공정하기 위해서, 코드 자체가 내가 원하는 것을하지 않는다면 완전히 확신 할 수 없다. (나는이 부분을 이해하려고 노력했지만,이 부분이 없다면 나머지 부분을 보장하는 것이 중요하지 않다.)
'ord (num)', 그냥'num'을 사용하지 마십시오 :) – GAVD