WEEK1:介绍、基本语法、流程控制
• python擅长的领域
◇ web开发:Django\pyramid\Tornado\Bottle\Flask\WebPy
◇ 网络编程:Twisted\Requests\Scrapy\Paramiko
◇ 科学运算:SciPy\Pandas\Ipython
◇ GUI图形开发:wxPython\PyQT\Kivy
◇ 运维自动化:OpenStack\SaltStack\Ansible\腾讯蓝鲸
• 运维会了开发后可以干什么
◇ 帮助公司开发各种自动化工具,定制开发各种开源软件
◇ 帮助评估和优化业务技术架构
◇ 开发公司的内部办公系统、CRM、网站等
◇ 做个全栈工程师,全栈就是指什么都能做的样子
• 学习时间(7个月,每周1天)
◇ 前戏阶段--疗程1:语言基础(5-6周)
▪ 数据类型
▪ 流程控制
▪ 常用模块
▪ 函数、迭代器、装饰器
▪ 递归、迭代、反射
▪ 面向对象编程
▪ 购物车程序
▪ ATM信用卡程序开发
▪ 计算器程序开发
▪ 模拟人生游戏开发
◇ 轻撸怡情--疗程2:网络编程(4-5周)
▪ Socket c/s编程、Twisted异步网络架构、网络爬虫开发
▪ 多线程、多进程、协程gevent、select\poll\epoll
▪ 生产者消费者模型
▪ 审计堡垒机系统开发
▪ FTP服务器开发
▪ 批量命令、文件分布工具
▪ RabbitMQ消息队列、SqlAlchemy ORM
▪ 类SaltStack配置管理工具开发
▪ Reids\MemCache\MongoDB缓存数据库
◇ 重则伤身--疗程3:web开发基础(3-4周)
▪ html/CSS基础
▪ Dom编程
▪ 原生JS学习
▪ Jquery/EasyUi/AngulaJS
▪ Ajax异步加载
▪ Highchart画图
▪ Bootstrap
◇ 继续伤身--疗程4:算法&设计模式(2周)
▪ 冒泡、二叉树、哈希、折半等常见算法学习
▪ 工厂模式、单例模式、享元模式、代理模式等常用设计模式学习
◇ 灰飞烟灭--疗程5:PY WEB框架(5周)
▪ MVC架构讲解
▪ 自行开发一个WEB框架
▪ Django\Tornado\Flask\Bottle\WebPy框架学习
▪ Session\中间件\ORM\Cookie\CSRF\FORM...
▪ Restful API框架
▪ 权限管理后台开发
▪ 开发BBS论坛
▪ 开发WEB聊天室
◇ 放弃治疗--疗程6:项目实战篇(8周)
▪ 购物商城开发
▪ 主机管理+任务编排+运维审计堡垒机开发
▪ 分布式类Nagios/Zabbix监控产品开发
▪ CMDB资产管理开发
▪ 基于用户视角的网站访问质量检测分析平台开发
▪ Docker自动化管理平台开发
▪ Openstack二次开发
- Python介绍
- PyPy的目标是执行速度,显著提高Python代码的执行速度
- 最广泛使用的是Cpython
- Linux下声明解释器 #!/usr/bin/env python (最好用这个) 或者 #!/usr/bin/python
- 编码的发展
- ASCII 255个 1bytes表示一个字符
- 1980年,GB2312,7445个字符(6763个汉字+682个符号)
- 1995年,GBK1.0,21886个符号
- 2000年,GB18030,27484个汉字,pc平台必须支持,对嵌入式平台不做要求
- Unicode,万国码,2字节
- utf-8,基于Unicode,但是可变长度,en 1byte,zh 3byte,在python中使用utf-8编发,# -*- coding:utf-8 -*-
- 注释:单行注释 #.....
多行注释 ''' ...... ''' 或者 """ ...... """ - 两则练习
- 输入密码时不显示明文
1 import getpass 2 password=getpass.getpass("password:") 3 #这个在pycharm中运行会出现问题,使用命令行运行脚本
- 猜年龄
#猜3次之后询问是否继续猜年龄,n为结束,否则继续猜 age_of_oldboy=53 count=0 #计数器 while count<3: guess_age=int(input("guest age:")) if guess_age==age_of_oldboy: print("yes,you get it") break elif guess_age>age_of_oldboy: print("think smaller...") else: print("think bigger!") count+=1 if count==3: countine_confirm=input("do you want to keep guessing...") if countine_confirm!="n": count=0 #继续猜,需要将计数器重置为0,然后接着猜下面3次
- 输入密码时不显示明文