【Python 小白到精通 | 课程笔记】第二章:图灵和恩尼格马密码机2(文本分析)

导读:本篇文章讲解 【Python 小白到精通 | 课程笔记】第二章:图灵和恩尼格马密码机2(文本分析),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

Alstudio 课程地址:飞桨AI Studio – 人工智能学习实训社区 (baidu.com)

Python 小白到精通——第二章:图灵和恩尼格马密码机2(文本分析)

今天的任务:破解密钥

原以为是像昨天一样,用已有的密码表,转换一下文本就好了。没想到,今天没有密码表! 当我听到说用统计和对比字母出现的频率的方法来破解密码时,我心里浮现出两个字:”天才!”,怎么别人就可以这么聪明呢?

读取文件

查看文件列表操作

# 请运行这个代码框
# 这个语句大概是你没有见过的,“!”代表这是一句系统命令,“ls”代表列出文件夹中的文件,“/home/aistudio/work”是本环境中,文件夹的路径。
# 你可以查询“linux系统命令基础”得到有关知识

!ls /home/aistudio/work
# 输出
code.txt  example.txt  novel1.txt

读取文件(txt)使用代码

# 请继续运行这个代码框

f = open('/home/aistudio/work/example.txt')
example_text = f.read()
f.close()
# 上面的三行代码就是读取文件的全过程。

print(example_text)

小贴士:

  • 粘贴代码是可以的 (我之前就老想把各种代码背下来,觉着这样才算是自己学到了)。

关于文件路径:

统计code.txt中的26个字母出现频率,代码复现

f = open('/home/aistudio/work/code.txt')
code_text = f.read()
f.close()

counter_code = {} 
amount_letter_code = 0 

'''
请写代码,对每个字母计数
'''
for i in code_text:
    if 'A' <= i <= 'Z':
        if i in counter_code:
            counter_code[i] = counter_code[i] + 1
            amount_letter_code = amount_letter_code + 1
        else:
            counter_code[i] = 1

frequence_code = {}

'''
请写代码,求出每个字母的频率
'''
for i in counter_code:
    frequence_code[i] = counter_code[i] / amount_letter_code

小结

第二章了,感觉Al studio的python课程设置挺好的。视频一会儿就看完了,还有`ipynb`的文档,可以再仔细看一遍巩固一下 。
而且配套的课后作业可以很好地帮助对语法的理解。


今天的内容就到这里啦,感谢阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/114796.html

(0)
Java光头强的头像Java光头强

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!