Python基础(测试自动化准备)

简介

python2 ,python3
解释型语言

常用方法

方法名功能例子例子解释
print()打印pring(“aa”)在控制台打印:aa
input()控制台输出input(“你的名字是:”)在控制台打印:你的名字是:,必须回复
len(对象)输出对象长度len(“aaa”)在控制台打印:3
type(数据)查看数据类型type(123)在控制台打印:< int>
真名 as 别名起别名

概念

变量

可为不同的数据类型:字符串,整数,小数,元组,字典,列表等。

变量命名规则:
1、不能以数字开头,不能用关键字
2、由数字,字符,下划线组成,不建议用中文
3、区分大小写

变量命名风格:
大驼峰:MyName
小驼峰:myName
下划线:my_name (python推荐使用)

语法

注释

单行注释: #
多行注释: ‘’’ ‘’’ 或 “”" “”“”

输入

变量名 = input(“提示信息”)

输出

print(数据/变量)

运算符

算数运算法

有:+ - * / % 取余 // 取商

比较运算符

有:== != > < <= > >=

赋值运算符

逻辑运算符

and or not

流程控制

判定语句(if)

if 判断	:
语句
elseif 判断	:
语句
else	:
语句

循环语句

while

while 条件 :
语句
限制语句

for

for 临时变量	in		range:
语句

关键字:
break 终止语句
continue 跳出本次循环
pass 空语句(占位)

数据类型

type(数据/变量名) 查看数据类型

format :格式化输出
例如:
print(“{}今年{}岁了”.format(name,age))
print(f"{name}今年{age}岁了".format(name,age)) 推荐使用

类型转换

int()
float()
str()
tuple()
list()
在这里插入图片描述

整型,浮点型,布尔类型

字符串 " "

str = “Hello world”

符号描述实例
+字符串连接
*重复输出字符串str*2 =>Hello worldHello world
[]通过索引获取字符串中字符
[ : ]截取字符串,遵循左闭右开原则str[1,7] =>ello w
in包含返回True
not in不包含返回True

格式化字符串

符 号描述
%c格式化字符及其ASCII码
%s 格式化字符串
%d格式化整数
%u格式化无符号整型
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制数(大写)
%f格式化浮点数字,可指定小数点后的精度
%e用科学计数法格式化浮点数
%E作用同%e,用科学计数法格式化浮点数
%g%f和%e的简写
%G%f 和 %E 的简写
%p用十六进制数格式化变量的地址

方法:
去除两边空白符: 字符串.strip()
全转小写: 字符串.lower()
全转大写: 字符串.upper()
分割字符串: 字符串.split(分隔符)
替换: 字符串.replace(原串,新串)
连接: 字符串.join(一般为列表)
判断是否为纯数字:字符串.isdigit()

列表 []

定义:
name = [“a”,“b”,“c”] 或 name = []
name = list()

方法:

方法名功能注意
append(数据)追加数据
pop(索引)删除数据下标越界问题
列表[索引] = 数据修改数据

字典 { : , : }

定义:
data = {} 或 data = {“name”:“aa”,“age”:“12”} 注意:key一帮为字符串且唯一
data = dict()

方法:

方法名功能注意
字典名[key] = 数据新增数据
pop(key)删除数据key是否存在问题
字典[key] = 数据修改数据
字典名[key]显示
字典名.get(key)显示

遍历:

# 遍历字典key
for key in data.keys():
    print(key)
# 遍历字典value
for value in data.values():
    print(value)

# 遍历字典key和value
for i in data.items():
    print(i)

元组 ()

与其他数据相比 数据是不可以修改的

定义:
aa = () 或 aa = (“aaa”,14,True) 注意:元组只有一个元素时,元素后面需要加逗号 (a,)
aa = tuple()

方法:

方法名功能注意
元组名[索引]显示
元组.count(数据)统计该数据在元组中出现了多少次

集合 {}

定义:
set = {1,2,3}
set2 = set()

一般不会使用,只会用来去重

函数

格式:
def 函数名(参数1,参数2…):

return 关键字:
返回值。

导包:
impor 导入
from …import 导入

断言(assert):
assert 预期结果 == 实际结果 (判断是否相等,不等则返回错误)
assert 预期结果 in 实际结果 (判断是否被包含,不包含则返回错误)

异常

语法:
try:
# 尝试执行的代码
except 错误:
# 出现异常时执行的代码
finally:
# 必须执行的代码

面向对象

  • 类:
    具有相同特征和行为的一类事物的统称,是抽象的,不能直接使用。(类名,属性,方法)
  • 对象:
    是由类创造出来的事物,是直接可以使用的
  • 基本语法:
class 类名:
# 定义属性和方法
	def 方法名(self):		# 本质是函数
	pass
  • 创建对象:
变量 = 类名():
  • 调用类的方法:
    类中: 对象.方法名()

  • self参数:
    形参,只是习惯性叫self,但他可以不传参数(低层:解释器自动将调用这个方法的对象作为参数传递给self)。

  • 使用属性:
    对象.属性名 = 属性值 # 添加或修改
    对象.属性名 # 获取

  • 魔法方法(俩–开头与结尾)满足条件,自动调用。

__init__	#	调用时机:创建对象时,自动调用
			#	应用场景:初始化对象,给对象添加属性
			
__str__		# 	使用print(对象)	打印对象时,自动调用(如果未定义,默认打印对象的引用地址),必须返回字符串
  • 封装:将属性和方法定义到类中。
# 封装
class HouseIem:
    def __init__(self, name, area):
        self.name = name
        self.area = area

    def __str__(self):
        return f"{self.name}占地面积{self.area}平米"


class House:
    def __init__(self, name, area):
        self.h_type = name
        self.total_area = area
        self.free_area = area
        self.item_lis = []

    def __str__(self):
        return f"户型:{self.h_type}、总面积{self.total_area}、剩余面积{self.free_area}、家具名称列表{self.item_lis}"

    def add_item(self, item):
        if self.free_area > item.area:
            self.item_lis.append(item.name)
            print(f"添加家具{item.name}")
            self.free_area -= item.area
        else:
            print("房子面积不够")


if __name__ == '__main__':
    bed = HouseIem('席梦思', 4)
    chest = HouseIem('衣柜', 2)
    table = HouseIem('餐桌', 1.5)
    print(bed)

    house = House('别墅', 10000)
    house.add_item(table)
    house.add_item(table)
    print(house)

  • 继承:子类继承父类的所有方法和属性
    语法:
class 类A:
	pass
class 类B(类A):	# 类B继承类A
	pass
class Dog:
    def __init__(self, name):
        self.name = name

    def eat(self):
        print(f"{self.name},别吃了")


class Zheng(Dog):
    pass


if __name__ == '__main__':
    xx = Zheng("xx")
    xx.eat()
  • 多态:不同的子类对象调用相同的父类方法,产生不同的执行结果
    在自动化测试用不上

  • 权限

    • 公有:直接定义的都是
    • 私有:只能在类内部进行定义,在方法或属性名前面加两个下划线,变成私有的了
  • 类方法和属性

    • 属性:count = 0
    • 方法:在方法上面加@classmethod,参数写为:cls
  • 静态方法
    使用装饰器@staticmethod

文件操作

文本文件,二进制文件(MP3,mp4)

文件操作步骤

  • 打开文件
open(file, mode= 'r', encoding=None)

在这里插入图片描述

  • 读写文件
# 读
文件对象.read()		# 返回值为读取的文件内容(字符串)
# 写
文件对象.write()		# 返回值为写入文件的字符数
  • 关闭文件(保存)
文件对象.close   # 如果是写文件,会自动保存
  • 其他操作
    1、读写文件(自动关闭)
with open('a.txt', 'a', encoding='utf-8') as aa :
    aa.write("adasfdiq fdiqihoho")

2、按行读取文件

文件对象.readline()	# 一次读取一行,读完返回空

3、读取json文件

import json
with open('a.json', encoding='utf-8') as f :
	buf = json.load(f)
	buf.get("name")

3、写入json文件

import json
info = {'name':'小明','age':18}
with open('a.json','w', encoding='utf-8') as f :
	json.dump(info, f, ensure_ascii=Flase, indent=2)

标准库

OS

在这里插入图片描述

time

在这里插入图片描述

多线程

  • 14
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值