Python毎日練習-シーザー暗号化
4137 ワード
python練習-シーザー暗号化
【問題の説明】シーザーパスワードは古代ローマのシーザー大帝が重要な軍情を保護するための暗号化システムである.この暗号システムは今から見れば低級だが、古代ローマ時代には重要な役割を果たした.シーザーパスワードの根本的な考え方は、アルファベットの配列順に明文の各アルファベットをその後のn番目のアルファベットに変換することである.ここで、n(n=1~25)を鍵と呼ぶ.プログラムを作成して、異なる入力文字列と移動ビット数に対して、シーザー暗号化された文字列を出力してください.
【入力形式】1番目の入力パラメータは移動ビット数nであり、中間間隔が1つのスペースの後、2番目の入力パラメータは暗号化される原文文字列である
【出力形式】暗号化された暗号文字列.文字のみを暗号化し、文字の大文字と小文字を変更しないことに注意してください.暗号化される文字列は、例えば「hello world」の形式で存在する可能性があり、最初のパラメータとともにinputで入力すると、split()を呼び出す際に、暗号化される文字列も一括して分割されることに注意してください.split()メソッドには、パラメータ指定で分割される項目がいくつかあります.推奨する場合は、説明ドキュメントをインターネットで検索してください.
【サンプル入力】5 NUDT
【サンプル出力】SZIY
【例の説明】入力パラメータの1番目のパラメータ’5’は、移動ビット数n=5を表し、2番目の入力パラメータの各文字を5ビット後方に移動して出力文字列を得る.
コードは次のとおりです.
【問題の説明】シーザーパスワードは古代ローマのシーザー大帝が重要な軍情を保護するための暗号化システムである.この暗号システムは今から見れば低級だが、古代ローマ時代には重要な役割を果たした.シーザーパスワードの根本的な考え方は、アルファベットの配列順に明文の各アルファベットをその後のn番目のアルファベットに変換することである.ここで、n(n=1~25)を鍵と呼ぶ.プログラムを作成して、異なる入力文字列と移動ビット数に対して、シーザー暗号化された文字列を出力してください.
【入力形式】1番目の入力パラメータは移動ビット数nであり、中間間隔が1つのスペースの後、2番目の入力パラメータは暗号化される原文文字列である
【出力形式】暗号化された暗号文字列.文字のみを暗号化し、文字の大文字と小文字を変更しないことに注意してください.暗号化される文字列は、例えば「hello world」の形式で存在する可能性があり、最初のパラメータとともにinputで入力すると、split()を呼び出す際に、暗号化される文字列も一括して分割されることに注意してください.split()メソッドには、パラメータ指定で分割される項目がいくつかあります.推奨する場合は、説明ドキュメントをインターネットで検索してください.
【サンプル入力】5 NUDT
【サンプル出力】SZIY
【例の説明】入力パラメータの1番目のパラメータ’5’は、移動ビット数n=5を表し、2番目の入力パラメータの各文字を5ビット後方に移動して出力文字列を得る.
コードは次のとおりです.
num,mimas = input().split(' ',1)
mima_last = []
for mima in mimas:
num_1 = ord(mima) + int(num)
if 90<num_1<97 or 122<num_1:
num_1=num_1-26
if 97<=num_1<=122 or 65<=num_1<=90 :
mima_last.append(chr(num_1))
if num_1 == 32 + int(num):
mima_last.append(chr(num_1-int(num)))
mima_last_1 = "".join(mima_last)
print(mima_last_1)
, 。