网络编程与自动化
网络编程与自动化
Mr.Zhang网络编程与自动化
网络编程与自动化介绍
背景:传统网络运维困难
传统的网络运维工作需要网络工程师手动登录网络设备,人工查看和执行配置命令,肉眼筛选配置结果。
经典运维场景 设备升级 现网有数千台网络设备,需要周期性、批量性地对设备进行升级 配置审计 企业年度需要对设备进行配置审计。例如要求所有设备开启sTelnet功能,以太网交换机配置生成树安全功能,需要快速找出不符合要求的设备 配置变更 网络环境安全要求,需要每三个月修改设备账号和密码,需要在千台网络设备上删除原有账号并新建账号
网络自动化
- 通过工具实现网络自动化部署、运行和运维,逐步减少对“人”的依赖
- 业界有很多实现网络自动化的开源工具:例如:Ansible,SaltStack、Puppet、Chef等
基于编程实现的网络自动化
- Python编写的自动化脚本能够很好的执行重复、耗时、有规则的操作
编程语言概述与Python介绍
编程语言
- 一种用于编写计算机程序的语言,用于控制计算机的行为
- 按照语言在执行之前是否需要编译区分,可以将编程语言分为需要编译的编译型语言、不需要编译的解释型语言
高级编程语言 - 编译型语言
编译型语言:在执行前有一个编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果。典型的如C/C++/Go语言,都属于编译型语言
从源码到程序的过程:源码需要由编译器、汇编器编译成机器指令,再通过连接器链接库函数生成机器语言程序。机器语言必须与CPU的指令集匹配,在运行时通过加载器加载到内存,有CPU执行指令
解释型语言:不需要在运行前编译,在运行程序的时候才逐行进行翻译。典型的如Java/Python语言,都属于解释型语言
从源码到程序的过程:解释型语言的源代码由编译器生成字节码,然后再由虚拟机(JVM/PVM)解释执行,虚拟机将不同的CPU指令集差异屏蔽,因此解释型语言的可移植性相对较好
什么是Python
- 一门完全开源的高级编程语言
初识Python代码 - 交互式运行
运行方式:交互式运行/脚本式运行
Python编码规范 - 标识符命名
- Python标识符用于表示常量、变量、函数以及其他对象的名称
- 标识符通常由字母、数字和下划线组成,但不能以数字开头。标识符大小写敏感,不允许重名。如果标识符不符合规范,编译器运行代码时会输出SyntaxError语法错误
Python编码规范 - 代码缩进
- 在Python程序中,代码缩进代表代码块的作用域。如果一个代码块包含两个或更多的语句,则这些语句必须具有相同的缩进量。
- 编写代码时,建议使用4个空格来生成缩进。如果程序代码中使用了错误的缩进,则会在运行中发出IndentationError错误的信息
Python编码规范 - 使用注释
- 注释就是在程序中添加解释说明,能够增强程序的可读性。分为单行注释和多行注释
- 单行注释以# 字符开始直到行尾结束
- 多行注释内容可以包含多行,这些内容包含在一对三引号内
Python编码规范 - 源码文件结构
- 一个完整的Python源码文件一般包含几个组成部分:解释器和编码格式声明、文档字符串、模块导入和运行代码
- 如果会在程序中调用标准库或其他第三方库的类时,需要先使用import或from…import语句导入相关的模块。导入语句始终在文件的顶部。在模块注释或文档字符串(docstring)之后
Python的函数与模块
- 函数是组织好的、可重复使用的一段代码。它能够提高程序的模块化程度和代码利用率,函数使用关键字def定义
- 模块是一个保存好的Python文件。模块可以由函数或者类组成。模块和常规的Python程序之间的唯一区别是用途不同:模块用于被其他程序调用。因此,模块通常没有Main函数
Python的类与方法
- 类是用来描述具有一类相同的属性和方法的集合。类的定义使用关键字是class
- 被实例化的类的函数被称作方法,类定义方法时候必须携带self关键字,它表示类的示例本身。
案例
// TODO
Comment
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果