-
-
-
-
Python自动化
python概述
计算机语言
- 语言:交流的工具,沟通的媒介
- 计算语言:人和计算机沟通的工具,人和计算机沟通的翻译官
- Python是计算机语言的一种
Python编程语言
- 代码:人类的语言,通过代码命令计算机,和计算机交流
Python解释器:就是担任翻译官的角色
流程:
- 写代码:程序员
- 执行:由翻译官(Python解释器)把命令(Code)翻译给机器,同时把机器语言翻译给我们
- Python读音问题:分为美式英语和英式英语
Python简史
- 1989年,Cuido van Rossum
- 2008年:Python 3.0 诞生
- 2014年:宣布 2.7支持到2020年
- 2017年:AI崛起,Python崛起
Python特点
- 速度问题,开发速度快,但是运行速度要比Java和C语言慢
- Python和其他语言的选择问题
Python运用领域
- 全能语言:AI、数据分析、WEB、人工智能、脚本、运维、自动化测试
代码的作用
1、给人看
2、给机器看
3、注释是纯给人看的
print("hello world") #打印出hello world 出来
"""
块级注释
可以多行注释
"""
注释
- 机器不去执行注释内容
- 注释一般用自然语言书写
注释的写法
- 行注释: 以#号开头,可以单独执行,也可以在某行代码后面
- 块注释:好几行代码或者内容,以单个连续的单引号或者双引号开始和结束,中间任何内容全部被编译器都忽略
变量
- 程序 = 数据结构+算法
- 变量就是可以重复只用的一个量,或者一个代号
变量命名的规则
- 变量命名可以包含数字,大小写字母,下划线或者更多,但是我们不推荐除了前三种内容之外的符号
数字开头的不可以
- 4man, 5for是不可以的
一般在Python中,以下划线开头的内容具有特殊特殊含义,不建议使用
- 比如 _age, _name, 理论是可以的,但是强烈不推荐,包括但不限于一个下划线开头和两个连续下划线开头的
大小写代表的不一样,俗称大小写不敏感
- ForMan 跟 forMan不是一个变量名称
推荐:
- 使用具有固定含义的英文单词活着缩写, srv = server skt = socket, 一般以posix命名规则为主
驼峰命名规则
名称一单词自动连接,且每个单词首字母大写
大驼峰,每个单词第一个字母均大写
- 在Python中给类命名
- MyFirstLove, IntOne
小驼峰,类似大驼峰,但是第一个字母小写
- 在Python中一般给普通变量或者函数命名
- myFirstLove , intOne
posix写法
- 多个单词用下划线链接
- 单词全部小写
- my_first_love, int_one
- 一般推荐使用这种写法
保留字和关键字
- 变量命名必须避开,不能跟关键字和保留字重复
- class, def, break, for
查看关键字的方法
import keyword # 引入关键字模块
# 打印出系统全部关键字
print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
变量申明
- 单个变量赋值
var_name = var_value
= 是赋值操作符
- 多个变量赋值
- var1 = var2 = var3 = var_value
- var1, var2, var3 = v1, v2, v3
定义多个变量
age = 18
print(age)
print(18)
18
18
# 给age1, age2, age3 放入同样一个内容或者值
age1 = age2 = age3 = 18
print(age1)
print(age2)
print(age3)
18
18
18
# 给一行内多个变量赋值
age4, age5, age6 = 12, 16, 20
print(age4)
print(age5)
print(age6)
12
16
20
变量类型
- 严格意义上讲,Python只有一个类型
- 标准数据一共六种
- 数字类型Number
- 字符串类型str
- 列表list
- 元祖tuple
- 字典Dictionary
- 集合set
Number 数字类型
- 数字类型没有大小长度限制,限制的是计算机的内存大小
整数
- 没有小数部分,表示个数的数字
- 自然数,0,负自然数
- 整数分进制
- 二进制
- 逢二进一
- 计算机常用
- 是目前计算机唯一能直接理解的数字
- 表示为0b开头的0,1代码
- 例如 0b01101,0b10001
- 八进制
- 逢八进一
- 不常用
- 以0o开头,包含0-7的数字
- 十六进制
- 逢十六进一
- 其实是每四位二进制表示一位十六进制数
- 包含 0-9,a-f
- 数字以上以0x开头表示
- 十进制
- 18, 8 ,178
十进制
age = 18
print(age)
二进制
age = 0b10010
print(age)
八进制
age = 0o22
print(age)
十六进制ff表示二进制的1111 1111
age = 0xff
age = 0x12
18
18
浮点数
- 小数
- 计算机里面表示浮点数可以有条件省略
- 3.1415
- 3.0 3. 0.5 .5
- 科学计数法
- 定义和数学定义
- 写法是用e/E后面跟整数,表示10的指数
- 176.34 = 1.7634e2
- 0.876 = 8.76e-1
height = 156.34
print(height)
shili = 0.2
print(0.2)
shili = .5
print(shili)
负数complex
- 定义同数学一致
- 一个由实部和虚部构成的数字
- 虚部用 j/J 表示
- 5+3j 实部和虚部
- 3j 直接由虚部构成
布尔值
- 表示真或者假
- True/False 首字母一定大写,假用0表示,真用1表示
- 布尔值可以直接和数字操作
布尔值操作
age = 18 + True
print(age)
19
字符串
- 用来表示遗传文字信息
- 如何表示
- 单引号、双引号
love = "I love woke"
print(love)
love = '我爱工作'
print(love)
# 单双引号可以交错使用的例子
# <a style = "color:red"> 哈哈哈<a></a>
# 用单引号表示上面的字符串
html = '<a style = "color:red"> 哈哈哈<a></a>'
print(html)
# 多行字符串
htmls = '''
我爱工作
I love woke
html = '<a style = "color:red"> 哈哈哈<a></a>'
'''
print(htmls)
字符串
- 转移字符
- 格式化
- 内建函数(后延)
转义字符
- 用一个特殊的方法表示出一系列不方便书写内容,比如回车键,换行键,退格键
- 借助反斜杠字符,一旦字符串中出现反斜杠,则反斜杠后面一个或者多个字符表示已经不是原来的意思了,进行了转义
- 在字符串中,一旦出现反斜杠就要加倍小心了,可能有转义符出现
在不同系统对换行符操作有不同的表示
- Windows: n
- Linux : rn
如果想表示出Let's go
1、可以使用嵌套引号,及外层使用双引号
2、转义字符
s = "Let's go"
print(s)
# \' = '
s = 'Let\'s go'
print(s)
# \\ = \
ss = "c:\\user"
print(ss)
r 回车
n 换行
字符串的格式化
- 把字符串按照一定格式打印或者填充
格式化字符串由两种方法
- 利用百分号(%)
- 利用format函数
s = "xxx 您好,我们蒲公英课堂开课啦~~"
利用百分号格式化
- 在字符串中,利用%好表示一个特殊的含义,表示对字符串进行格式化
- %s 可以占位任何参数,但是会强制转换为字符串
- %d 只能占位整数
- %r 只能占位浮点
%a 可以占位字符串,但是不支持中文
print("%s 哈哈哈 %d 呵呵呵 %r 嘿嘿嘿 %a 啊啊啊" % (param1, param2, param3, param4))
- = "我是%s"
print(s)我是%s
print("我是%s" %"大懒")
我是大懒
- = "I am %d years old"
print(a)
print(a%18)I am 18 years old
= "I am %s,i am %d years old"
print(s1)
print(s1%"dalan") # 按照顺序替换,此处这样替换会报错
# 如果字符换中有占位符,要么全部替换,或者一个也不要
print(s1%("dalan", 18))I am dalan,i am 18 years old
使用format函数进行格式化字符串
- 直接用format函数进行格式化
- 推荐使用这种方法
- 在使用上,以{}和:代替%,后面用format带参数完成
s = "I am {} years old".format(18)
print(s)
- 从0开始,增加
s = "我爱{0},我今年{1}岁,{0}使我快乐,我是一个快乐的{2}".format("学习", 18, "程序员")
print(s)
我爱工作,我今年18岁,工作使我快乐
None 空
- 表示什么都没有
- 如果函数没有返回值,可以返回 None
- 用来占位
- 用来解除变量的绑定
表达式
- 用一个或者几个数字或者变量和运算符组成的一段代码
- 通常会返回一个结果
运算符
- 由一个以上的值经过变化得到新值的过程就叫运算
- 用于运算的符号就叫做运算符
运算符分类
- 算术运算符
- 比较运算符或者关系运算符
- 赋值运算符
- 逻辑运算符
- 位运算
- 成员运算符
- 身份运算符
算术运算符
- 进行算数运算的符号
- Python运算符里面没有自增自减
# +, -和正常运算符一模一样
a = 9 + 3 -2
print(a)
10
# 乘号运算符用(*)代替
a = 9 * 4
print(a)
36
# 除号用(/)代替
# 在Python2.x 和Python3.x 中不一样,除号(/)结果可能不一致,此处以Python3.x 为准
a = 9 / 4
print(a)
2.25
# % 取余运算
# 两个数字相除应该有商数有余数
# % 只会得到余数
a = 9 % 4
print(a)
1
# //取整,表示取商运算,也叫地板除
a = 9 // 4
print(a)
2
# ** 表示幂运算
# 次方
a = 9 ** 4
print(a)
6561
## 比较运算符
- 对两个变量或者值进行比较的运算符
- 比较的结果是布尔值,即 True/False
# == 两个等于号
a = 3 ** 4
# 下面语句执行顺序是
# 1,计算 a == 80
# 2,把结果赋值给b
b = a == 80
print(b)
False
# != 不等于
print(9 != 8)
True
# > 大于
# < 小于
# >= 大于等于
# <= 小于等于
## 赋值运算符
# = 赋值
a = 4
s = c = d = 10
# += 是缩写
a = 10
a += 7 # a = a + 7 的缩写
print(a)
# 所有的数学运算符都有缩写形式
# -= , *= , /= , //= , %= , **= 都是缩写形式
逻辑运算符
对布尔值进行计算的符号
- and 逻辑与
- or 逻辑与
- not 逻辑非
- 在Python中逻辑运算符没有异或运算
运算规则
- and 看做乘法 or 看做加法
- True 看做 1 False 看做 0
- 则逻辑运算就能转换成整数数学运算
- 最后结果如果是 0 则为 False 否则为 True
逻辑运算符的短路问题
- 逻辑运算式,按照运算顺序计算,一旦能够确定整个式子未来的值,则不再进行计算,直接返回
- 逻辑运算的短路实例
- 下面的逻辑表达式,a的值一定是True,则运行到or的时候,整个表达式不在向下计算
= True or xxxxxxxxx
- 因为True已经是1,+任何都是大于0,逻辑运算不存在负数,所以后面的值计算机不会在关注,返回的值肯定是True了
- 注意在xxxxxxxx的表达式在括弧内True的值为0,计算后的值肯定是0,所以不需要再往后继续了
- = False and (xxxxxxxx)
# 下面表达式,如果xxx中包含赋值表达式,则结果很难预料
# 代码示例(伪代码) 伪代码:不能运行的代码,只是为了表达对应的意思
b = 0
a = a or (b = 9) and 6
# 假定上面的表达式如果没有语法错误
# 则b最终的值应该是0 而不是9
print(a)
print(b)
# 逻辑运算符案例
a = True
b = False
c = True
# 以下式子等价于 d = 1 * 0 + 1
d = a and b or c
print(d)
d = a or b and a
print(d)
成员运算符
用来检测某一个变量是否是另外一个变量的成员
- in
- not in
# 成员案例
l = [1, 2, 3, 4, 5]
a = 7
b = a in l
print(b)
a = 4
print(a in l)
print(a not in l)
身份运算符
is 用来检测两个变量是否是同一个变量,用来比较两个变量是否指向同一个内存地址
- 语法是 var1 is var2
- is not 两个变量不是同一个变量
# 身份运算符案例
a = 9
b = 9
print(a is b)
print(a is not b)
运算符的优先级问题
- 永远记住,括号具有最高优先级
程序结构
- 顺序
- 分支
- 循环