python工程师面试题-朋友去面试Python工程师,又带回来几道基础题,Python面试题No10...
第1题: print 调用 Python 中底层的什么方法?
print() 用 sys.stdout.write() 实现
import sys
print("hello")
sys.stdout.write("hello")
print("world")
# 结果:
# hello
# helloworld
上述代码你应该可以总结一下。
sys.stdout.write()结尾没有换行,而print()是自动换行的。
write()只接收字符串格式的参数。
print()能接收多个参数输出,write()只能接收一个参数输出。
input
Python3中的input() 用 sys.stdin.readline() 实现。
import sys
a = sys.stdin.readline()
print(a, len(a))
b = input()
print(b, len(b))
# 结果:
# hello
# hello
# 6
# hello
# hello 5
第2题:range 和 xrange 的区别?
首先我们看看range:
range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列。注意这里是生成一个序列。
xrange的用法与range相同,即xrange([start,] stop[, step])根据start与stop指定的范围以及step设定的步长,它所不同的是xrange并不是生成序列,而是作为一个生成器。即她的数据生成一个取出一个。
两者用法相同,不同的是 range 返回的结果是一个列表,而 xrange 的结果是一个生成器,前者是
直接开辟一块内存空间来保存列表,后者是边循环边使用,只有使用时才会开辟内存空间,所以相对来说,xrange比range性能优化很多,因为他不需要一下子开辟一块很大的内存,特别是数据量比较大的时候。
注意:
xrange和range这两个基本是使用在循环的时候。
当需要输出一个列表的时候,就必须要使用range了。
第3题: 4G 内存怎么读取一个 5G 的数据?
方法一
可以通过生成器,分多次读取,每次读取数量相对少的数据(比如 500MB)进行处理,处理结束后在读取后面的 500MB 的数据。
def get_lines(): # 生成器
with open("big.data", "r") as f:
while True:
data = f.readlines(100)
if data:
yield data
else:
break
f = get_lines() # 迭代器对象
print(next(f))
print(next(f))
print(next(f))
方法二
可以通过 linux 命令 split 切割成小文件,然后再对数据进行处理,此方法效率比较高。可以按照行数切割,可以按照文件大小切割。
第4题:在except中return后还会不会执行finally中的代码?怎么抛出自定义异常?介绍一下 except 的作用和用法?
会继续处理 finally 中的代码;用 raise 方法可以抛出自定义异常
except: #捕获所有异常
except: <异常名>: #捕获指定异常
except:<异常名 1, 异常名 2> : 捕获异常 1 或者异常 2
except:<异常名>,<数据>:捕获指定异常及其附加的数据
except:<异常名 1,异常名 2>:<数据>:捕获异常名 1 或者异常名 2,及附加的数据
第5题:在Python中输入某年某月某日,判断这一天是这一年的第几天?(可以用 Python 标准库)
方法一
year = int(input("请输入4位数字的年份:")) #获取年份
month = int(input("请输入月份:")) #获取月份
day = int(input("请输入是哪一天:")) #获取日
if month == 1:
count = day
elif month == 2:
count = 31 + day
elif (month >= 3) and ((year % 4 == 0 and year % 100 != 0) or year % 400 == 0):
if month == 3:
count = 31 + 29 + day
if month == 4:
count = 31 + 29 + 31 + day
if month == 5:
count = 31 + 29 + 31 + 30 + day
if month == 6:
count = 31 + 29 + 31 + 30 + 31 + day
if month == 7:
count = 31 + 29 + 31 + 30 + 31 + 30 + day
if month == 8:
count = 31 + 29 + 31 + 30 + 31 + 30 + 31 + day
if month == 9:
count = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + day
if month == 10:
count = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day
if month == 11:
count = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day
if month == 12:
count = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day
else:
if month == 3:
count = 31 + 28 + day
if month == 4:
count = 31 + 28 + 31 + day
if month == 5:
count = 31 + 28 + 31 + 30 + day
if month == 6:
count = 31 + 28 + 31 + 30 + 31 + day
if month == 7:
count = 31 + 28 + 31 + 30 + 31 + 30 + day
if month == 8:
count = 31 + 28 + 31 + 30 + 31 + 30 + 31 + day
if month == 9:
count = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + day
if month == 10:
count = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day
if month == 11:
count = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day
if month == 12:
count = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day
print("第" + str(count) + "天")
互联网找到了几个解法
方法二
import datetime
y = int(input("请输入4位数字的年份:")) # 获取年份
m = int(input("请输入月份:")) # 获取月份
d = int(input("请输入是哪一天:")) # 获取“日”
targetDay = datetime.date(y, m, d) # 将输入的日期格式化成标准的日期
dayCount = targetDay - datetime.date(targetDay.year - 1, 12, 31) # 减去上一年最后一天
print("%s是%s年的第%s天。" % (targetDay, y, dayCount.days))
方法三
import datetime
dtime = input("请输入求天数的日期(20191111):")
tnum = datetime.datetime.strptime(dtime,"%Y%m%d").strftime("%j")
print(dtime + "在一年中的天数是: " + tnum + "天。")
面试系列,本次写到10篇截止
对于python面试来说,基础占了很大的一个部分,你只需要夯实基础即可
剩下的多数为算法部分,我们半年后继续写完后续涉及算法的章节。
她专科学历
27岁从零开始学习c,c++,python编程语言
29岁编写百例教程
30岁掌握10种编程语言,
用自学的经历告诉你,学编程就找梦想橡皮擦
欢迎关注她的公众号,非本科程序员
python工程师面试题-朋友去面试Python工程师,又带回来几道基础题,Python面试题No10...相关推荐
- 怎么去面试测试工程师?
但我们要清楚,找工作是出卖服务的过程.我们得先知道企业的需求是什么,才知道要怎么把自己卖出去,所以在面试之前,我们需要先分析企业的招聘需求. 企业的招聘要求里面会列出很多项内容.比如某公司的行政助理岗 ...
- python代码基础题-python第一部分基础题1-80题
各位Python的第一部分1-80道基础题已经整理好了,希望面试的时候能用的上. 1.为什么学习Python? Python是目前市面上,我个人认为是最简洁.最优雅.最有前途.最全能的编程语言,没有之 ...
- 【前端 · 面试 】JavaScript 之你不一定会的基础题(二)
最近我在做前端面试题总结系列,感兴趣的朋友可以添加关注,欢迎指正.交流. 争取每个知识点能够多总结一些,至少要做到在面试时,针对每个知识点都可以侃起来,不至于哑火. 前言 在上一篇文章[前端 · 面试 ...
- python职位应聘_我去面试Python岗位了
最近换工作了,坐标上海,裸辞,之前早有前辈们说过,"裸辞一时爽,一直裸辞一直爽",这话一点不假,裸辞你要面临没有收入来源,但是每天眼睁睁看着各种花销不断支出的煎熬,我主要是觉得一边 ...
- 想去阿里大厂去面试测试工程师?想月薪15k?这篇文章一定对你有所帮助
前言 我大学同学成功拿下阿里大厂年薪 30W+ 测试开发岗位 Offer,顺利完成从手工测试工程师到测试开发的逆袭,薪资翻倍(涨幅 100%+).我问他是怎么面试,听了他的话后,我有所感悟,写下了这篇 ...
- 记面陌陌科技计算机视觉算法工程师被刷经历(附面试过程中被问倒的一些算法题分析)
转载过来的,原文:https://www.cnblogs.com/aoanng/p/9581612.html 求职季,真的会让一个人变得有些不一样吧,比如我,对于一个菜鸟来说,最近一段时间焦虑不安外加 ...
- 第一篇博客--记面陌陌科技计算机视觉算法工程师被刷经历(附面试过程中被问倒的一些算法题分析)...
求职季,真的会让一个人变得有些不一样吧,比如我,对于一个菜鸟来说,最近一段时间焦虑不安外加有点自闭... 前段时间在校内网上看到了陌陌科技内推计算机视觉算法工程师和机器学习算法工程师的消息,抱着试试的 ...
- python代码基础题-python每日经典算法题5(基础题)+1(中难题)
现在,越来越多的公司面试以及考验面试对算法要求都提高了一个层次,从现在,我讲每日抽出时间进行5+1算法题讲解,5是指基础题,1是指1道中等偏难.希望能够让大家熟练掌握python的语法结构已经一些高级 ...
- python难度大的题_26道大题python实战练习-习题
Python数学计算,编程练习题实例一: 简述:这里有四个数字,分别是:1.2.3.4 提问:能组成多少个互不相同且无重复数字的三位数?各是多少? Python解题思路分析:可填在百位.十位.个位的数 ...
最新文章
- hdu1466 递推
- linux 3g 程序,ARM板和Linux上的3G配置详解
- 第一次ScrumMeeting博客:团队任务分解
- Java-马士兵设计模式学习笔记-观察者模式-读取properties文件改成单例模式
- pythonweb框架_浅谈python web三大框架
- 平时喜欢使用的软件总结 欲善其事,必先利其器
- Zookeeper的一次启动失败问题解决
- 第10章 文档对象模型DOM 10.2 Document类型
- python函数支持哪些参数类型_Python函数的几种参数类型
- HDOJ--1262--寻找素数对
- mybatis中mysql递归查询多级_Mybatis + mysql 实现两级级联的查询
- 土方回填施工方案范本_土方回填施工方案.doc.docx
- 南航里程每年清空吗_速度用!南航里程即将大量贬值!还有每年3张南航处卡!...
- python入门基础教程推荐
- 【论文解读 WSDM 2018 | SHINE】Signed HIN Embedding for Sentiment Link Prediction
- 计算机大一萌新,要补充哪些计算机基本知识
- 小米手机用鸿蒙OS,华为手机终于用上了 “鸿蒙OS 2.0” ,甚至小米也能用!
- Eclipse Shell for Plugin
- Android 自定义Camera(一)如何预览相机
- 论一个糟糕的大数据码农的自我修养
热门文章
- intellij idea 1314 插件推荐及快速上手建议 (已更新!)
- 如何解决KEIL 5 编KEIL4同RTX系统的project解
- eclipse安装反编译插件jd-eclipse
- 《Genesis-3D游戏引擎系列教程-进阶篇》6:动画
- cisco与h3c的console、vty配置比较
- 波涛汹涌的黄金甲,一碗中药引发的血案!
- gis 联合 融合_超图与广州大学达成战略合作,共建“广州大学超图软件联合研究中心”...
- 零基础学python语言_零基础如何入门Python语言?有哪些学习建议?
- 面试题:问题:Java中,char型变量中能不能存储一个中文汉字,为什么?
- 获取本地公网ip_本地与远程linux服务器之间传输数据