python中json如何存放字节数组中_测试面试题集锦(四)| Linux 与 Python 编程篇(附答案)...
本文为霍格沃兹测试学院学员学习笔记,进阶学习文末加群。
本系列文章总结归纳了一些软件测试工程师常见的面试题,主要来源于个人面试遇到的、网络搜集(完善)、工作日常讨论等,分为以下十个部分,供大家参考。如有错误的地方,欢迎指正。有更多的面试题或面试中遇到的坑,也欢迎补充分享。希望大家都能找到满意的工作,共勉之!~
软件测试工程师面试题
测试常见问题与流程篇
测试工具篇
计算机网络知识与数据库篇
Linux 与 Python 编程技能篇
自动化测试(Selenium、Appium 和接口测试)与性能测试篇
软素质篇(10 大灵魂拷问)与反问面试官篇
Linux 技能篇
工作中常用的 Linux 命令有哪些?
awk、sed、vim、iotop、dstat、cp、top、ifconfig、pwd、cd、ll、ls、cat、tail、grep、mv、rm、mkdir、df、du
什么命令可以帮助 Linux 执行 Windows 上传的脚本?
改变编码格式
vim test.sh
:set ff?// 显示dos的话
:set ff=unix:wq
简述 Linux 三剑客
grep 命令
根据用户指定的模式 pattern 对目标文本进行过滤,显示被模式匹配到的行;
grep [options] pattern [file]
常用参数:
-v 显示不被pattern匹配到的行
-i 忽略字符的大小写
-n 显示匹配的行号
-c 统计匹配的行数
-o 仅显示匹配到的字符串
-E 使用ERE,相当于egrep(可以识别更多的正则表达式规则)
sed 命令
流编辑器,用来处理一行数据。将一行数据存储在模式空间中->用sed命令处理->送入屏幕->清空空间。
常用参数:
-h 显示帮助
-n 仅显示script处理后的结果
-e 指定的脚本来处理输入的文本文件
-f 以指定的脚本文件来处理
常用动作:
a: 新增 sed -e '4 a newline'
c: 取代 sed -e '2,5c No 2-5 number'
d: 删除 sed -e '2,5d'
i: 插入 sed -ed '2i newline'
p: 打印 sed -n '/root/p'
s: 取代 sed -e 's/old/new/g'
g: 代表全局
awk 命令
把文件逐行的读入,以空格为默认分隔符将每行切片。把行作为输入,并赋值给
$0
->将行切段,从$1
开始->对行匹配正则/执行动作->打印内容;awk 'pattern + action' [filenames]
常用语法:
filename awk 浏览的文件名
begin 处理文本前要执行的操作
end 处理文本之后要执行的操作
fs 设置输入域分隔符,等价于命令行-F选项
nf 浏览记录的域的个数(列数)
nr 已读的记录数(行数)
常用参数:
ofs 输出域分隔符
ors 输出记录分隔符
rs 控制记录分隔符,换行标志
$0
整条记录$1
第一条分隔后的记录
如何通命令定位 Linux 服务器下的日志?
如果要监控日志,那么使用
tail -f | grep xxx
命令,过滤需要的字段;如果在完整日志中查看内容,使用
cat xxx.log | grep xxxx | awk '{print $1}'
等命令过滤自己需要的内容;
简述项目中的环境搭建和维护
结合自身经验先从系统安装开始,如常用的 CentOS 和 Ubuntu 说起,系统安装主要是磁盘分区和磁盘阵列问题;
基础环境依赖,如 MySQL、Redis、Jenkins、Docker、项目中用到的其他依赖环境等;
维护方便主要从遇到的错误说起,如无法远程连接、服务器加固等;
Python 编程篇
Python 中类方法,类实例方法,静态方法的区别
实例方法:由对象调用;至少一个 self 参数;执行普通方法时,自动将调用该方法的对象赋值给 self;
类方法:由类调用;至少一个 cls 参数;执行类方法时,自动将调用该方法的类复制给 cls;
静态方法:由类调用;无默认参数;
dict 和 tuple 及 list 的区别(这里列的是主要区别,面试足够)
tuple 是不可变对象,list 和 dict 都是可变对象,这里的不可变指的是指向地址不可变;
list 是有序的,dict 是无序的,不可存放有序集合;
dict 查找速度快,不管有多少个元素时间都一样,list 查找速度慢,需要有序查找;
dict 的 key 为不可变对象,且不可重复,list 则可以重复,存放任意对象;
JSON 和 dict 的区别
JSON 是一种数据格式,纯字符串。dict 是一种完整的数据结构;
dict 是一个完整的数据结构,是对 Hash Table 这一数据结构的一种实现,是一套从存储到提取都封装好了的方案。它使用内置的哈希函数来规划 key 对应 value 的存储位置,从而获得O(1)的数据读取速度;
JSON 的 key 只能是字符串,Python 的 dict 可以是任何可 hash 对象(不可变对象);
JSON 的 key 可以是有序、可重复的;dict 的 key 不可重复,且无序;
JSON 任意 key 存在默认值 undefined,dict 默认没有默认值;
JSON 访问方式可以是[],也可以是.,遍历方式分 in、of;dict 的 value 仅可以下标访问;
dict 可以嵌套 tuple,JSON 里只有数组;
Python 会不会出现内存泄漏,为什么?
当对象之间互相引用的时候再删除的时候,可能会造成无法释放对象的情况,出现泄漏;
上面为个人了解,如有其它请补充;
Python 的同步和异步
直接得到最终结果的结果,就是同步调用。
不直接得到的最终的结果,就是异步调用。
同步与异步区别在于:调用者是否得到了想要的最终结果。
常见手撕代码题
两个列表提取作为字典
dict(zip(list1, list2))
字符串反转输出
str = '1234567890'print(str[::-1])
l = list(str)l.reverse()print(''.join(l))
实现斐波那契数列
def Fibonacci(loop): if loop == 0: return '无效参数' elif loop == 1: return 0 l = [0, 1] for i in range(2, loop): l.append(l[i - 1] + l[i - 2]) return l
找出驼峰数组的最大值
li = [1, 2, 10, 10, 2, 1]print([v for v in li if v == max(li)])
水仙花数
sxh = []for i in range(100, 1000): s = 0 for j in str(i): s += int(j)**3 if i == int(j)**3: sxh.append(i)print(sxh)
完全数
a = []for i in range(1, 1000): s = 0 for j in range(1, i):if i % j == 0 and j s += j if s == i: a.append(i)
幂的递归
def mi(a, n): if n == 0: return 1 else: return a * mi(a, n - 1)
目录遍历
import os
def get_file(path, rule=''): files = [] for fpath, dirs, fs in os.walk(path): for f in fs: if os.path.join(fpath, f).endswith(rule): files.append(f) return files
【相关阅读】
测试人面试 BAT 大厂之前,需要做好哪些准备?
推荐学习
推荐霍格沃兹出品 《测试开发实战进阶》课程,资深测试架构师、开源项目作者亲授 BAT 大厂前沿最佳实践。4 个月 20+ 项目实战强化训练,带你一站式掌握 BAT 测试开发工程师必备核心技能(对标阿里P6+,年薪50W+)!学员直推 BAT 名企测试经理,普遍涨薪 50%+!
?14 期开课中?
戳“阅读原文”,提升自己的核心竞争力吧!
python中json如何存放字节数组中_测试面试题集锦(四)| Linux 与 Python 编程篇(附答案)...相关推荐
- docker常见面试题_测试面试题集锦(四)| Linux 与 Python 编程篇(附答案)
本文为霍格沃兹测试学院学员学习笔记,进阶学习文末加群. 本系列文章总结归纳了一些软件测试工程师常见的面试题,主要来源于个人面试遇到的.网络搜集(完善).工作日常讨论等,分为以下十个部分,供大家参考.如 ...
- 读入的字节都写入字节数组中_使用Java将文件读入字节数组的7个示例
读入的字节都写入字节数组中 嗨,大家好,Java程序员经常在现实世界中遇到编程问题,他们需要将文件中的数据加载到字节数组中,该文件可以是文本文件或二进制文件. 一个示例是将文件的内容转换为String ...
- esp8266接收到的数据如何存放到数组中_java零基础——数组
一维数组 存放多个数据的集合. 声明方式: 数据类型 变量名[ ] 或者 数据类型 [ ] 变量名 type 例如: int 一维数组初始化 动态初始化:声明数组时不放入元素 int 静态初始化:声明 ...
- C语言:有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数。如果不在数组中,打印“not found”。
/*有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数.如果不在数组中,打印"not found".*/#include<stdio ...
- 有15个数按从小到大的顺序存放在一个数组中。(折半查找)
有15个数按从小到大的顺序存放在一个数组中.输入一个数,要求用折半查找法找出该数是数组中第几个元素的值.如果该数不在数组中,输出"不在表中". 折半查找法的原理是:对于一个升序数组 ...
- 随机创建圆形、三角形或者矩形类的对象, 存放在数组中,并计算出每个形状的面积和周长
随机创建圆形.三角形或者矩形类的对象, 存放在数组中,并计算出每个形状的面积和周长 题目要求 解题思路 代码 形状类代码 圆形类代码 三角形类代码 矩形类代码 方法类代码 运行结果 题目要求 随机创建 ...
- c语言 有15个数按由大到小,C++ 有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。...
有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值.如果该数不在数组中,则输出"无此数". 以下是此题的[c++源代码],需要[c ...
- Java学习——已知有六个数字1,2,3,4,5,6 在要求将这六个数字中所有的组合存放到数组中 (1)必须是6位数 (2)每个位置上的数不能重复
这个题目,最笨的方法就是循环套循环 1,让每一层都输出1到6的数字,6层循环,就能得到6个1~6的数字 2,然后再给他们单行输出,就能拿到类似于123456 456123......的数字 3,再让他 ...
- S=S1 S2...Sn是一个长度为N的字符串,存放在一个数组中,编程将S改造之后输出:
S="S1 S2-Sn"是一个长度为N的字符串,存放在一个数组中,编程将S改造之后输出: 将S的所有第偶数个字符按照其原来的下标从大到小的次序放在S的后半部分: 将S的所有第奇数个 ...
最新文章
- 一文读懂5G:颠覆生活资费天价?
- Android移动开发之【Android实战项目】DAY5-MPAndroidChart可滑动折线图
- 数字类型及常用的数学函数(Python)
- 阿里云使用教程(试用一个月)
- jquery下载地址:https://code.jquery.com/jquery/ 影响范围: 版本低于1.7的jQuery过滤用户输入数据所使用的正则表达式存在缺陷,可能导致LOCA
- 安卓开发 登录用户信息缓存_在Linux上使用finger命令查询登录用户信息
- python visual studio pandas_pandas DataFrame索引行列的实现
- linux-vim-可视行模式
- mysql 优化 系统_MySQL 优化(一)
- Win10,安装ISE14.7
- 局域网文件共享手机访问电脑文件软件
- 一文详解Matlab中Psychtoolbox工具箱的安装方法
- 引领IT大迁徙 Emulex持续优化应用交付
- JAVA笔试面试题集锦05
- java的inputbox,Excel|VBA的inputbox函数和inputbox方法
- oracle select from dual,代码中误用select xxx from dual案例一则
- 监听Home键和返回键
- nacos-server1.4.1linux和windows版本下载
- vue中的路由懒加载
- 远程服务器创建文件,ftp创建远程服务器文件夹
热门文章
- Oracle Merge into
- 数字天堂陷入困境_陷入困境:焦虑的四个迹象可能会影响您的工作
- git查看提交者提交历史_如何维护您的提交者
- restlet使用_使用Restlet Framework构建联网汽车
- vm和openstack_最佳新OpenStack技巧和窍门
- 开源在线文档编辑工具_开源暑期实习,在线教育新工具等
- 建议 | 在中国不是程序猿,不建议你用序列化!
- 打卡学习 | Redis原理应用-线程IO模型
- 理论 | 教你彻底学会Java序列化和反序列化
- 算法与数据结构大系列 - NO.1 - 插入排序 1