python面试项目案例
1.python第三方模块下载
2.scrapy框架爬虫
3.python使用matplotlib模块绘制折线图相关参数
4.numpy读取本地数据
5.lambda函数用法
6. list,sort,lambda模块区别联系
7.爬虫requests模块解析
8.爬虫bs4,BeautifulSoup解析
9.模拟器打开开发者模式
10. d.get()用法解析
d[i] = d.get(i,0)+1
11.jieba模块用法
12.strip(),split()函数用法
13.chr()函数用法
14.python 从其他文件夹下调用函数
15.统计文件中的词频,并排序
16.输出文件主要内容并统一格式(strip(),split(),sort(),format()
17.提纯文件内容,统一修改格式
18.星座不同格式转换
19.《三国演义》词云统计
20.文件关键词输出排序
1.python第三方模块下载
Windows:
windows系统
进入命令行窗口 win+r
1.pip install 模块 国外镜像源 下载速度慢
2.pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 模块 国内清华镜像源 下载速度快
3.http://pypi.douban.com/simple/ 模块 国内豆瓣镜像源 下载速度快
4.https://pypi.mirrors.ustc.edu.cn/simple/ 模块 阿里云
5.https://pypi.tuna.tsinghua.edu.cn/simple/ 中科大
如果你那儿的网络总是不给力,又不想每次手动添加,可以加在配置文件里一劳永逸。
2.scrapy框架爬虫
1.定位到相应文件夹 Windows: windows系统 进入命令行窗口 win+r
2.scrapy startproject 项目
3.scrapy genspider 名称 www.xxx.com
基于CrawlSpider爬虫父类的创建
scrapy genspider -t crawl 名称 www.xxx.com分布式爬虫:执行工程 scrapy runspider xxx.py
3.python使用matplotlib模块绘制折线图相关参数
4.numpy读取本地数据
np.loadtxt(fname,dtype=np.float,delimiter=None,skiprows=0,usecols=None,unpack=False)
5.lambda函数用法
个人公众号 yk 坤帝
学习更多硬核知识。f = open('命运1.txt','r')
txt = f.read()
d = {}
for i in txt:if i not in ',。?!—《》:‘’“”()□': d[i] = d.get(i,0) + 1
ls = list(d.items())
ls.sort(key=lambda x:x[1],reverse = True)
print("{}:{}".format(ls[0][0],ls[0][1]))f.close()
命运1.txt文件在我的资源中下载
6. list,sort,lambda模块区别联系
list.sort(key=lambda x:x[1],reverse = True)
首先说一下 sort函数
sort函数是一个专门对列表进行排序的一个函数,下面是官方的解释
我的理解是,按照列表维度(指数组中第0,1,2个元素)进行排序,默认为从小到大,'reverse=True’则意味着从大到小。
关于维度,形象地理解如下:
list = [('i','he',5), ('q', 'I', 3), ('p', 'they', 1)]
中,
x:x[0]中,
x表示列表中的元素,
x[0]表示列表中的元素的索引为0的元素
key=lambda x:x[0]
相当于对’i’, ‘q’, 'p’进行排序,
其中x可以换成其他变量。x:x[1]***
那这个key=lambda x: x[1] 是什么意思呢? 其实可以把lambda看作一个隐函数,在这里可以不用管它,记得有这个就可以,
后面的x: x[1] 为对前面的对象中的第二维数据(即value)的值进行排序。
7.爬虫requests模块解析
# 调用requests模块
个人公众号 yk 坤帝
后台回复 面试项目整理 获取整理资源import requests
# 获取网页源代码,得到的res是response对象。
res = requests.get('https://localprod.pandateacher.com/python-manuscript/crawler-html/spider-men5.0.html')
# 检测请求是否正确响应
print(res.status_code)
res.encoding=res.apparent_encoding
# 正确响应,进行读写操作
# 新建一个名为book的html文档,你看到这里的文件没加路径,它会被保存在程序运行的当前目录下。
# 字符串需要以w读写。你在学习open()函数时接触过它。
if res.status_code == 200:file = open('book1.html','wb')# res.text是字符串格式,把它写入文件内。file.write(res.content) # 关闭文件file.close()
8.爬虫bs4,BeautifulSoup解析
from bs4 import BeautifulSoupres = requests.get('https://localprod.pandateacher.com/python-manuscript/crawler-html/spder-men0.0.html')print(res.status_code)
soup = BeautifulSoup(res.content,'html.parser')
#soup输出的内容于text一样,但格式不一样
#(soup)
item = soup.find('div')#print(type(item))#print(item)items = soup.find_all('div')#print(items)res = requests.get('https://localprod.pandateacher.com/python-manuscript/crawler-html/spider-men5.0.html')soup = BeautifulSoup(res.text,'html.parser')items = soup.find_all('div',class_='books')#print(items)#print(type(items))for item in items:#print('想找的数据都包含在这里了:\n',item)#print(type(item))kind = item.find('h2')title = item.find(class_='title')bref = item.find(class_='info')print(kind.text,'\n',title.text,'\n',title['href'],'\n',bref.text)print(type(kind),type(title),type(bref))
9.模拟器打开开发者模式
模拟器打开开发者模式
appium连接模拟器进行自动化测试时,需要使用adb来连接模拟器,具体操作步骤:
打开模拟器
在cmd中输入:adb devices
此时出现的列表中找不到对应的安卓设备
在cmd中输入:adb connect 127.0.0.1:5555(5555为模拟器对应的端口号,此处为雷电模拟器)
再次输入:adb devices,列表中找到对应模拟器表面连接成功
下面是其他几款流行的模拟器单位端口:
adb 命令连接模拟器
天天模拟器端口 6555
adb connect 127.0.0.1:6555海马模拟器
adb connect 127.0.0.1:26944mumu模拟器 6.0
adb connect 127.0.0.1:7555逍遥游模拟器
adb connect 127.0.0.1:21503夜神模拟器
adb connect 127.0.0.1:62001
10. d.get()用法解析
d[i] = d.get(i,0)+1
f = open('命运.txt','r')
txt = f.read()
d = {}
for i in txt:if i not in '\n':d[i] = d.get(i,0)+1
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True) # 此行可以按照词频由高到低排序
for k in range(10):print(ls[k][0],end = '')f.close()
d[i] = d.get(i,0)+1
d[i]代表字典d中符号i对应的键值
d.get()有两个参数时,理解为当i对应键值不存在时返回第二个参数作为键值,在本例中代表当i键值不存在时,返回0为i的键值,加1代表每次遍历到i键值加一,第二次遍历到i时,d.get(i,0)返回1,以此类推。
第三次遍历到i时,d.get(i,0)返回2,对应字典中i的键值
11.jieba模块用法
import jieba
s = input("请输入一个字符串")
n = len(s)
m = len(jieba.lcut(s))
print("中文字符数为{},中文词语数为{}。".format(n, m))
12.strip(),split()函数用法
ls = line.strip(’\n’).split(’,’)
strip() 方法用于移除字符串头尾指定的字符(默认为空格)。
line.strip(’\n’) 移除换行符并返回列表。
split()通过指定分隔符对字符串进行切片。
line.strip(’\n’).split(’,’) 通过逗号进行切片。
f = open('sensor.txt','r',encoding = 'utf-8')
fo = open('earpa001.txt','w')
lines = f.readlines()
for line in lines:ls = line.strip('\n').split(',')if ls[1] == ' earpa001':fo.write('{},{},{},{}\n'.format(ls[0],ls[1],ls[2],ls[3]))f.close()
fo.close()
13.chr()函数用法
键盘输入一个9800到9811之间的正整数n,作为Unicode编码,把n-1、n和n+1三个Unicode编码对应字符按照如下格式要求输出到屏幕:宽度为11个字符,加号字符+填充,居中。
例如:键盘输入:9802
屏幕输出:++++???++++
n = eval(input("请输入一个数字:"))
print("{:+^11}".format(chr(n-1)+chr(n)+chr(n+1)))
14.python 从其他文件夹下调用函数
import sys
import os
o_path = os.getcwd()
sys.path.append(o_path)
from 代理池 import ip代理池
两个文件夹在同一根文件夹下
- o_path = os.getcwd() 获得根文件夹的路径
- sys.path.append(o_path) 添加路径
- from 代理池 import ip代理池
15.统计文件中的词频,并排序
1.对“命运. txt”文件进行字符频次统计,输出频次最高的中文字符(不包含标点符号)及其频次,字符与频次之间采用英文冒号”:”分隔,示例格式如下:
理:224.
2.对“命运. txt”文件进行字符频次统计,按照频次由高到低,屏幕输出前10个频次最高的字符,不包含回车符,字符之间无间隔,连续输出,示例格式如下:
理斯卫… (后略,共10个字符)
3.对“命运. txt”文件进行字符频次统计,将所有字符按照频次从高到低排序,字符包括中文、标点、英文等符号,但不包含空格和回车。将排序后的字符及频次输出到考生文件夹下,文件名为“命运-频次排序. txt”。字符与频次之间采用英文冒号”:”分隔,各字符之间采用英文逗号”,”分隔,参考CSV格式,最后无逗号,文件内部示例格式如下:
理:224,斯:120,卫:100
个人公众号 yk 坤帝
后台回复 面试项目整理 获取整理资源f = open('命运.txt','r')
txt = f.read()
d = {}
for i in txt:if i not in ",。?!《》【】“”‘’":d[i] = d.get(i,0)+1
ls = list(d.items())
ls.sort(key=lambda x:x[1],reverse = True)
print("{}:{}".format(ls[0][0],ls[0][1]))
f.close()
个人公众号 yk 坤帝
后台回复 面试项目整理 获取整理资源f = open('命运.txt','r')
txt = f.read()
d = {}
for i in txt:if i not in '\n':d[i] = d.get(i,0)+1
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True) # 此行可以按照词频由高到低排序
for k in range(10):print(ls[k][0],end='')
f.close()
个人公众号 yk 坤帝
后台回复 面试项目整理 获取整理资源f = open('命运.txt','r')
fi = open('命运-频次排序.txt','w')
txt = f.read()
d = {}
for i in txt:if i not in '\n':d[i] = d.get(i,0)+1
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True) # 此行可以按照词频由高到低排序
s=""
for k in ls:s+="{}:{}".format(k[0],k[1])+','
fi.write(s[:-1])
f.close()
fi.close()
16.输出文件主要内容并统一格式(strip(),split(),sort(),format()
下面所示为一套由公司职员随身佩戴的位置传感器采集的数据,文件名称为“sensor.txt”,其内容示例如下:
2016/5/31 0:05, vawelon001, 1, 1
2016/5/31 0:20, earpa001, 1,1
2016/5/31 2:26, earpa001,1, 6
… (略)
第一列是传感器获取数据的时间,第二列是传感器的编号,第三列是传感器所在的楼层,第四列是传感器所在的位置区域编号。
1-1,5
1-4, 3
… (略)
含义如下:
第1行“1-1,5”中1-1表示1楼1号区域,5表示出现5次;
第2行“1-4,3”中1-4表示1楼4号区域,3表示出现3次;
1.读入sensor. txt文件中的数据,提取出传感器编号为earpa00的所有数据,将结果输出保存到“earpa001. txt”文件。输出文件格式要求:原数据文件中的每行记录写入新文件中,行尾无空格,无空行。参考格式如下:
2016/5/31 7:11, earpa001,2, 4
2016/5/31 8:02, earpa001,3, 4
2016/5/31 9:22, earpa001,3,4
… (略)
f = open('sensor.txt','r',encoding='utf-8')
fo = open('earpa001.txt','w')
ls = f.readlines()
for line in ls:lt = line.strip('\n').split(',')if lt[1] == ' earpa001':fo.write('{},{},{},{}\n'.format(lt[0],lt[1],lt[2],lt[3]))
f.close()
fo.close()
2.读入“earpa001. txt” 文件中的数据,统计earpa001对应的职员在各楼层和区域出现的次数,保存到“earpa001 _count. txt” 文件,每条记录一 -行,位置信息和出现的次数之间用英文半角逗号隔开,行尾无空格,无空行。参考格式如下。
f = open('earpa001.txt','r',encoding = 'utf-8')
fo = open('earpa001_count.txt','w')
ls = f.readlines()
d = {}
for line in ls:lt = line.strip('\n').split(',')key = lt[2]+'-'+lt[3]d[key] = d.get(key,0)+1
ls = list(d.items())
ls.sort(key=lambda x:x[1], reverse=True) # 该语句用于排序
for k in ls:fo.write('{},{}\n'.format(k[0],k[1]))
f.close()
fo.close()
17.提纯文件内容,统一修改格式
《论语》是儒家学派的经典著作之一,主要记录了孔子及其弟子言行。这里给出了一个网络版本的《论语》,文件名称为“论语.txt”,其内容采用逐句“原文”与逐句“注释”相结合的形式组织,通过【原文】标记《论语》原文内容,通过【注释】标记《论语》注释内容,具体文件格式框架请参考“论语.txt”文件。
1.提取“论语.txt”文件中的原文内容,输出保存到考生文件夹下,文件名为“论语-原文.txt”。具体要求:仅保留“论语.txt”文件中所有【原文】标签下面的内容,不保留标签,并去掉每行行首空格及行尾空格,无空行。原文小括号及内部数字是源文件中注释项的标记,请保留。示例输出文件格式请参考“论语-原文-输出示例.txt”文件。注意:示例输出文件帮助考生了解输出格式,不作它用。
fi = open("论语.txt", 'r')
fo = open("论语-原文.txt", 'w')
flag = False
for line in fi:if '【原文】' in line:flag = Truecontinueif '【注释】' in line:flag = Falseline = line.strip(" \n")if flag == True:if line:fo.write(line+'\n')
fi.close()
fo.close()
2.对“论语-原文.txt”或“论语.txt”文件进一步提纯,去掉每行文字中所有小括号及内部数字,保存为“论文-提纯原文.txt”文件。示例输出文件格式请参考“论语-提纯原文-输出示例.txt”文件。注意:示例输出文件帮助考生了解输出格式,不作它用。
```python
fi = open("论语-原文.txt", 'r')
fo = open("论语-提纯原文.txt", 'w')
for line in fi:for i in range(23):line=line.replace('('+str(i)+')','')fo.write(line)
fi.close()
fo.close()
18.星座不同格式转换
二千多年前希腊的天文学家希巴克斯命名十二星座,它们是水瓶座、双鱼座、白羊座、金牛座、双子座、巨蟹座、狮子座、处女座、天秤座、天蝎座、射手座、摩羯座。给出一个CSV文件(PY301-SunSign.csv),内容示例如下:
序号,星座,开始月日,结束月日,Unicode
1,水瓶座,120,218,9810
2,双色座,219,320,9811
3,白羊座,321,419,9800
4,金牛座,420,520,9801
5,双子座,521,621,9802
…(略)
以第1行为例,120表示1月20日,218表示2月18日,9810是Unicode码。
1.读入CSV文件中数据,获得用户输入。根据用户输入的星座名称,输出此星座的出生日期范围。
参考输入和输出示例格式如下:
请输入星座中文名称(例如,双子座):双子座
双子座的生日位于521-621之间
个人公众号 yk 坤帝
学习更多硬核知识。f = open('PY301-SunSign.csv','r')
ls = []
s = input('请输入星座中文名称(例如,双子座):')
for line in f.readlines():ls = line.strip('\n').split(',')if ls[1] == s:print("{}的生日位于{}-{}之间".format(ls[1],ls[2],ls[3]))
f.close()
2.读入CSV文件中数据,获得用户输入。用户键盘输入一组范围是1-12的整数作为序号,序号间采用空格分隔,以回车结束。屏幕输出这些序号对应的星座的名称、字符编码以及出生日期范围,每个星座的信息一行。本次屏幕显示完成后,重新回到输入序号的状态。
参考输入和输出示例格式如下:
请输入星座序号(例如,5):5 10
双子座(9802)的生日是5月21日至6月21日之间
天蝎座(9807)的生日是10月24日至11月22日之间
请输入星座序号(例如,5):
个人公众号 yk 坤帝
学习更多硬核知识。f = open('PY301-SunSign.csv','r')
ls = []
ls = f.readlines()
while True:s = input('请输入星座序号(例如,5):')for i in s.split():for line in ls:lt = line.strip('\n').split(',')if i == lt[0]:print("{}({})的生日是{}月{}日至{}月{}日之间".format(lt[1],lt[4],lt[2][:-2],lt[2][-2:],lt[3][:-2],lt[3][-2:]))
f.close()
3.在PY301-3.py文件中修改代码,对键盘输入的每个序号做合法性处理。如果输入的数字不合法,请输出“输入星座编号有误!”,継纹输出后续信息,然后重新回到输入序号的状态。
参考输入和输出示例格式如下:
请输入星座序号(例如,5):5 14 11
双子座(9802)的生日是5月21日至6月21日之间
输入星座序号有误!
射手座(9808)的生日是11月23日至12月21日之间
请输入星座序号(例如,5):
个人公众号 yk 坤帝
学习更多硬核知识。f = open('PY301-SunSign.csv','r')
ls = []
ls = f.readlines()
while True: s = input('请输入星座序号(例如,5):')for i in s.split():if 0<int(i)<13:flag = Trueelse:flag = Falsefor line in ls:lt = line.strip('\n').split(',')if i == lt[0]:print("{}({})的生日是{}月{}日至{}月{}日之间".format(lt[1],lt[4],lt[2][:-2],lt[2][-2:],lt[3][:-2],lt[3][-2:]))breakif flag == False:print("输入星座序号有误!")
f.close()
19.《三国演义》词云统计
《三国演义》是中国古典四大名著之一,曹操是其中主要人物,考生文件夹文件data.txt给出《三国演义》简介。
1.用Python语言中文分词第三方库jieba对文件data.txt行分词,并将结果写入文件out.txt,每行一个词,例如:
内容简介
编辑
整个
故事
在
东汉
…
个人公众号 yk 坤帝
后台回复 面试项目整理 获取整理资源
import jieba
f = open('data.txt','r')
lines = f.readlines()
f.close()
f = open('out.txt','w')
for line in lines: line = line.strip(' ') #删除每行首尾可能出现的空格wordList = jieba.lcut(line) #用结巴分词,对每行内容进行分词f.writelines('\n'.join(wordList)) #将分词结果存到文件out.txt中
f.close()
2.对文件out.txt进行分析,打印输出曹操出现次数。
import jieba
f = open('out.txt','r') #以读的方式打开文件
words = f.readlines()
f.close()
D={}
for w in words: #词频统计D[w[:-1]]=D.get(w[:-1],0) + 1
print("曹操出现次数为:{} ".format(D["曹操"]))
20.文件关键词输出排序
data.txt是一个来源于网上的技术信息资料。
1.用Python语言中文分词第三方库jieba对文件data.txt进行分词,并选择长度大于等于3个字符的关键词,写入文件out1.txt,每行一个关键词,各行的关键词不重复,输出顺序不做要求,例如:
人工智能
科幻小说
…
个人公众号 yk 坤帝
后台回复 面试项目整理 获取整理资源import jieba
f = open('data.txt','r')
lines=f.readlines()
f.close()
D=[]
for line in lines:wordList=jieba.lcut(line)#用结巴分词,对每行内容进行分词for word in wordList:if len(word)<3: #判断词长度,要大于等于3个长度continueelse:if word not in D:D.append(word)
f=open('out1.txt','w')
f.writelines('\n'.join(D))
f.close()
2.对文件data.txt进行分词,对长度不少于3个字符的关键词,统计出现的次数,按照出现次数由大到小的顺序输出到文件out2.txt,每行一个关键词及其出现次数,例如:
科学家:2
达特茅斯:1
…
import jieba
f=open("data.txt","r")
lines=f.readlines()
f.close()d = {}
for line in lines:wordList=jieba.lcut(line) #用结巴分词,对每行内容进行分词for word in wordList:if len(word)<3:continueelse:d[word]=d.get(word,0)+1
ls=list(d.items())
ls.sort(key=lambda x:x[1],reverse=True)#按照词频由高到低排序f=open('out2.txt','w')
for i in range(len(ls)):f.write('{}:{}\n'.format(ls[i][0],ls[i][1]))
f.close()
python面试项目案例相关推荐
- python小项目案例-拯救Python新手的几个项目实战
原标题:拯救Python新手的几个项目实战 Python 做小游戏 实例一:24点游戏 项目名称:经典趣味24点游戏程序设计(python) 实例二:五子棋游戏 python学习关注我们企鹅qun: ...
- python小项目案例-python简单项目实例
语言多元化是PayPal编程文化中一个重要的组成部分.在C++和Java长期流行的同时,更多的团队选择了Jva和Scala.同时,Braintree的收购也引入了一个久经世故的Ruby社区.Pytho ...
- python小项目案例-Python小项目:快速开发出一个简单的学生管理系统
本文根据实际项目中的一部分api 设计抽象出来,实例化成一个简单小例子,暂且叫作「学生管理系统」. 这个系统主要完成下面增删改查的功能: 包括: 学校信息的管理 教师信息的管理 学生信息的管理 根据A ...
- 精选100个Python实战项目案例,送给零基础小白的你
前言 随着 Python 语言的流行,越来越多的人加入到了 Python 的大家庭中.为什么这么多人学 Python ?我要喊出那句话了:"人生苦短,我用 Python!",正是因 ...
- 100个精选Python实战项目案例,送给缺乏练手经验的你
随着 Python 语言的流行,越来越多的人加入到了 Python 的大家庭中.为什么这么多人学 Python ?我要喊出那句话了:"人生苦短,我用 Python!",正是因为语法 ...
- 100个精选Python实战项目案例,初学者练手必备
随着 Python 语言的流行,越来越多的人加入到了 Python 的大家庭中.为什么这么多人学 Python ?我要喊出那句话了:"人生苦短,我用 Python!",正是因为语法 ...
- 整理了70个Python实战项目案例,教程+源码+笔记。从基础到深入
大家好,我是某某程序员,嘿嘿,很多人照书学完 Python,基础和常用模块使用没太大问题,但不知道下一步该怎么继续学习了.想找工作却没有项目经验-- 网上有些人建议拿实际项目练,但手头没有适合练习的项 ...
- 精选100个Python实战项目案例,送给缺乏实战经验的你
前言: 随着 Python 语言的流行,越来越多的人加入到了 Python 的大家庭中.为什么这么多人学 Python ?我要喊出那句话了:"人生苦短,我用 Python!",正是 ...
- python web项目案例教程_Python Web开发案例教程(慕课版)——使用Flask、Tornado、Django...
第1章 Web开发基础1 1.1 Web概述 2 1.1.1 什么是Web 2 1.1.2 Web应用程序的工作原理 2 1.1.3 Web的发展历程 2 1.2 Web前端开发基础 4 1.2.1 ...
最新文章
- [Unity3D]Unity3D连衣裙实现游戏开发系统
- python爬虫beautifulsoup4系列4-子节点
- 解读百度Q4财报:智能云以三大关键词进位“第二引擎”,强势驱动百度未来
- 推荐算法炼丹笔记:Deep Bayesian的多目标推荐
- spring整合问题集合1
- python的智能算法_scikit-opt——Python中的群体智能优化算法库
- System.Diagnostics.Process 执行.EXE
- Python sys模块的使用
- Microsoft AJAX Library的beta2版发布
- 我用九天时间,深挖一条闲鱼诈骗黑色产业链。
- 小米路由mpk插件二维码_小米WiFi6路由器新品:修改密码自动同步已连接设备,这功能不错...
- html动态添加删除文本框,DOM动态添加与删除元素
- deepfacelab安卓版_deepfacelab
- python 等值面_ANSYS Fluent快速添加等值面/等值线 源代码-教育代码类资源
- vs2017更新出错:The entire Box execution exiting with result code: 0x0
- 【AMD、CMD和CommonJS】
- emqx使用自制CA证书登录配置(双向认证)
- 韩国美女的16种味道
- 霍启刚晒全家出游照,网友们纷纷点赞,郭晶晶教育孩子有一套
- python爬虫爬取股票评论,调用百度AI进行语义分析, matlab观察股票涨跌和评论的关系