10分钟入门Python,花5小时写了7个案例和这篇文章值得收藏
目录
前言
案例名称
计算圆形面积
输入字符并倒序输出
猜数字游戏
按照诗句格式输出诗词
统计文本中出现次数最多的10个单词
web页面元素提取图片url路径信息
文本进度条
总结
软件测试人员为什么选择学习Python不是Java
收藏时间
前言
最近系统学习了一遍python基础知识,学着学着灵光一闪,想到有没有快速掌握知识的方法。一般正常的逻辑是边看基础知识边练习案例,是一个书由厚变薄的过程。
不过现在节奏这么快,尤其是互联网公司,排除周末在家看孩子的时间,几乎没有时间和精力再进行深度学习,所以这篇文章就诞生了。
本文通过案例入手直接结合python知识点,可以快速掌握python基础知识点。
案例名称
- 计算圆形面积
- 输入字符并倒序输出
- 猜数字游戏
- 按照诗句格式输出诗词
- 统计文本中出现次数最多的10个单词(txt)
- web页面元素提取
- 文本进度条
计算圆形面积
知识点:print 结合format()函数实现输出格式。
固定的公式:
print(<输出字符串模板>.format(<变量1>,<变量2>,<变量3>))
实现代码:
r = 25 # 圆的半径是25 area = 3.1415 * r * r #圆的公式 print(area) print('{:.2f}'.format(area) ) # 只输出两位小数
新手易错点:
format前的字符串模板格式‘{:.2f}’ 经常会写错,其中一个{}对应一个format里面的参数。
输入字符并倒序输出
核心思想:找到最后一个元素并输出。
知识点:
- 输入使用input函数
- 计算长度使用len()函数
- 输出函数结尾使用end=’‘,作用在输出的字符后方添加空字符串
#输入文本 s=input('请输入一段文本:') #计算输入内容的长度并赋值给i i=len(s)-1 #倒序循环输出 while i>=0: print(s[i],end='') i=i-1
实现效果:代码可以执行
猜数字游戏
随机产生一个数字,并判断输入的数字和这个随机数直到猜测成功。
知识点:
- 使用random.randint()函数生成一个随机数字
- while()循环,当未满足条件一直执行,满足条件break跳出循环
- 输入数字eval函数结合input,将字符串类型转换成整数
- if 三分支条件判断,if elif else 格式
实现代码:
import random #生成随机数 a=random.randint(0,1000) #统计次数 count=0 while True: number=eval(input('请输入0到1000之间的一个数:')) count=count+1 #判断比较两个数 if number>a: print('输大了') elif number<a: print('输小了') else: print('猜对了') break print('猜了次数是:',count)
效果图:代码可以执行
按照诗句格式输出诗词
原来格式:
人生得意须尽欢,莫使金樽空对月。
天生我材必有用,千金散尽还复来。
输出效果:
人生得意须尽欢
莫使金樽空对月
天生我材必有用
千金散尽还复来
设计思路:
- 将所有标点符号替换为\n
- 文本居中对齐显示
知识点:
- 替换函数line.replace(变量名,要替换的值)
- 居中对齐line.center(宽度)
- 函数调用,将文本变量txt传入替换函数linesplit中
txt = ''' 人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。 ''' #定义一个函数,实现将标点符号替换为\ndef linesplit(line):plist = [',', '!', '?', ',', '。', '!', '?'] for p in plist: line=line.replace(p,'\n')return line.split('\n') linewidth = 30 # 预定的输出宽度#定义一个函数,实现居中对齐 def lineprint(line): global linewidth print(line.center(linewidth)) #调用函数newlines=linesplit(txt) for newline in newlines: lineprint(newline)
统计文本中出现次数最多的10个单词
我们来看看实现效果
步骤拆分:
- 首先,将文本内容统一为小写,使用lower()函数
- 再次,将文本中特殊字符替换为空格,replace()函数
- 按空格将文本进行切割,使用split()函数
- 统计单词出现的次数
- 按频率从大到小排序 sort()函数
- 按照固定格式输出 ,使用format()函数
按照上面的步骤实现代码。
首先,将文本内容统一为小写,使用lower()函数:
def gettxt(): #读取文件 txt=open('hamlet.txt','r').read() txt=txt.lower()
再次,将文本中特殊字符替换为空格,replace()函数:
for ch in ''!"#$%&()*+,-./:;<=>?@[\]^_‘{|}~':' txt=txt.replace('') return txt
按空格将文本进行切割,使用split()函数:
hmlttxt=gettxt() words=hmlttxt.split()
统计单词出现的次数:
counts=0for word in words: counts[word]=counts.get(word,0)+1 #对word出现的频率进行统计,当word不在words时,返回值是0,当word在words中时,返回+1,以此进行累计计数
按频率从大到小排序 items()sort()排序函数:
items=list(counts.items())items.sort(key=lambada x:x[1],reverse=True)
上面的x可以是任意字母,reverse=True倒序排序,默认升序。
按照固定格式输出 ,使用format()函数:
for i in range(10) word,count=item[i] print('{0:<10}{1:>5}'.format(word,count))
完整代码:
# 首先,将文本内容统一为小写,使用lower()函数 def gettxt(): txt=open('hamlet.txt','r').read() txt=txt.lower() # 将文本中特殊字符替换为空格,replace()函数 for ch in '!"#$%&()*+,-./:;<=>?@[\]^_‘{|}~': txt=txt.replace(ch,'') return txt # 按空格将文本进行切割,使用split()函数 hamlettxt=gettxt() words=hamlettxt.split() # 统计字数counts={} for word in words: counts[word]=counts.get(word,0)+1 # 按频率从大到小排序 sort()函数 items=list(counts.items()) items.sort(key=lambda x:x[1],reverse=True) # 按照固定格式输出 ,使用format()函数for i in range(10): word, count=items[i] print("{0:<10},{1:>5}".format(word,count))
web页面元素提取图片url路径信息
这个功能目的主要是替换函数 及 自顶向下的设计思想。
实现的效果:
对整个功能拆分为如下过程:
- 首先,提取页面所有元素
- 其次,提取图片的url路径
- 然后,将路径信息输出显示
- 最后,将这些路径保存到文件中
我们把上面几个步骤,每个步骤封装成一个函数,最后main()函数进行调用,其中提取图片的url路径为核心。
软件测试摸鱼群:321255410【备注777】
- 提取页面所有元素
涉及到知识点:文件打开、读取及关闭。
def gethtmllines(htmlpath): #文件打开 f=open(r,'htmlpath',encoding='utf-8') #文件读取 ls=f.readlines() #文件关闭 f.close() return ls
- 提取图片的url路径
源码:
知识点:
- 列表形式存放截取后的地址
- 列表的切割,split()函数
def geturl(ls): urls=[] for line in ls: if 'img' in line: url=line.split('src=')[-1].split('"')[1] urls.append(url)
- 将路径信息输出显示
知识点:for循环将路径信息输出。
for循环将路径信息输出def show(urls): count=0 for url in urls: print('第{:2}个url{}'.format(count,url)) count+=1
- 将这些路径保存到文件中
知识点:文件的写入。
def save(filepath,urls): f=open(filepate,'w') for url in urls: f.write(url+'\n') f.close()
- main()函数,将上面的函数进行组合
def main(): inputfile = 'nationalgeographic.html' outputfile = 'nationalgeographic-urls.txt' htmlLines = getHTMLlines(inputfile) imageUrls = extractImageUrls(htmlLines) showResults(imageUrls) saveResults(outputfile, imageUrls)
最终代码:python
# Example_8_1.py #1. 按行读取页面所有内容 def getHTMLlines(htmlpath): f = open(htmlpath, "r", encoding='utf-8') ls = f.readlines() f.close() return ls#2. 提取http路径 def extractImageUrls(htmllist):urls = [] for line in htmllist: if 'img' in line: url = line.split('src=')[-1].split('"')[1] print if 'http' in url: urls.append(url) return urls#3. 输出链接地址 def showResults(urls): count = 0 for url in urls: print('第{:2}个URL:{}'.format(count, url)) count += 1#4. 保存结果到文件 def saveResults(filepath, urls): f = open(filepath, "w") for url in urls: f.write(url+"\n") f.close() def main(): inputfile = 'nationalgeographic.html' outputfile = 'nationalgeographic-urls.txt' htmlLines = getHTMLlines(inputfile) imageUrls = extractImageUrls(htmlLines) showResults(imageUrls) saveResults(outputfile, imageUrls)main()
一句话总结:这个小案例可熟练掌握文件的读、写操作,可以体会函数的思想以及split()函数的拆分。
文本进度条
知识点:
- 引入time库
- print()输出格式
- 其中运用到了for i in range():循环,在循环末尾通过format函数,将其内的值赋予槽中。
实现代码:
import timedef bar(scale):print('===========执行开始============')for i in range(scale + 1):a = '*' * ib = '.' * (scale - i)c = (i / scale) * 100print('\r{:^3.0f}%[{}->{}]'.format(c, a, b), end = '')time.sleep(0.1)print('\n===========执行结束============')
效果图:从0%输出到100%
总结
上面主要介绍了python的基础功能,建议大家熟练掌握,主要知识点如下:
- input函数实现输入
- print结合format()函数对结果进行输出
- 计算字符串长度len()函数
- 使用random.randint()函数生成随机数字
- eval函数结合input,将字符串类型转换成整数
- if 三分支条件判断,if elif else 格式
- 替换函数line.replace(变量名,要替换的值)
- 文本内容统一为小写,使用lower()函数
- 文本中特殊字符替换为空格,replace()函数
- 文本进行切割,使用split()函数
- 从大到小排序 sort()函数
软件测试人员为什么选择学习Python不是Java
Python 语法简洁而清晰,并具有丰富和强大的类库,可以轻易实现很多功能。对于初学编程者来说,Python 是最好的入门语言,没有之一。
用 Python 开发小工具,编写速度快且非常轻量级,实际工作当中,非常适合团队在测试资源不充足的情况下,快速开发测试工具。而且通常实现一个功能,Python 的代码量是别的语言如 Java 的 1/3-1/5。目前,越来越多大厂新工具的开发,技术栈都选择了 Python。因此,通过掌握 Python 自动化测试技术进入软件测试和质量保障领域,已经是测试行业新人的入行路径最佳选择。
如果你是想完成公司里面的自动化测试的整体部署,那么,Python可以帮你轻松实现:
- UI自动化测试(Python+Selenium等)
- 接口测试(Python requests等)
- 性能测试(Python Locust等)
- 安全性测试(Python Scapy等)
- 兼容性测试(Python+Selenium等)
想象一下,当别人还在苦逼点点点,忙忙碌碌,加班加点的时候,你能吃着火锅唱着歌,站着就把钱赚了……
你心里会是什么感受?
老板对你又会是什么感受?
收藏时间
python自动化测试专属视频、Python自动化详细资料、全套面试题等知识内容。大家有需要可以加入我的软件测试摸鱼群:321255410【备注777】,希望能够在自学的道路上帮到你。
- ✔️如果这篇文章对你有用,记得点个赞
10分钟入门Python,花5小时写了7个案例和这篇文章值得收藏相关推荐
- 【Python入门教程】教你如何10分钟入门Python!(超详细)
前言:我们在职业生涯中都需要通过各种方式来提升自身的专业能力,在这里我们建了一个Q群[856833272]欢迎大家来交流学习,更多资料免费分享还有免费直播课领取!学习路上有伙伴,学习路上不孤单!(也可 ...
- 如何写一个优质高效的网络项目实施方案?这篇文章值得收藏!
随着互联网技术的不断发展,网络项目的实施成为了许多企业和组织的重要任务.网络项目实施方案是指在进行网络项目实施时,为了保障项目的顺利进行,达到项目目标和交付要求,所制定的详细计划和操作指南.一个好的网 ...
- 为了让你们进阶 Canvas,我花 7 小时写了 3 个有趣的小游戏!!!
点击上方 前端瓶子君,关注公众号 回复算法,加入前端编程面试算法每日一题群 前言 大家好,我是林三心,相信大家看了我前一篇canvas入门文章为了让她10分钟入门canvas,我熬夜写了3个小项目和这 ...
- 10分钟学会python写游戏脚本!Python其实很简单
前言 最近在玩儿公主连结,之前也玩儿过阴阳师这样的游戏,这样的游戏都会有个初始号这样的东西,或者说是可以肝的东西. 当然,作为一名程序员,肝这种东西完全可以用写代码的方式帮我们自动完成.游戏脚本其实并 ...
- 教程 | 10分钟入门简笔画(彩色小插画)
你好,色彩. BY:铃铛子 马克笔的笔触感觉: BY:铃铛子 由于大家写字的时候,为了笔锋,会起笔停顿一下,落笔再停顿一下,但是运行马克笔的时候不要这样,起笔确定了就画线,落笔除非必要,否则不停顿. ...
- 教程 | 10分钟入门禅绕画 3
禅绕装饰画是一种意识流装饰画,也是一种有趣随性的涂鸦,笔触可以天马星空随意走动. 禅绕画的构图技巧:重复.对称.均衡.重叠.勾线.肌理等.所有技巧的组合可以使得画面节奏和谐.疏密有度.节奏韵律恰如其分 ...
- 零基础小白10分钟用Python搭建小说网站!网友:我可以!
都说Python什么都能做,本来我是不信的!直到我在CSDN站内看到了一件真事儿:一位博主贴出了自己10分钟用Python搭建小说网站的全过程!全程只用了2步操作,简直太秀了!!-- 第一步:爬取小说 ...
- 10分钟入门 ANSA API
扫描下方二维码关注我的微信公众号 - CAE软件二次开发Lab阅读全文! 文章目录 10分钟入门 ANSA API Script Editor (脚本编辑器) Modules(模块) 在ANSA中 ...
- 教程 | 10分钟入门简笔画12(创意小插画)
我的一家 很多宝宝说想学创作,今天跟大家分享简笔画中的联想小插画. 所谓联想小插画,就是想到哪里画到哪里.首先确定一个主题,抓住主要元素,然后用装饰性字体.元素.花边来丰富画面.我尝试创作了一张My ...
- Python Train_出乎意料的简单!10分钟用python建立人工智能预测模型
介绍 鉴于Python在过去几年中的兴起及其简洁性,对于数据科学领域的Python学家意义重大.这篇文章会用最容易的方式引导你更快地构建第一个预测模型. 出乎意料的简单!10分钟用python进行人工 ...
最新文章
- oracle union 最多_用户来稿:我就是那个在优买计划赚钱最多的男人
- 《从paxos到zookeeper》学习笔记(一)
- 如何发现 Redis 热点 Key ,解决方案有哪些?
- knot in ship
- Spring整合web开发
- jvm 宕机 打印jvm_通过入侵JVM打印阵列
- Java调用ElasticSearch 7.2.1 保存、统计、多字段分组聚合
- teamviewer设备数量上限怎么解决_支小蜜刷脸支付设备解决方案,支小蜜刷脸支付设备怎么使用...
- 谁将拥有移动互联网的下一个机会?…
- sqlserver备份还原丢失dbo_sqlserver数据库的备份与恢复sql实现
- iso12233测试方法_ISO12233图像分辨率测试卡的使用方法
- 分布式架构设计原则:分布式架构的基本理论CAP、BASE以及应用
- 微信小程序自定义tab切换组件
- [1096]消除ADB错误“more than one device and emulator”的方法
- 程序开发心理学第四篇
- U盘启动模式USB-HDD/HDD+/ZIP/ZIP+/CDROM/FDD的区别
- 如何查看交换机型号(厂商)
- 【LOJ574】「LibreOJ NOI Round #2」黄金矿工
- 机器学习入门(五):集成学习Bagging,Boosting,RandomForest和GridSearchCV参数调优
- oracle查看锁定任务
热门文章
- 【Python入门教程】教你如何10分钟入门Python!(超详细)