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

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

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)

小贴士:


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

关于文件路径:


有相对路径和绝对路径。


目录:. 表示当前目录,.. 表示父目录(上一级目录)


参考资料:相对路径_百度百科 (baidu.com)


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

相关文章
|
1月前
|
搜索推荐 Python
Leecode 101刷题笔记之第五章:和你一起你轻松刷题(Python)
这篇文章是关于LeetCode第101章的刷题笔记,涵盖了多种排序算法的Python实现和两个中等难度的编程练习题的解法。
21 3
|
1月前
|
存储 开发工具 Python
【Python项目】外星人入侵项目笔记
【Python项目】外星人入侵项目笔记
37 3
|
1月前
|
存储 Python
【免费分享编程笔记】Python学习笔记(二)
【免费分享编程笔记】Python学习笔记(二)
41 0
【免费分享编程笔记】Python学习笔记(二)
|
1月前
|
算法 C++ Python
Leecode 101刷题笔记之第四章:和你一起你轻松刷题(Python)
这篇博客是关于LeetCode上使用Python语言解决二分查找问题的刷题笔记,涵盖了从基础到进阶难度的多个题目及其解法。
15 0
|
1月前
|
算法 C++ Python
Leecode 101刷题笔记之第三章:和你一起你轻松刷题(Python)
本文是关于LeetCode算法题的刷题笔记,主要介绍了使用双指针技术解决的一系列算法问题,包括Two Sum II、Merge Sorted Array、Linked List Cycle II等,并提供了详细的题解和Python代码实现。
13 0
|
1月前
|
算法 C++ 索引
Leecode 101刷题笔记之第二章:和你一起你轻松刷题(Python)
本文是关于LeetCode 101刷题笔记的第二章,主要介绍了使用Python解决贪心算法题目的方法和实例。
10 0
|
1月前
|
并行计算 Python
Python错误笔记(一):CUDA initialization: CUDA unknown error - this may be due to an incorrectly set up env
这篇文章讨论了CUDA初始化时出现的未知错误及其解决方案,包括重启系统和安装nvidia-modprobe。
135 0
|
1月前
|
索引 Python
【免费分享编程笔记】Python学习笔记(一)
【免费分享编程笔记】Python学习笔记(一)
37 0
|
3月前
|
Python
【python】】Python 的 queue 模块使用笔记
【python】】Python 的 queue 模块使用笔记
41 0
|
3月前
|
Python
Python笔记9 类
本文是作者的Python复习笔记第九篇,深入探讨了Python中的类和面向对象编程。文中详细解释了如何创建类、实例化对象、定义和使用类方法,以及类的继承、重写方法和嵌套类的使用。此外,还讨论了类模块的导入和导出,包括处理类之间的依赖关系。通过示例代码,文章展示了类在Python编程中的应用和重要性。
27 0