一、基础语法
1、打印
(1)、默认调用sys.stdout.writ()方法
(2)、用法:print()(符号使用英文输入法)
(3)、字符串:需要使用引号、单引号、双引号;
(4)、数字:直接打印;
print(8)
print("学习Python自动化测试")
(5)、格式化输出
1、%s:字符串输出
2、%d:整数输出;
3、%.1f:保留一位小数输出;
4、%c:字符输出;
5、%f:浮点数输出;
6、%o:八进制整数;
7、%x:十六进制整数;
8、%e:科学计数法浮点数字;
print('%s' % 'hello world')
print('%.1f' % 1.121)
print('%d' % 20.125)
2、编码
编码是信息从一种形式或格式转换为另外一种形式的过程,也叫计算机编程语言的代码。常见的编码:
ASCII、GBK、Unicode、UTF-8
ASCII编码:标准的单字节字符编码(国际标准);
GBK编码:双字节编码;
Unicode编码:计算机实现跨语言、跨平台的文本转换及处理;
UTF-8编码:针对Unicode的一种可变长度字符编码;
注:
Python3编码默认脚本文件都是UTF-8编码,如果使用非UTF-8编码,需要在.py文件中进行声明。
声明方法:
#-*- coding=utf-8 -*- 或 #-*- coding:utf-8 -*-
3、数据类型
6种基本数据类型:
数字(number)、字符串(string)、列表(list)、元组(tuple)、字典(dictionary)、集合(set)
(1)、数字(整型(int)、浮点型(float)、布尔型(bool)、复数类型(complex))
整型(int): 实例:1、2、-1
浮点型(float):实例:1.1、3.24
布尔型(bool):返回值只有true、false
复数类型(complex):实数和虚数 实例:2 + 2j
print(type(2))
print(type(2 + 2j))
(2)、字符串
需要写在单引号、双引号、三引号里面
print('学习Python自动化测试')
print("Hello")
print('''World''')
4、变量
变量是一个存储数据的内存空间对象,可使用等号“=”为变量赋值,等号左边是变量名,右边是变量值。
变量名的命名规则如下:
1、变量名只能包含数字、字母、下划线;
2、不能以数字开头;
3、不能包含空格,可以使用下划线来分隔多个单词;
4、系统关键字及内置函数名不能作为变量名;
5、变量名建议见名之意;
6、Python中变量名区分大小写;
5、注释
单行注释:使用#
# print(type(2))
多行注释:三对单引号、三对双引号
'''
print('学习Python自动化测试')
print("Hello")
'''
6、缩进
缩进一般建议使用空格,在不同的编辑器里tab的长度可能不一致;
二、运算符
1、算术运算符
+ :加法
- :减法
* :乘法
/ :除法
** :取幂
% :取余
// :取整除,返回商的部分
A = 5
print(A + 2) 7
print(A - 2) 3
print(A * 2) 10
print(A / 2) 2.5
print(A ** 2) 25
print(A % 2) 1
print(A // 2) 2
2、比较运算符
常用于两个对象之间的比较,返回结果为True、False
> :大于
< :小于
>= :大于等于
<= :小于等于
== :等于
!= :不等于
A = 3
B = 5
print(A > B) False
print(A < B) True
print(A >= B) False
print(A <= B) True
print(A == B) False
print(A != B) True
3、逻辑运算符
And(与):两真与为真
Or(或):有真或为真
Not(非):为真返假,为假返真
A = 0
B = 1
print(A and B) 0
print(A or B) 1
print(not A) True
print(not B) False
4、Is 与 ==
Is 与 “==”都是比较两个对象是否相等有区别
Is比较对象是否相同(比较地址,以id进行比较。相同返回True,不同返回False)
==比较两个对象的值是是否相等
a = b = ['1','2','3']
c = ['1','2','3']
print(a is b) True
print(a is c) False
print(a == b) True
print(id(a),id(b),id(c)) 2813252538048 2813252538048 2813252593152
三、条件语句
1、单项判断
语法:
if【条件判断】:
【代码块】
如果条件为真,则执行代码块,否则执行代码块下面的语句。
if 2 > 1:
print("True")
#输出结果为:True
2、双项判断
语法:
if【条件判断】:
【代码块1】
else:
【代码块2】
如果条件为真,执行代码块1,否则执行代码块2
if 2 > 1:
print("True")
else:
print("False")
#输出结果:True
3、多项判断
语法:
if【条件判断1】:
【代码块1】
elif【条件判断2】:
【代码块2】
...
else:
【代码块N】
4、循环语句
1、for语句
语法:
for 【迭代变量】 in 【字符串|列表|元组|字典|集合】:
【代码块】
当【迭代变量】在【字符串|列表|元组|字典|集合】中,则执行【代码块】,进入下一个循环;
result = 0
for i in range(101):
result += i
print(result)
2、while语句
语法:
while【条件判断】:
【代码块】
当【条件判断】为真时执行【代码块】,然后进入下一级循环;
i = 0
while i < 5:
i += 1
print("当前循环次数是:" + str(i))
print("循环结束")
3、continue和break
continue:退出本次循环
break:退出整个循环
五、列表
1、创建列表
使用中括号[]来创建一个列表,列表中的元素之间使用逗号隔开;
list = [1,'A',3.25,'Hello']
2、获取元素
使用索引获取列表中的元素信息,索引值从0开始;
list = [1,'A',3.25,'Hello']
print(list[2])
#输出结果为3.25
3、添加元素
append():在列表的最后位置添加,每次只能添加一个元素;
extend():在列表的最后位置添加,一次可以添加多个元素;
insert():在列表的特定位置添加;
list = [1,'A',3.25,'Hello']
list.append("selenium")
print(list) #[1, 'A', 3.25, 'Hello', 'selenium']
list.extend(['auto','test'])
print(list) #[1, 'A', 3.25, 'Hello', 'selenium', 'auto', 'test']
list.insert(4,'insert')
print(list) #[1, 'A', 3.25, 'Hello', 'insert', 'selenium', 'auto', 'test']
4、删除元素
remove(name):移除特定元素;
del list[index]:移除索引为index的元素;
pop():移除最后一个元素,并且可以将最后一个元素返回;
list = [1, 'A', 3.25, 'Hello', 'insert', 'selenium', 'auto', 'test']
list.remove('selenium')
print(list) #[1, 'A', 3.25, 'Hello', 'insert', 'auto', 'test']
del list[2]
print(list) #[1, 'A', 'Hello', 'insert', 'auto', 'test']
temp = list.pop()
print(temp) #test
5、列表切片
通过列表切片可以获取列表中的部分元素,并且返回一个新的列表。
list[startIndex:endIndex]:startIndex表示截取列表的开始索引并且包含该位置元素,endIndex截取列表的结束索引但不包含该位置元素;
ist[:endIndex]:从索引为0处开始截取,到索引endIndex结束;
ist[startIndex:]:截取索引startIndex之后的所有元素;
list = [1, 'A', 3.25, 'Hello', 'insert', 'selenium', 'auto', 'test']
temp = list[1:3]
print(temp) #['A', 3.25]
temp = list[1:]
print(temp) #['A', 3.25, 'Hello', 'insert', 'selenium', 'auto', 'test']
temp = list[:5]
print(temp) #[1, 'A', 3.25, 'Hello', 'insert']
6、其他操作
方法 | 描述 |
---|---|
len(list) | 获取list的元素个数 |
max(list) | 返回列表中最大的元素值 |
min(list) | 返回列表中最小的元素值 |
list.count(obj) | 返回元素obj在list出现的次数 |
list.reverse() | 将列表元素进行反转 |
6、元组
1、创建元组
使用小括号()来创建元组,元素之间使用逗号分隔。(元组中元素不允许被修改)
tuple1 = (1, 'A', 3.25)
tuple2 = ()
print(tuple1)
print(tuple2)
2、获取元素
可以使用索引获取元组的元素,所以从0开始。
tuple1 = (1, 'A', 3.25)
print(tuple1[1]) #A
3、拼接元组
将两个元组拼接成一个新的元组。
tuple1 = (1, 'A', 3.25)
tuple2 = ('Hello',)
print(tuple1 + tuple2) #(1, 'A', 3.25, 'Hello')
4、删除元组
del tup 表示删除元组tup
tuple1 = (1, 'A', 3.25)
del tuple1
print(tuple1) #NameError: name 'tuple1' is not defined
5、其他操作
方法 | 描述 |
---|---|
len(tup) | 获取tup的元素个数 |
max(tup) | 返回元祖中最大的元素值 |
min(tup) | 返回元组中最小的元素值 |
tuple(list) | 将列表list转换成元组 |
tup[startIndex:endIndex] | 截取元祖中元素 |
七、字典
1、创建字典
可以使用大括号{}来创建字典,其中的键/值对之间使用逗号隔开,键与值之间使用冒号(:)表示。键是唯一的不允许重复,但是值可以是任何数据类型。
dict = {'a':123,'sel':"AlySam"}
print(dict)
2、获取元素
通过键key可以获取对应的值value。如果访问的键在字典中不存在,则会报KeyError错误。
dict = {'a':123,'sel':"AlySam"}
print(dict['a']) #123
print(dict['A']) #KeyError: 'A'
3、修改元素
使用dic[key] = value可以修改字典的值,如果key在字典中存在则更新值;如果不存在,则将此键值对添加进字典。
dict = {'a':123,'sel':"AlySam"}
dict['a'] = "Python"
print(dict) #{'a': 'Python', 'sel': 'AlySam'}
dict['V'] = "VVV"
print(dict) #{'a': 'Python', 'sel': 'AlySam', 'V': 'VVV'}
4、删除元素
通过del dict[key]删除key元素,也可以直接使用dict.clear()清空字典。
dict = {'a': 'Python', 'sel': 'AlySam', 'V': 'VVV'}
del dict['sel']
print(dict) #{'a': 'Python', 'V': 'VVV'}
dict.clear()
print(dict) #{}
5、其他操作
方法 | 描述 |
---|---|
del dict | 删除字典 |
len(dict ) | 返回字典中元素的个数 |
dict.has_key(key) | 如果key在dict中则返回True,反之返回False |
dict.items() | 以列表的形式返回可遍历的(key,value)元组数组 |
dict1.update(dict2) | 把字典dict2的键值对更新到dict1里 |
dict.keys() | 以列表的形式返回所有的key |
dict.values() | 以列表的形式返回所有的value |
八、集合
集合是一个无序的不重复元素序列,用大括号表示{}。可以对集合进行创建、移除元素和添加元素等操作。
1、创建集合
可以使用大括号{}或者set()函数创建集合。如果要创建一个空集合必须用set()。
test = {'python','selenium','auto'}
print(test) #{'selenium', 'auto', 'python'}
t = set('python-selenium-auto')
print(t) #{'y', 'e', '-', 's', 't', 'i', 'p', 'm', 'h', 'u', 'a', 'n', 'l', 'o'}
2、添加元素
s.add(x):将x添加到s集合中,如果x已存在则不执行此操作;
s.update(x):将x添加到s集合中,x可以为列表、元组、字典等;
test = {'python','selenium','auto'}
test.add('grid')
print(test) #{'selenium', 'auto', 'python', 'grid'}
test.update(['web','UI'])
print(test) #{'auto', 'UI', 'python', 'grid', 'web', 'selenium'}
3、移除元素
s.remove(x):移除元素x,如果x不存在则报错;
s.discard(x):移除元素x,如果x不存在则不报错;
s.pop():随即移除一个元素;
s.clear():移除集合中的所有元素;
test = {'auto', 'UI', 'python', 'grid', 'web', 'selenium'}
test.remove('web')
print(test) #{'UI', 'grid', 'selenium', 'python', 'auto'}
test.discard('A')
print(test) #{'UI', 'grid', 'selenium', 'python', 'auto'}
test.pop()
print(test) #{'grid', 'selenium', 'python', 'auto'}
test.clear()
print(test) #set()
4、其他操作
方法 | 描述 |
---|---|
copy() | 拷贝一个集合 |
difference() | 返回多个集合的差集 |
intersection() | 返回集合的交集 |
union() | 返回两个集合的并集 |
九、推导式
推导式是可以从一个数据序列构建另一个新的数据序列的结构体,具有语言简洁、速度快的有点。
1、列表推导式
使用中括号[]生成,返回的是一个列表。
语法:
[【表达式】for【变量】in【对象】if【条件】]
使用【变量】对【对象】进行迭代,当【条件】满足时返回【表达式】
str = "python"
str = [i for i in str]
print(str) #['p', 'y', 't', 'h', 'o', 'n']
2、字典推导式
使用中括号{}生成,返回的是一个字典。
语法:
{【键表达式】:【值表达式】for【变量】in【对象】if【条件】}
使用【变量】对【对象】进行迭代,当【条件】满足时返回【键表达式】:【值表达式】
dict = {"name":"xiaoming","Age":18}
dict_conversion = {v:k for k,v in dict.items()}
print(dict_conversion) #{'xiaoming': 'name', 18: 'Age'}
3、集合推导式
使用中括号{}生成,返回的是一个集合。
语法:
{【表达式】for【变量】in【对象】if【条件】}
使用【变量】对【对象】进行迭代,当【条件】满足时返回【表达式】
print({x**2 for x in range(1,10)}) #{64, 1, 4, 36, 9, 16, 49, 81, 25}