香雨站

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 98|回复: 0

软件测试之python高级软件测试开发第13期NM班学习笔记

[复制链接]

2

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2023-1-18 17:24:10 | 显示全部楼层 |阅读模式
【点击获取百度网盘】
Python测试开发-常用基础知识

结构化工程

https://pythonguidecn.readthedocs.io/zh/latest/writing/structure.html

  • readme: 对项目的整体介绍,同时也是一份使用手册
  • LICENS:阐述该项目的许可说明和授权
  • setup.py:通过setup把核心代码打包
  • api_test:存放项目的核心代码
  • requirements.txt:项目依赖的第三方库
  • docs:包的参考文档
  • tests:代码的测试
  • makefile:同于项目的管理,根据项目需求添加其他的文件和目录
编码规范

python之禅
import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than right now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
缩进


  • 每一级缩进使用4个空格
# 左对齐
foo = long_function_name(var_one, var_two,
                         var_three, var_four)
# 换行缩进
foo = long_function_name(
   var_one, var_two,
   var_three, var_four)

# 用更多的缩进来与其他行区分
foo = long_function_name(
   var_one, var_two, var_three,
   var_four)行的最大长度


  • 最大79
  • 注释最大72
空行


  • 函数之间2个空行
  • 类的方法之间1个空行
注释


  • 块注释
与代码在同一行

  • 行内注释
  • 文档注释
第一行:对函数/类整体功能说明
参数说明
:param var_one: 参数1 是干嘛的
:type var_one:int
返回值说明
:return:
PEP257:https://github.com/qiuxiang/pep/blob/master/peps/257.md
模块包导入


  • 先导入python内置模块和包
  • 导入第三方的模块和包
  • 导入自定义的模块和包
__all__=[] 使用*导入时候只会导入all的[]中的的内容
数据类型扩展

基本数据类型

数值

  • 整数
  • 浮点数
  • 布尔类型
  • decimal
  • 复数
序列类型

  • 字符串
  • 元祖
  • 列表
元祖在定义的时候就确认了存放的空间,内存固定,占用空间较小
列表的空间可以动态变化,内存占用的空间比元祖大的多
在数据固定的情况下使用元祖
散列

  • 字典
  • 集合
命名元祖

from collections import namedtuple普通元祖:
tu = ('zx', '1994', '男')
print(tu[0])命名元祖:
使用namedtuple相当于创建了一个类,s1相当于实例话了一个包含name,age,gender三个属性的类。
__main__:当前模块下
from collections import namedtuple

student = namedtuple('Student', ['name', 'age', 'gender'])
print(type(student)) # <class 'type'> 一个类       

s1 = student('zx', '1994', '男')
print(type(s1)) # <class '__main__.Student'>
print(s1.name) # zx
print(s1[0]) # zx推导式

列表推导式

普通列表创建
l = [1, 2, 3, 4]

urls = []
for i in range(0,101,10):
    urls.append(f'http://....?page={i}')
print(urls)
"""
['http://....?page=0', 'http://....?page=10', 'http://....?page=20', 'http://....?page=30', 'http://....?page=40', 'http://....?page=50', 'http://....?page=60', 'http://....?page=70', 'http://....?page=80', 'http://....?page=90', 'http://....?page=100']
"""列表推导式
urls = [f'http://....?page={i}' for i in range(0,101,10)]
print(urls)
"""
['http://....?page=0', 'http://....?page=10', 'http://....?page=20', 'http://....?page=30', 'http://....?page=40', 'http://....?page=50', 'http://....?page=60', 'http://....?page=70', 'http://....?page=80', 'http://....?page=90', 'http://....?page=100']
"""三目运算
a = 10
if a > 5:
    print(5)
else:
    print(0)
a = 4
res = 5 if a > 5 else 0 # (判断语句成立)if(判断语句)else(判断语句不成立)
print(res) # 0
res = 5 if a > 5 else ('=' if a > 5 else "!")
print(res) # !结合列表推导式
[i for i in range(10) if i % 2 == 0] # [0, 2, 4, 6, 8]
[i if i % 2 == 0 else -1 for i in range(10) ] # [0, -1, 2, -1, 4, -1, 6, -1, 8, -1]字典推导式

dic = {i for i in [1, 2, 3]}
# 集合{1, 2, 3}

dic = {i: 1 for i in [1, 2, 3]}
# 字典{1: 1, 2: 1, 3: 1}

dic = {k: v for k in [1, 2, 3] for v in [3, 2, 1]}
# {1: 1, 2: 1, 3: 1} 错误 ❌
dic = {k: v for k, v in zip([1, 2, 3], [3, 2, 1])}
# {1: 3, 2: 2, 3: 1} 正确 ✅
# 其实就是:
dict(zip([1, 2, 3], [3, 2, 1]))生成器表达式

tu = (i for i in range(5))
# <generator object <genexpr> at 0x11433d138>
next(tu) # 0
next(tu) # 1
next(tu) # 2
next(tu) # 3
next(tu) # 4
next(tu)
"""
Traceback (most recent call last):
  File "/Users/zhongxin/Desktop/py/zx/02/0807_2.py", line 33, in <module>
    print(next(tu))
StopIteration
"""目录
01.柠檬班七周年
02.python测试开发-导学视频
03.python测试开发vip课程介绍
04.预习视频
05.预习视频-VUE基础
06.开学典礼
07. 推导式
08.可迭代对象和迭代器
09.生成器
10.内置函数
11.函数进阶之装饰器的使用
12.装饰器的扩展应用
13.面向对象进行之魔术方法
14.面向对象进行之属性管理机制
15.python内存管理机制
16.python并发编程之多线程
17.python并发编程之队列和多进程
18.python并发编程之线程池和进程池
19.python并发编程之协程
20.python并发编程之unittest和pytest扩展开发
21.socket编程之基于基于TCP实现HTTP客户端...
22.socket编程之简易版的web框架实现
23.前端基础一html基本使用
24.前端基础二CSS的使用
25.内存管理
26.前端基础三CSS页面布局
27.前端基础四js基础语法
28.操作页面
29.vue框架- vue基本使用和指令
30.vue框架二vue高级特性
31.vue框架三脚手架和组件的基本
32.vue组件库element的基础使用
33.前端请求库axios
34.vue路由插件的使用
35.项目框架搭建和登录页面功能实现
36.前端项目实战一-项目页面
37.前端项目实战二一菜单栏的实现
38.前端项目实战三-Vuex应用
39.前端项目实战四一项目数据展
40.前端项目实战五一页面功能实现
41.前端项目实战六一用例编辑页面
42.前端项目实战七一项目部署
43.Django ORM数据库操作、查询集概念
44.HTTPRunner框架作用、基本概念 V
45.HTTPRunner框朱吊儿片法一
46.HTTPRunner框架常见用法(二)
47.测试平台功能实现(一)
48.测试平台功能实现(二)
49.测试平台功能实现(三)
50.测试平台功能实现(四)
51.测试平台功能实现(五)
52.测试平台功能实现(六)
53.测试平台功能实现(七)
54.测试平台功能实现(八)
55.测试平台功能实现(九)
56.测试平台功能实现(十)
57.测试平台功能实现(十一)
58.测试平台功能实现(十二)
59.测试平台功能实现(十三)
60.shell概述、编码规范(上)
61.shell概述、编码规范(下)
62.变量、运算符(上)
63.变量、运算符(下)
64.流程控制结构、函数(上)
65.流程控制结构、函数(下)
66.linux三剑客之grep及进阶命令(上)
67.linux三剑客之grep及进阶命令(下)
68.Linux三剑客之sed(上)
69.Linux三剑客之sed(下)
70.Linux三剑客之awk(上)
71.Linux三剑客之awk(下)
72.shell脚本实战(上)
73.shell脚本实战(下)
74.Docker简介、环境部署(一)
75.Docker简介、环境部署(二)
76.Docker架构、基础命令、基础名词概念介绍
77.Dockerfile语法、编写规则
78.网络模式host、bridge、none(上)
79.网络模式host、bridge、none(下)
80.持久化存储、数据共享(上)
81.持久化存储、数据共享(下)
82.Docker compose多容器编排(上)
83.Docker compose多容器编排(下)
84.Docker实战部署(上)
85.Docker实战部署(下)
86.结业典礼
87.python开发框架-Flask(录播)
88.app专项性能测试(录播)
89.sonarQube静态代码扫描(录播)
90.sonarQube静态代码扫描(录播)
91.Jenkins持续集成
92.Jenkins持续集成
93.Jenkins持续集成
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|香雨站

GMT+8, 2025-7-4 14:17 , Processed in 0.125108 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表