Python

python基础

环境搭建

安装python–>配置环境变量

pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。

黑窗口命令:

  • 查看python版本:pyhon –version
  • 进入python shell编程:python
  • 安装外包:pip install selenium
  • 卸载外包:pip uninstall selenium

搭建自动化环境:

  • 下载selenium包:
    • pip install selenium
    • file->settings->project->python interpreter

基础语法

标识符:

  • 第一个字符必须是字母表中字母或下划线 _ 。
  • 标识符的其他的部分由字母、数字和下划线组成。
  • 标识符对大小写敏感。

关键字:

  • 查看关键字:黑窗口输入python->help()->keywords

注释:

  • 单行注释:#
  • 多行注释:
    • ‘’’ ‘’’
    • “”” “””

代码块格式:

  • 代码通过缩进来表示代码块,java通过{}方法表示代码块。
  • 缩进的空格数是可变的,同一代码块的语句必须包含形同的缩进空格数。

变量的声明和赋值:

  • 格式:变量名 = 表达式
  • 声明变量不需要指定类型,每个变量在使用前必须赋值。
  • 删除变量:del 变量名
  • 链式赋值:x=y=z=1,相当于x=1,y=1,z=1
  • 系列解包赋值:x,y=1,2,相当于x=1,y=2

数据类型

数值:

  • 整形(int)
  • 浮点型(float)
  • 布尔型(bool)

字符串:

  • 单引号和双引号使用完全相同
  • 转义符:\
  • 使用r不发生转义:r”hello \n”
  • 字符串可以用+拼接,用*重复
  • 可以通过索引访问指定字符
    • str=”abcdef”
    • str[0] ==> b
    • str[-1] ==> f
    • str[1:3] ==> bc
    • str[1:5:2] ==> bd
  • 字符串不可变,不能通过索引位置修改值
  • 字符串常用方法:
    • len(string):返回字符串长度
    • upper()/lower():转化大写/小写
    • replace(old,new):替换
    • split(sep):字符串按分隔符分割,返回列表
    • join():合并

补充:

  • is 比较两个对象的 id 值是否相等,是否指向同一个内存地址。

  • == 比较的是两个对象的内容是否相等,值是否相等。

  • 整数缓存问题:Python仅仅对比较小的整数对象进行缓存(范围为[-5, 256])缓存起来,在Pycharm或者保存为文件执行,结果是不一样的,这是因为解释器做了一部分优化(范围是[-5,任意正整数])。

  • 字符串驻留机制:仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中。 Python 支持字符串驻留机制,对于符合标识符规则的字符串(仅包含下划线(_)、字母 和数字)会启用字符串驻留机制驻留机制。

操作:

  • 将”to be or not to be”字符串倒序输出
  • 将”sxtsxtsxtsxtsxt”字符串中所有的s输出

算术运算符:

比较运算符:

逻辑运算符:

自动类型转换:整数和浮点数混合运算时,表达式结果自动转型成浮点数

类型转换:int()、float()等等

print打印:

  • print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=””
  • %s表示字符串,%d表示数字,%r任意类型
  • format()

input输入: 接受一个标准输入数据,返回为 string 类型

序列类型

序列类型包括字符串、列表、元组、集合和字典。

列表:

  • 列表是最常用的 Python 数据类型,它可以作为一个方括号内的逗号分隔值出现。
  • 列表的数据项不需要具有相同的类型。
  • 索引从0开始。
  • 格式:list=[1,2,3,4]
  • 常用方法:
    • list.append(obj):末尾添加
    • list.remove(obj):移除
    • list.reverse():反转
    • list.clear():清空

元组:

  • Python 的元组与列表类似,不同之处在于元组的元素不能修改。
  • 元组使用小括号 **( )**,列表使用方括号 **[ ]**。
  • 格式:tuple=(1,2,3,4)
  • 常用方法:
    • len(tuple):元组长度
    • tuple(iterable):转化为元组

字典:

  • 字典是另一种可变容器模型,且可存储任意类型对象。
  • 字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {}
  • 键必须是唯一的,但值可以重复。
  • 格式:dict={“key1”:”value1”,”key2”:”value2”}
  • 常用方法:
    • len(dict):字典长度
    • dict.keys():返回字典中所有的key
    • dict.values():返回字典中所有的value

集合:

  • 集合(set)是一个无序的不重复元素序列。
  • 格式:set={1,2,3}
  • 常用方法:
    • len(set):集合长度
    • set.add(obj):添加
    • set.remove(obj):移除指定元素

流程控制

选择结构:

  • 单分支结构
    • if
  • 双分支结构
    • if-else
  • 多分支结构
    • if-elif-else

格式:

1
2
3
4
5
6
if 条件表达式:
语句块
elif 条件表达式:
语句块
else:
语句块

概要:

  • 条件表达式:可以是逻辑表达式、关系表达式、算术表达式等等。
    • false情况:False、0、0.0、空值 None、空序列对象(空列表、空元祖、空集合、空字典、空字符串)等
  • 语句块:可以是一条语句,也可以是多条语句。多条语句,缩进必须对齐一致。

操作:

  • 输入一个数字,小于10,则打印这个数字。
  • 输入一个学生的成绩,将其转化成简单描述:不及格(小于60)、及格(60-79)、良 好(80-89)、优秀(90-100)。
  • 输入数据打印出“输入a值:”、“输入b值:”。输出文字“x=a*a*b的值”和x的值;输出文字“x=a-b的值:”和x的值;输出文字“x=a+b的值:”和x的值。其中变量a、b均须为整型。

循环结构:

循环结构用来重复执行一条或多条语句。

  • while循环

    • 格式:

    • ```python
      while 条件表达式:

      循环体
      
      1
      2
      3
      4
      5
      6
      7
      8

      - for循环

      - 格式:

      - ```python
      for 变量 in 可迭代对象:
      循环体

可迭代对象:

  • 序列:字符串、列表、元组等
  • 迭代器对象等

range对象:

  • range对象是一个迭代器对象,用来产生指定范围的数字序列。
  • 格式:range(start,end[,step])
  • start开始,end结束( 但不包括 end),step步长
  • 如果没有start,默认从0开始
  • step默认为1

break语句:

break语句可用于 while 和for 循环,用来结束整个循环。当有嵌套循环时,break 语句只 能跳出最近一层的循环。

continue语句:

continue 语句用于结束本次循环,继续下一次。多个循环嵌套时,continue 也是应用于最 近的一层循环。

操作:

  • 利用 while 循环打印从0-10 的数字。

  • 利用while 循环,计算1-100 之间数字的累加和;计算1-100 之间偶数的累加和, 计算 1-100 之间奇数的累加和。

  • 利用for 循环,计算1-100 之间数字的累加和;计算 1-100 之间偶数的累加和, 计算 1-100 之间奇数的累加和。

  • 利用for 循环嵌套,打印九九乘法表。

  • 循环输入数字,当输入指定数字使用 break 语句结束循环。

  • 要求输入员工的薪资,若薪资小于 0 则重新输入。最后打印出录入员工的数量和平均薪资。

类和方法

方法:

在Python中通过def关键字来定义函数。

1
2
3
4
5
def add(a,b):
print(a + b)

def sub(a,b):
return a-b

方法调用:通过方法名调用,传入指定的参数列表

1
2
add(1,2)
sub(4,3)

类:

在Python中通过class关键字来创建类。

1
2
3
class A():
def add(self,a,b):
return a+b

实例化类:实例化类在其它编程语言中一般使用new关键字,但python中并没有new关键字,类的实例化类似于方法的调用方式。

1
2
count=A()
count.add(4,5)

引用模块

Python 模块(Module),是一个 Python 文件,以 .py 结尾。

在Python中可以通过import…或from…import…方式引用模块。

import 导入的是模块,from…import 导入的是模块中的一个函数/一个类。

import…示例:

1
2
3
4
5
6
# 引入turtle模块
import turtle
t=turtle.Pen()
for x in range(360):
t.forward(x)
t.left(59)

from…import…示例:

1
2
3
4
# 引入时间模块中的ctime方法
from time import ctime
# 打印当前时间
print(ctime())

操作:绘制奥运五环

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import turtle
turtle.width(10) # 设置画笔宽度
turtle.color("blue") # 设置画笔颜色
turtle.circle(50) # 画圆
turtle.color("black")
turtle.penup() # 抬笔
turtle.goto(120,0) # 设置坐标
turtle.pendown() # 下笔
turtle.circle(50)
turtle.color("red")
turtle.penup()
turtle.goto(240,0)
turtle.pendown()
turtle.circle(50)
turtle.color("yellow")
turtle.penup()
turtle.goto(60,-50)
turtle.pendown()
turtle.circle(50)
turtle.color("green")
turtle.penup()
turtle.goto(180,-50)
turtle.pendown()
turtle.circle(50)