以前の私たちは、「腐敗」量によって単一の文字を受信して、回転させる機能を作成しました:機能 - シーザー暗号
def rotate(letter, rot):
shift = 97 if letter.islower() else 65
return chr((ord(letter) + rot - shift) % 26 + shift)
letter = input('Enter a letter: ')
rot = int(input('Enter a number: '))
print(rotate(letter, rot))
は今、私はすべての文字を回転させる機能を作成する必要があります文字列の "腐敗"量(右)。だから、例えば
(Hello World, 1)
の入力と
encrypt(text, rot)
は返します:
Ifmmp Xpsme
そして、これは私がこれまで持っているものです。
def rotate(letter, rot):
shift = 97 if letter.islower() else 65
return chr((ord(letter) + rot - shift) % 26 + shift)
def encrypt(text, rot):
encrypted = []
for letter in text:
#use previous rotate function to rotate characters
encrypted.append(rotate(letter,rot))
return ''.join(encrypted)
text = input("Enter some text")
rot = int(input("Enter a number"))
print(encrypt(text,rot))
しかし、私を」 20行目にParseErrorを取得する:print(encrypt(text,rot))
。私は2つの関数を正しく一緒に使用しているかどうかわかりません - 回転関数は暗号化関数の内部にあるべきですか?なぜ私がParseErrorを取得している別の理由はありますか?私が正しい道にいるかどうか私に教えてください/できれば助けてください。ありがとうございました。
EDIT:インデントprint(encrypt(text,rot))
は「ParseErrorです:ライン21上の不正な入力」を処分したが、それはまた私に「ParseErrorです:ライン17上の不正な入力」:与えた私は前後にインデントを移動しようとしたreturn ''.join(encrypted):
を。
EDIT 2:ソリューションは、このようになります(後の固定インデント):
def rotate(letter, rot):
shift = 97 if letter.islower() else 65
return chr((ord(letter) + rot - shift) % 26 + shift)
#letter = input('Enter a letter: ')
#rot = int(input('Enter a number: '))
#print(rotate(letter, rot))
def encrypt(text, rot):
encrypted = []
for letter in text:
#use previous rotate function to rotate characters
encrypted.append(rotate(letter,rot))
return ''.join(encrypted)
text = input("Enter some text")
rot = int(input("Enter a number"))
print(encrypt(text,rot))
EDIT 3:あなたが回転中にスペースや特殊文字を維持したい場合は、あなたが回転するように指定する必要があります文字がアルファベットである場合、この関数は次のように実行します:
def rotate(letter, rot):
shift = 97 if letter.islower() else 65
return chr((ord(letter) + rot - shift) % 26 + shift)
def encrypt(text, rot):
encrypted = []
for letter in text:
#if it's a space, keep it a space
#if it's a special character, keep it a special character
if letter.isalpha():
#use previous rotate function to rotate characters
encrypted.append(rotate(letter,rot))
else:
encrypted.append(letter)
return ''.join(encrypted)
text = input("Enter some text")
rot = int(input("Enter a number"))
print(encrypt(text,rot))
タブとスペースをミックスしていますか? –
IDEの上にあるようにタブで区切られています。タブを使ってすべてのスペースを作成しました。 – HappyHands31