附答案 | 最强Python面试题之Python进阶题第四弹
本文正在参与【[ 面霸养成记 ] 】 征文活动,一起来聊聊校招的那些事吧,牛客周边和百元京东卡等你来领~
写在之前
大家好呀,我是帅蛋。
哒哒哒,Python 进阶面试题第四弹来啦,加餐加餐,今天 17 道题!
这也是Python 进阶面试题最后一篇文章,下一次我们就会开始 Python 后台开发面试题的更新啦,快把期待打在评论区!
还是那句话,面试八股文尽在帅蛋的【最强Python面试题】系列里啦!!!
每天一定出现的帅蛋,一定要记得点赞收藏呀!!!
欢迎和帅蛋聊一聊~扣扣2群:609771600,获取最新秋招信息 & 内推进度,日常聊聊迷茫吹吹牛皮,抱团取暖
顺便提一句,我所有和面试相关的内容都会放在#帅蛋的面试空间# 中,大家可以关注下这个话题~
我会尽我最大的努力帮助到大家哒!!!
主要内容
这些面试题是我结合自己的经验整理的,主要就是下面这 5 个专题:
- Python 基础面试题
- Python 进阶
- Python 后台开发
- 爬虫
- 机器学习
已完成
Python 基础题
- 附答案 | 最强Python面试题之Python基础题(1)
- 附答案 | 最强Python面试题之Python基础题(2)
- 附答案 | 最强Python面试题之Python基础题(3)
- 附答案 | 最强Python面试题之Python基础题(4)
正在更新
Python 进阶题
对每道面试题我都会附带详细的答案,有些我觉得重要的内容会详细讲解,虽然是面试八股文,我还是希望大家不是只“知其然”,更得“知其所以然”。
关于更新频率,每天我会更新 10 道题左右,总共会有差不多 200 道。
无论是准备面试还是自己学习,这份面试题绝对值得你去看,去学习。
大家可以关注我,再关注我,使劲关注我,不要错过每天的更新~
以下是正文
Python 进阶面试题第三弹正式开始,大家一定要记得点赞收藏,一起加油!
1、Python 中 is 和==的区别?
is 判断的是 a 对象是否就是 b 对象,是通过 id 来判断的。
==判断的是 a 对象的值是否和 b 对象的值相等,是通过 value 来判断的。
2、谈谈你对面向对象的理解?
面向对象是相对于面向过程而言的。
面向过程语言是一种基于功能分析的、以算法为中心的程序设计方法
面向对象是一种基于结构分析的、以数据为中心的程序设计思想。在面向对象语言中有一个有很重要东西,叫做类。面向对象有三大特性:封装、继承、多态。
3、Python 里 match 与 search 的区别?
match()函数只检测 RE 是不是在 string 的开始位置匹配
search()会扫描整个 string 查找匹配
也就是说 match()只有在 0 位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回 none。
4、用 Python 匹配 HTML g tag 的时候,<.> 和 <.?> 有什么区别?
<.*>是贪婪匹配,会从第一个“<”开始匹配,直到最后一个“>”中间所有的字符都会匹配到,中间可能会包含“<>”。
<.*?>是非贪婪匹配,从第一个“<”开始往后,遇到第一个“>”结束匹配,这中间的字符串都会匹配到,但是
不会有“<>”。
5、Python 中的进程与线程的使用场景?
多进程适合在 CPU 密集型操作(cpu 操作指令比较多,如位数多的浮点运算)。
多线程适合在 IO 密集型操作(读写数据操作较多的,比如爬虫)。
6、解释一下并行(parallel)和并发(concurrency)的区别?
并行(parallel)是指同一时刻,两个或两个以上时间同时发生。
并发(parallel)是指同一时间间隔(同一段时间),两个或两个以上时间同时发生。
7、如果一个程序需要进行大量的 IO 操作,应当使用并行还是并发?
并发
8、如果程序需要进行大量的逻辑运算操作,应当使用并行还是并发?
并行
9、在 Python 中可以实现并发的库有哪些?
线程
进程
协程
threading
10、Python 如何处理上传文件?
Python 中使用 GET 方法实现上传文件,下面就是用 Get 上传文件的例子,client 用来发 Get 请求,server 用来收请求。
请求端代码
import requests #需要安装 requests with open('test.txt', 'rb') as f: requests.get('http://服务器 IP 地址:端口', data=f)
服务端代码
var http = require('http'); var fs = require('fs'); var server = http.createServer(function(req, res){ var recData = ""; req.on('data', function(data){ recData += data; }) req.on('end', function(data){ recData += data; fs.writeFile('recData.txt', recData, function(err){ console.log('file received'); }) }) res.end('hello'); }) server.listen(端口);
11、请列举你使用过的 Python 代码检测工具?
移动应用自动化测试 Appium
OpenStack 集成测试 Tempest
自动化测试框架 STAF
自动化测试平台 TestMaker
JavaScript 内存泄露检测工具 Leak Finder
Python 的 Web 应用验收测试 Splinter
即插即用设备调试工具 UPnP-Inspector
12、python 程序中文输出问题怎么解决?
方法一
用encode和decode,如:
import os.path import xlrd,sys Filename=’/home/tom/Desktop/1234.xls’ if not os.path.isfile(Filename): raise NameError,”%s is not a valid filename”%Filename bk=xlrd.open_workbook(Filename) shxrange=range(bk.nsheets) print shxrange for x in shxrange: p=bk.sheets()[x].name.encode(‘utf-8′) print p.decode(‘utf-8′)
方法二
在文件开头加上
reload(sys) sys.setdefaultencoding(‘utf8′)
13、Python 如何 copy 一个文件?
shutil 模块有一个 copyfile 函数可以实现文件拷贝
14、如何用Python删除一个文件?
使用 os.remove(filename) 或者 os.unlink(filename)
15、如何用 Python 来发送邮件?
python实现发送和接收邮件功能主要用到poplib和smtplib模块。
poplib用于接收邮件,而smtplib负责发送邮件。
#! /usr/bin/env python #coding=utf-8 import sys import time import poplib import smtplib # 邮件发送函数 def send_mail(): try: handle = smtplib.SMTP('smtp.126.com',25) handle.login('XXXX@126.com','**********') msg = 'To: XXXX@qq.com\r\nFrom:XXXX@126.com\r\nSubject:hello\r\n' handle.sendmail('XXXX@126.com','XXXX@qq.com',msg) handle.close() return 1 except: return 0 # 邮件接收函数 def accpet_mail(): try: p=poplib.POP3('pop.126.com') p.user('pythontab@126.com') p.pass_('**********') ret = p.stat() #返回一个元组:(邮件数,邮件尺寸) #p.retr('邮件号码')方法返回一个元组:(状态信息,邮件,邮件尺寸) except poplib.error_proto,e: print "Login failed:",e sys.exit(1) # 运行当前文件时,执行sendmail和accpet_mail函数 if __name__ == "__main__": send_mail() accpet_mail()
16、当退出 Python 时,是否释放全部内存?
不是。
循环引用其它对象或引用自全局命名空间的对象的模块,在Python退出时并非完全释放。另外,也不会释放C库保留的内存部分。
17、什么是猴子补丁?
在运行期间动态修改一个类或模块。
>>> class A: def func(self): print("Hi") >>> def monkey(self): print "Hi, monkey" >>> m.A.func = monkey >>> a = m.A() >>> a.func()
运行结果为:
Hi, Monkey
最近牛客在搞一个秋招同行计划,邀请大家一起记录自己的笔试,面试经历,写一篇讨论帖@周周~ 就可以得100牛币
反正不限制字数和题材,写的好的还可以拿到50京东卡、周边、一些技术书等,大家冲起来!
活动详情:https://www.nowcoder.com/link/bgzz2023
以上就是今天的内容,我是帅蛋,我们明天见~
❤️ 欢迎关注我,有问题,找帅蛋,我最看不得别人迷茫!
❤️ 如果你觉得有帮助,希望爱学习的你不要吝啬三连击哟[点赞 + 收藏 + 评论]~
#帅蛋的面试空间##面试八股文##秋招##Python##python面试#还有小小公众号 【编程文青李狗蛋】,聊聊迷茫吹吹牛皮~