最近系统学习了一遍python基础知识,学着学着灵光一闪,想到有没有快速掌握知识的方法。一般正常的逻辑是边看基础知识边练习案例,是一个书由厚变薄的过程。
不过现在节奏这么快,尤其是互联网公司,排除周末在家看孩子的时间,几乎没有时间和精力再进行深度学习,所以这篇文章就诞生了。
本文通过案例入手直接结合python知识点,可以快速掌握python基础知识点。
知识点:print 结合format()函数实现输出格式。
固定的公式:
print(<输出字符串模板>.format(<变量1>,<变量2>,<变量3>))
实现代码:
r = 25 # 圆的半径是25
area = 3.1415 * r * r #圆的公式
print(area)
print('{:.2f}'.format(area) ) # 只输出两位小数
新手易错点:
format前的字符串模板格式‘{:.2f}’ 经常会写错,其中一个{}对应一个format里面的参数。
核心思想:找到最后一个元素并输出。
知识点:
#输入文本
s=input('请输入一段文本:')
#计算输入内容的长度并赋值给i i=len(s)-1
#倒序循环输出
while i>=0:
print(s[i],end='')
i=i-1
实现效果:代码可以执行
随机产生一个数字,并判断输入的数字和这个随机数直到猜测成功。
知识点:
实现代码:
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)
效果图:代码可以执行
原来格式:
人生得意须尽欢,莫使金樽空对月。
天生我材必有用,千金散尽还复来。
输出效果:
人生得意须尽欢
莫使金樽空对月
天生我材必有用
千金散尽还复来
设计思路:
知识点:
txt = '''
人生得意须尽欢,莫使金樽空对月。
天生我材必有用,千金散尽还复来。
'''
#定义一个函数,实现将标点符号替换为\n
def 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)
按照上面的步骤实现代码。
首先,将文本内容统一为小写,使用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=0
for 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))
这个功能目的主要是替换函数 及 自顶向下的设计思想。
我们把上面几个步骤,每个步骤封装成一个函数,最后main()函数进行调用,其中提取图片的url路径为核心。
涉及到知识点:文件打开、读取及关闭。
def gethtmllines(htmlpath):
#文件打开
f=open(r,'htmlpath',encoding='utf-8')
#文件读取 ls=f.readlines()
#文件关闭
f.close()
return ls
源码:
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()
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()函数的拆分。
知识点:
实现代码:
import time
def bar(scale):
print('===========执行开始============')
for i in range(scale + 1):
a = '*' * i
b = '.' * (scale - i)
c = (i / scale) * 100
print('\r{:^3.0f}%[{}->{}]'.format(c, a, b), end = '')
time.sleep(0.1)
print('\n===========执行结束============')
效果图:从0%输出到100%
上面主要介绍了python的基础功能,建议大家熟练掌握,主要知识点如下:
Python 语法简洁而清晰,并具有丰富和强大的类库,可以轻易实现很多功能。对于初学编程者来说,Python 是最好的入门语言,没有之一。
用 Python 开发小工具,编写速度快且非常轻量级,实际工作当中,非常适合团队在测试资源不充足的情况下,快速开发测试工具。而且通常实现一个功能,Python 的代码量是别的语言如 Java 的 1/3-1/5。目前,越来越多大厂新工具的开发,技术栈都选择了 Python。因此,通过掌握 Python 自动化测试技术进入软件测试和质量保障领域,已经是测试行业新人的入行路径最佳选择。
如果你是想完成公司里面的自动化测试的整体部署,那么,Python可以帮你轻松实现:
想象一下,当别人还在苦逼点点点,忙忙碌碌,加班加点的时候,你能吃着火锅唱着歌,站着就把钱赚了……
你心里会是什么感受?
老板对你又会是什么感受?
如果文章对你有帮助的,请帮我点赞收藏,这样我才有动力继续更新下去!也欢迎加入我的软件测试交流扣扣群:10796 36098(技术交流和资源共享,广告勿扰),里面不定时分享测试资源,还有同行大佬一起交流学习!希望能够在自学的道路上帮到你。
2021测试开发面试题大全及答案(包含测试基础|接口测试|自动化测试…),289页
字节跳动测试岗面试挂在二面,我复盘总结了失败原因,决定再战一次
字节跳动学姐熬了一个月才完成这份内部软件测试开发手册,在GitHub标星27k,开源下载
基础很好?总结了43个工作中容易遗忘的 Linux 操作,倒要看看你能拿几分?