## 前言:
### 1、运维/网络为什么要学习编程?
(1)运维/网络中所有已学的命令其实都是已经编制好的程序,创造命令就是编写程序;
(2)在云计算领域中,繁琐的命令配置已经不能满足日常需求,深入发展是需要贴近业务/研发的,因此就要能够创造命令/编写程序/开发;
(3)网络安全领域中,可以深入理解渗透、攻防等细节,Kali-Linux ,SDN(命令对应网络)夯实技术;
(4)对于校招而言,大型互联网公司(一般指软件方面——阿里腾讯百度字节跳动)笔试题必考编程题{厂商提供设备服务(如深信服,华为,华3),奇安信做大数据的}。
### 2、为什么要选择学习python?
(1)Shell是Linux自带的编程语言,语法晦涩难懂,比C更难理解,额外扩展功能少(基于Linux运行),但效率比较高;
(2)C/C++/JAVA入门门槛比较高,属于纯开发语言,不太适合运维/网络需求(快速,简单,明了);
(3)Python属于解释型语言,俗称脚本,简单易学,功能强大,综合应用能力很强,开源+社区人员多(更新学习等资源广阔)。
### 3、python应用于:
客户端方向,后台(后端/服务端-处理客户端发来的请求)、爬虫、嵌入式开发、自动化运维、网络安全方向、人工智能(主算法)。
### 4、本次课程目标(用时7天)
(1)掌握常用知识
(2)做题不是目的,学编程代码是学会告诉计算机要干什么(怎么告诉,暗号是什么,逻辑语序问题)
(3)学习编程思维去解决一些实际的计算问题
(4)针对校招,LeetCode:https://leetcode-cn.com/+牛客网刷题练习
### 5、推荐书籍及使用建议:
(1)《python语言程序设计》——主要教材
(2)《python基础教程 第三版》字典
(3)《python学习手册 第四版》字典
### 6、Python学习环境搭建
Linux下Redhat/centOS自带python2.X,本次课程需要用python3.X,如果想在Linux下学习需要更新python的版本;Windows学习的话在官网下载安装python的包。
安装步骤(一般可以百度到)
### 7、python的两种运行方式:
(1)命令行运行方式——cmd命令框输入python然后输入命令:快速方便,不易保存;
(2)脚本文件运行方式——:容易保存代码,操作麻烦;
8、Python源代码文件编辑软件有:VIM\VSCode/PyCharm
笔记工具下载:MarkDownPad格式编辑软件,Tyora:https://www.typora.io/
### 9、学习建议
(1)Python概念不好理解,多看多想;
(2)多敲!多敲!多敲!量变产生质变!
# 一、语法基础
## 1、软件定义
是指一系列按照特定顺序组成的计算机数据与指令的集合。
(1)数据:计算机所能够识别的一些数据。硬盘(永久存储)中有:avi,doc,txt,py |内存中有:常量,变量,函数,对象,类;
(2)指令:操作这些数据进行相关计算的步骤。
(3)软件执行流程:准备数据(初始化、加载数据到内存)——对数据进行操作。
由python写出的代码叫源代码,源代码不能够直接被计算机识别,将源代码编译成计算机所能够识别的机器码,然后计算机执行机器码即可。
## 2、软件的两种操作方式:
(1)图形化界面操作方式——简单明了,方便操作。
(1)命令行操作方式——不易保存。
## 3、高级编程语言分为两类
(1)静态编译型语言:C\C++\Java
编译:必须将源代码完全编译成机器码文件,再去执行机器码文件,运行程序。
静态:变量必须明确数据类型的定义。
(2)动态解释型语言:Python\JavaScript\Mathlab\Ruby\Go\PHP
动态:变量没有明确的数据类型定义。
解释:没有必要将代码完全编译成机器码,读取一句源码编译一句,计算机运行一句指令。
## 1.1基本数据
### 1、整数int ——通常也被称为整型,是零、正数和负数,不带小数点。
(1)表示数字的时候,我们也可以使用二进制、八进制、十进制、十六进制,打印出来的都是十进制。
>>> print(0b1001) #二进制
9
>>> print(0o1234) #八进制
668
>>> print(0x9c1a) #十六进制
39962
#打印出来一律十进制
>>> print(0x9w2y)
File "<stdin>", line 1
print(0x9w2y)
^
SyntaxError: invalid syntax #语法错误ÿ