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

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`的文档,可以再仔细看一遍巩固一下 。
而且配套的课后作业可以很好地帮助对语法的理解。


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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>