python凯撒密码b,python中的凯撒密码

The error which i am getting is

Traceback (most recent call last):

File "imp.py", line 52, in

mode = getMode()

File "imp.py", line 8, in getMode

mode = input().lower()

File "", line 1, in

NameError: name 'encrypt' is not defined

Below is the code.

# Caesar Cipher

MAX_KEY_SIZE = 26

def getMode():

while True:

print('Do you wish to encrypt or decrypt a message?')

mode = input().lower()

if mode in 'encrypt e decrypt d'.split():

return mode

else:

print('Enter either "encrypt" or "e" or "decrypt" or "d".')

def getMessage():

print('Enter your message:')

return input()

def getKey():

key = 0

while True:

print('Enter the key number (1-%s)' % (MAX_KEY_SIZE))

key = int(input())

if (key >= 1 and key <= MAX_KEY_SIZE):

return key

def getTranslatedMessage(mode, message, key):

if mode[0] == 'd':

key = -key

translated = ''

for symbol in message:

if symbol.isalpha():

num = ord(symbol)

num += key

if symbol.isupper():

if num > ord('Z'):

num -= 26

elif num < ord('A'):

num += 26

elif symbol.islower():

if num > ord('z'):

num -= 26

elif num < ord('a'):

num += 26

translated += chr(num)

else:

translated += symbol

return translated

mode = getMode()

message = getMessage()

key = getKey()

print('Your translated text is:')

print(getTranslatedMessage(mode, message, key))

解决方案

The problem is here:

print('Do you wish to encrypt or decrypt a message?')

mode = input().lower()

In Python 2.x input use raw_input() instead of input().

Python 2.x:

Read a string from standard input: raw_input()

Read a string from standard input and then evaluate it: input().

Python 3.x:

Read a string from standard input: input()

Read a string from standard input and then evaluate it: eval(input()).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值