基本python加密卡住了
我被困在这个问题上: 编写一个加密文件的程序。您应该从终端读取文件名,然后读取该文件的内容 然后按如下方式进行加密:基本python加密卡住了,python,text,python-2.x,Python,Text,Python 2.x,我被困在这个问题上: 编写一个加密文件的程序。您应该从终端读取文件名,然后读取该文件的内容 然后按如下方式进行加密:a转换为z,b转换为y,依此类推。对于大写字符也是如此。非字母字符保持原样 这就是我到目前为止所做的: fname = raw_input("Enter name of file you want to encrypt: ") fhand = open(fname + ".txt", "r") a = fhand.read() for i in range(0, len(a)):
a
转换为z
,b
转换为y
,依此类推。对于大写字符也是如此。非字母字符保持原样
这就是我到目前为止所做的:
fname = raw_input("Enter name of file you want to encrypt: ")
fhand = open(fname + ".txt", "r")
a = fhand.read()
for i in range(0, len(a)):
if a[i].isalpha():
a[i] = chr(ord(a[i]) - 26)
不是完整的答案,只是一些提示,帮助您自己编写最终代码
- 阅读文件内容-除非您有充分的理由不这样做(课程还在后面,旧的Python版本,…),否则您应该使用
和
构造,以确保正确关闭文件,无论发生什么情况:
with open(fname+".txt","r") as fhand: a = fhand.read() ...
- “a”被转换为“z”、“b”到“y”,依此类推:您应该控制字符在
和'a'
之间,并且仅当它是:'z'
if c >= 'a' and c <='z': c = 'z' + 'a' - c # 'z' - new_c = c-'a' : a=>z, ...
(*)或者,您可以转换字符列表中的初始字符串,替换列表中的字符,然后
加入列表以重新生成字符串。左为新练习:-)@Serge Ballesta写了一个处理文件的好方法
至于转换,Python有自己的酷方法。下面是一个例子:
来自字符串导入maketrans,ascii_小写
cypher=maketrans(ascii_小写,ascii_小写[::-1])
打印“abcde”。翻译(密码)
这将输出zyxwv
string.maketrans
采用相同长度的字符串参数,以便为稍后进行的转换生成密码。在上面的例子中,我把所有的小写ascii字符作为第一个参数,相反的作为第二个参数
在Python3中,你需要使用字节。maketrans
请为你的问题选择一个更好的标题。“c”是“x”,d是“w”是v有几个问题(尝试变异字符串是其中之一,另一个问题是你的算法无效:你不能通过简单地减去26得到a->z,b->y等)。你到底在挣扎什么?'a'
result = ''
...
result = result + ...