都9102年了,是时候该学会python了
乙醇 创建于 9 months 之前
最后更新: less than a minute 之前
阅读数: 784
写在2019年的尾巴。
2019年11月的编程语言排行榜上,python排名第3,前5名的排名分别是
- java
- c
- python
- c++
- c#
python是排名前5的语言里唯一的动态脚本语言,而且python是2007/2010/2018年的年度编程语言,该语言的流程程度不言而喻。
对测试同学来说,学会一门编程语言基本上属于必备技能了,这点应该争议不大了。python应该是众多编程语言里比较平易近人的一门,所以是推荐大家优先学习的。
另外前几年看到过一本书,叫做<
关于python在测试中的应用,这里就不一一列举了。在这里给大家推荐一些不错的学习资源和线路图,希望对大家有所帮助。
众所周知,掌握一门语言不在于学,而在于练,所以测试同学学python不能仅仅停留在看语法学关键字的层面,更重要的是要动手去敲。
step 1: 动手敲代码去学习语法
尽管在掌握一门语言之后,语法就不是特别重要了,但在学习语言的初期,语法却是大多数同学的拦路虎。
看语法始终是纸上得来终觉浅,比如开车,学了交规做题得了一百分不代表你能把车开好。语法还是一边练一边学比较好。
学习python语法推荐《learn python the hard way》的最新版,中文翻译过来是笨方法学python。
这本书深入浅出,每一章都有完整的例子,你可以先不看具体的解释,而只是把里面的代码敲一遍,运行起来,解决完各种缩进,拼写错误问题之后,python语法就大致可以掌握了。
如果一遍掌握不了,那就再敲一遍吧。
我自己是敲过一遍的,开始的十几节打印各种字符非常的枯燥,后面会稍微好一些。一边敲一遍看书上的解释,对以后学习其他语言都很有帮助。
另外书的最后几个例子里用到了单元测试,对测试同学来说应该是可遇不可求的相当完美的学习资料了。
step 2: 用语言去解决问题
测试同学平时用到python的机会可能不多,那么我们就需要自己创造机会去使用它。
今天正好看到一个项目挺有意思的,推荐给大家做练习使用。
项目地址: https://github.com/zhiwehu/Python-programming-exercises
这里面列举了100个可以用python编程去解决的问题,分为3个难度
- Level 1 Beginner means someone who has just gone through an introductory Python course. He can solve some problems with 1 or 2 Python classes or functions. Normally, the answers could directly be found in the textbooks. 完全小白。
- Level 2 Intermediate means someone who has just learned Python, but already has a relatively strong programming background from before. He should be able to solve problems which may involve 3 or 3 Python classes or functions. The answers cannot be directly be found in the textbooks. 有其他编程经验的python初学者。
- Level 3 Advanced. He should use Python to solve more complex problem using more rich libraries functions and data structures and algorithms. He is supposed to solve the problem using several Python standard packages and advanced techniques. python进阶使用者。
下面这道题就是属于level 1完全小白难度的。
Write a program which will find all such numbers which are divisible by 7 but are not a multiple of 5,
between 2000 and 3200 (both included).
The numbers obtained should be printed in a comma-separated sequence on a single line.
大意是写代码找到2000-3200之间可以被7整除但不能被5整除的数。
比较无聊,但是简单明了,小白完全可以挑战一下。
上面这道题的参考答案, python2实现的,python3应该有些区别
l=[]
for i in range(2000, 3201):
if (i%7==0) and (i%5!=0):
l.append(str(i))
print ','.join(l)
用到了
- for 循环
- range
- if 条件判断
- % 整除,python3可能不太一样
- list以及list.append()
- str强制类型转换
- string.join()
题目虽然简单,但用到的东西不少,可以帮助大家融会贯通。
再看一道level 2的题目
Write a program that accepts a comma separated sequence of words as input and prints the words in a comma-separated sequence after sorting them alphabetically.
Suppose the following input is supplied to the program:
without,hello,bag,world
Then, the output should be:
bag,hello,without,world
大意是输入一组以逗号分隔的单词,对其进行排序并打印
python2版本的参考答案。
items=[x for x in raw_input().split(',')]
items.sort()
print ','.join(items)
这里用到了列表的排序和列表生成式(列表推导式),参考答案也是比较有python味道的。
把level1和level2做完,基本上就可以进入下一个阶段了。
step 3: 在工作中使用语言
python在测试工作中的应用很多。
- 自动化脚本:比如自动化准备测试数据等
- 接口测试:用python去调用接口并进行功能测试
- ui自动化测试:比如python+selenium/appium
- Fuzz testing
- 性能测试:比如locust
- 结合机器学习和神经网络,还有更多......
step 0: 简单的英文阅读能力
杀了个回马枪。
我记得很多同学在学习一些资料的时候都陷入了英语阅读从入门到放弃的轮回。
上面推荐的资源都是最好需要有一些英文阅读能力的,学好英文能让你有更大的发展空间,所以多投入一些时间,相信后面是有回报的。
以上就是python学习资料的测试良心推荐版本,大家有更好更容易沉浸式学习的资源,欢迎留言讨论。