FrostySun

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))
    
  1. = "我是%s"
    print(s)

    我是%s

    print("我是%s" %"大懒")

    我是大懒

  2. = "I am %d years old"
    print(a)
    print(a%18)

    I am 18 years old

  3. = "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的时候,整个表达式不在向下计算
    1. = True or xxxxxxxxx

      • 因为True已经是1,+任何都是大于0,逻辑运算不存在负数,所以后面的值计算机不会在关注,返回的值肯定是True了
      • 注意在xxxxxxxx的表达式在括弧内True的值为0,计算后的值肯定是0,所以不需要再往后继续了
    2. = 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)

运算符的优先级问题

  • 永远记住,括号具有最高优先级

程序结构

  • 顺序
  • 分支
  • 循环