第一次作业

  1. 安装Python3(推荐用Anaconda方式安装)。将字符串”Life is short I use Python”转换成数组,然后再将数组拼接成字符串,最后统计出每个字母的出现次数(不区分大小写)。
  2. 获取操作系统、内核、网卡等信息,以及磁盘、CPU、内存使用情况并写在文本文件里。
  3. 使用递归和迭代两种方式实现生成斐波那契数列,计算出第100个数字并比较差异。(可选:使用yield关键字完成任务)
  4. 判断密码强弱等级程序,要求输入密码,输出密码的等级(建议使用正则表达式和非正则表达式两种写法,并比较性能差异):
    1. very weak —— 纯字母 or 数字 or 特殊字符(长度为4~8)
    2. weak —— 字母+数字 or 特殊字符+数字 or 字母+特殊字符 (字母并非大小写混合,长度为4~8)
    3. medium —— 大小写字母混合+数字 or 大小写字母混合+特殊字符(长度为4~8)
    4. strong —— 大小写字母混合+数字+特殊字符(长度为4~8)
    5. very strong —— 大小写字母混合+数字+特殊字符(长度为8~32)
    6. invalid —— 匹配不了以上规则的则为无效密码
  5. 使用Python完成以下任务(要求一个脚本文件完成a,b任务,另一个脚本文件完成c,d任务,并将变量参数化):
    1. 创建文件夹(文件夹名称参数化,运行的时候指定,没指定的时候设置默认名称)
    2. 在此目录下生成文件,文件中有N行的长度为L的随机字符串(建议L小于5,N为10e5)
    3. 选择一个hash函数,将这些字符串散列到10个文件里(hash函数使得相同的字符串在同一个文件里)
    4. 构建大小为10的最小堆,来维护字符串重复次数最多的字符串,依次分析10个文件,获取出现最多的字符串及其次数。
  6. 学习Python socket编程,创建tcp客户端,获取baidu.com首页内容并保存在本地文件里。

    第二次作业

  7. 学习Django框架,Sqlite3数据库,Restful API等概念,完成一个简易的资产管理网站,两个页面,能完成两种资产列表的展示即可。数据库设计为两张表,一张服务器资产表(主键(与资产ID 一一对应),供应商,品牌,型号,用途,IP),一张软件资产表(主键,软件类型,软件来源,软件liscense等)

  8. (可选)https://github.com/3b1b/manim是一个非常有意思的Python库,用来制作描述数学(代数、几何可视化)的动画引擎。可以阅读文档和示例,尝试完成自己喜欢的一个数学公式并完成其动画。

    第三次作业(未确定)

  9. Ansible实战

  10. CMDB实战

  11. 在上一次资产管理网站的基础上,丰富数据库的设计,完成删查增改的接口和页面功能。

Python运维学习路线

其实可以一句话概况:
Python编程基础 -> Web开发基础 -> 自动化运维(Ansible)和资产管理(CMDB)