//取商
**次幂
linux写python也很好用,省的中英文转换
比较运算符的结果是一个布尔型 true false
true通常会被转为数字1
字符串的比较比较的是字符编码,比如utf-8
python里面是and or
不支持&& ||
= 是赋值运算符
python里面区分大小写,不区分单双引号
python里面的None相当于mysql里面的NULL
字符串的切片
列表也是一个容器:可以存储一组值
列表:可以存储一组值
普通的变量只能存储一个值
列表可以存储一组值
每一个值是一个数据,每一个值也叫一个元素
一个列表可以说有三个元素,每一个元素里面就是一个值
列表就叫一个容器,一个容器里面可以放很多元素,而且是不同种类的
比如字符串、数字、bool
java里面把列表叫数组
在python里面叫列表
列表一般情况下是用来存储相同类型的一组数据
列表的元素有下标,字符串也有下标
列表定义
列表元素的访问
往列表中添加元素
一个模块就是一个工具箱
random是随机模块
random.choice(['石头','剪刀','布']) # choice这个方法,可以随机获取列表的一个元素
random.choice('0123456789') # 获取随机数
while 循环和 if判断可以结合起来一起用,
比如打印1-100之间的全部偶数
i = 1
while i <= 100:
if i%2 == 0:
print(i)
i += 1
random.randint
其中的randint是 random + integer 随机整数
for 循环可以迭代列表、字符串、和range(范围)
range(1, 10)包括1,不包括10
len()函数,是统计队列的长度,这个队列包括列表的元素和字符串中的字符
用来获取列表长度
往列表中追加,用append()函数
列表的拼接, 列表1+列表2+列表3
sequence 序列,队列
for循环里面也是有break continue else
continue会循环结束
break 不会循环结束
只有把所有元素都执行一遍,才会执行else
切片的时候,如果是从0开始,那么0可以不写
for 循环往往结合着range
for 循环比while循环使用的频率要高,range有很大的功劳
range也支持步长
for i in 可迭代对象:
try
...
except ValueError
f 是format,允许在字符串中嵌入表达式
字符串操作函数和字符串操作方法
字符串操作在任何语言下,都是使用频率比较高的操作
函数
函数在程序里面就表示一个功能
len()/int()/float()/type()...
python提供的
调用以上的函数
系统函数/内建函数
自定义函数
解决代码重复的问题
通过函数名称加上圆括号()调用函数
参数: 往函数中所传递的数据
形参和实参
把实参给到形参,这个过程就叫传参
位置参数: 按照参数顺序传递
关键字参数: 按照参数名称传递
关键字传参的话不受顺序影响
运维用的大部分命令行,差不多都是关键字传参,像k8s的etcd数据库的备份与恢复
返回值,函数调用后返回的结果,如果没有返回值,默认就是None
那么像运维过程中,代码执行后的返回值,一般就设置为,执行ok的话,就是返回值是0,如果有报错的话,返回值就是1。这里说错了,是退出码,不是返回值
返回什么值,函数里面就保存什么值
return
return 有两个结果,一个是返回结果,一个是终止函数
如果return单写,就是结束函数的意思,并不是为了返回结果
return返回值的目的,是为了再次使用它,如果不用return,而用print,就不能再使用了
有了参数以后,可以强化函数的功能
模块就是一个工具箱
choice就是random模块内部提供的一个函数
random,string模块,是python的内嵌模块
是python解释器的库里面的内嵌模块
可以直接导入进来使用的模块
模块就是一个python文件
模块里面有很多变量,已经定义好的,可以直接使用
导入一个模块,就是导入了一个工具箱
这个模块里面有很多的函数和变量
模块:就是一个python文件
导入模块后,可以使用模块中提供的函数或者变量
导入模块的目的,就是使用模块中的函数或者变量
python里面,一共有三种模块
ansible里面用了各种各样模块,也跟这个差不多是一个意思,因为ansible也是python写的
pip3 install xxx # 安装第三方模块
from 模块 import 函数和变量
strftime string format time 格式化 把时间格式化成字符串(年月日时分秒)
strptime string parse time 语法分析 把字符串转成结构化时间,一堆英文
结构化时间 一堆英文 struc_time 9个元素的元组
字符串 年月日时分秒 时间的字符串表示形式 用于显示
时间戳 十几亿 计算机元年到现在的秒数 用于存储、传输
按照长度读取文件
按照行读取文件
读取文件,如果文件大,用while循环,因为不占用内存
如果文件不大,可以用for循环,因为for循环是先把这个文件的数据拉到内存中的
读取文件的流程
1. 打开文件
2. 用循环去读
3. 关闭文件
时间的比较,可以用格式化时间的格式比较,也可以用时间戳的格式比较
encoding 使编码
enable 使能够
文件操作:打开文件,读、写,循环读,然后写,完成文件拷贝
容器
什么是容器
是存数据的
变量也可以存数据,所以变量也是一种容器
变量只能存储一个数据
如果要存储一组数据,要用列表
列表可以作为一个数据哦让你去,存放一组数据
.append('元素') 是往列表的最后添加
.insert(2,'小鹏') 是往指定下标位置插入
.extend(['', '']) 是扩展多个元素
.remove(‘元素’) 删除
.pop(下标号) 删除
.pop() 默认删除末尾元素
.clear() 清空列表
del 列表名[下标号] 删除元素
len(列表名) 获取列表长度
.count('元素') 统计指定元素的数量
列表是使用python的时候,操作频率最高的一种数据
元祖是和列表很相似的一种容器
定义元祖用()圆括号
定义列表用[] 方括号
定义字典用{} 大括号
通过类创建对象
通过class 创建 object
类的对象的属性
每个对象中,都有自己的独立的属性
用self解决,不同对象的调用各自属性的问题
属性和方法
方法是函数
属性是变量
类有一个,对象可以有多个
不同对象的属性,可能各不相同,就是各个对象是独立的个体,每个对象有自己的样子
类中定义的方法和属性
方法就是函数
属性就是变量
面向对象编程中,类和对象的关系