Python 我的代码的输出在每一行中都是不同的字母表 message=输入(“键入消息”) shift=int(输入(“将数字输入代码”)) message=message.lower() 打印(信息) 对于邮件中的内容: 如果“abcdefghijklmnopqrstuvwxyz”中有a: 编号=作战需求文件(a) 数字+=移位 如果编号>ord(“z”): 数字-=26 elif编号ord(“z”): 数字-=26 elif编号ord(“z”): 数字-=26 elif编号
上面是我在python上将普通文本加密为Caesar cipher的代码,但代码的结果在每一行中显示为不同的字母表Python 我的代码的输出在每一行中都是不同的字母表 message=输入(“键入消息”) shift=int(输入(“将数字输入代码”)) message=message.lower() 打印(信息) 对于邮件中的内容: 如果“abcdefghijklmnopqrstuvwxyz”中有a: 编号=作战需求文件(a) 数字+=移位 如果编号>ord(“z”): 数字-=26 elif编号ord(“z”): 数字-=26 elif编号ord(“z”): 数字-=26 elif编号,python,python-3.x,encryption,Python,Python 3.x,Encryption,上面是我在python上将普通文本加密为Caesar cipher的代码,但代码的结果在每一行中显示为不同的字母表 我是一名新的编码员,因此任何您认为有帮助的帮助或资源都将不胜感激。每次浏览邮件时,您都需要修复缩进并连接编码字母 您正在这里阅读您的信息。如果您使用的是Python2.7,那么应该使用“row\u输入” 如果您使用的是Python 3 message = raw_input("Type message ") 这里也一样,但是你正在将你读到的内容转换为一个整数 message =
我是一名新的编码员,因此任何您认为有帮助的帮助或资源都将不胜感激。每次浏览邮件时,您都需要修复缩进并连接编码字母 您正在这里阅读您的信息。如果您使用的是Python2.7,那么应该使用“row\u输入” 如果您使用的是Python 3
message = raw_input("Type message ")
这里也一样,但是你正在将你读到的内容转换为一个整数
message = input("Type message ")
您正在将字符串转换为小写
shift = int(raw_input("Enter number to code "))
您正在打印您的邮件
message = message.lower()
您在消息中循环,消息中的每个字符都会被测试
- 如果字符是字母表
- 我们正在得到一个字母表
- 我们正在移动字母表的ascii数字,以便稍后从中生成另一个字母。我们应该把数字限制在间隔内
m += chr(number)
print "Coded message:",m
message=输入(“键入消息”)
shift=int(输入(“将数字输入代码”))
message=message.lower()
打印(信息)
m=''
对于邮件中的内容:
如果“abcdefghijklmnopqrstuvwxyz”中有a:
编号=作战需求文件(a)
数字+=移位
如果编号>ord(“z”):
数字-=26
elif编号
您的版本不起作用,因为在message=chr(number)
中,您用一个“加密”字符覆盖输出
但是,即使修复了此问题,代码也存在一些问题:
例如,if/else+-thing最好使用模运算器%
编写
您也不需要硬编码字母表,它出现在string
模块中。最后:python的字符串具有translate
方法,因此您可能需要使用它们:
message = input("Type message ")
shift = int(input("Enter number to code "))
message = message.lower()
print (message)
m=''
for a in message:
if a in "abcdefghijklmnopqrstuvwxyz" :
number = ord(a)
number += shift
if number > ord("z") :
number -= 26
elif number < ord("a") :
number += 26
m += chr(number)
#message = chr(number)
print("The encoded message:",m)
正确的格式和工作,我也为我的CA创建了相同的代码
import string
message =input("Type message ").lower()
shift = int(input("Enter number to code "))
encrypted = message.translate(str.maketrans(string.ascii_lowercase,
string.ascii_lowercase[shift:]+string.ascii_lowercase[:shift]))
print(encrypted)
message=输入(“键入消息”)
shift=int(输入(“将数字输入代码”))
message=message.lower()
打印(信息)
对于邮件中的内容:
如果“abcdefghijklmnopqrstuvwxyz”中有a:
编号=作战需求文件(a)
数字+=移位
如果编号>ord(“z”):
数字-=26
elif编号
你的缩进到处都是。您还将在每个循环中用最后一个加密字符替换消息
,而不是累积加密字符。您能帮我修复代码并将其发布为我是编程新手吗如果您是编程新手,你真的应该学会修复自己的代码。有没有任何关于我应该在哪里修复的提示,因为我真的不明白。很好的解释,但这不应该起作用,因为你必须用至少一个空字符串来表示'm'。您不再使用Python3.x,其中print是一个函数调用,不再是一个语句。+1!谢谢你的解释。我不使用Python 3!我不知道这个敏感的差异。谢谢你的回复,但这是我计算机科学编码的第一年,我还没有学会高级编码的水平,所以我试图保持我的实践工作简单。但是我会注意你所说的,并且会研究它,可能会在我的下一个代码中尝试。谢谢
if a in "abcdefghijklmnopqrstuvwxyz" :
number = ord(a)
number += shift
if number > ord("z") :
number -= 26
elif number < ord("a") :
number += 26
m += chr(number)
print "Coded message:",m
message = input("Type message ")
shift = int(input("Enter number to code "))
message = message.lower()
print (message)
m=''
for a in message:
if a in "abcdefghijklmnopqrstuvwxyz" :
number = ord(a)
number += shift
if number > ord("z") :
number -= 26
elif number < ord("a") :
number += 26
m += chr(number)
#message = chr(number)
print("The encoded message:",m)
import string
message =input("Type message ").lower()
shift = int(input("Enter number to code "))
encrypted = message.translate(str.maketrans(string.ascii_lowercase,
string.ascii_lowercase[shift:]+string.ascii_lowercase[:shift]))
print(encrypted)
message =input("Type message ")
shift = int(input("Enter number to code "))
message = message.lower()
print (message)
for a in message:
if a in "abcdefghijklmnopqrstuvwxyz" :
number = ord(a)
number += shift
if number > ord("z") :
number -= 26
elif number < ord("a") :
number += 26
message = chr(number)
print (message)