超详细整理python面试题基础(31-50题)
31.log日志中,需要用时间戳记录error.warning等发生时间,请用datatime模块打印当前时间
import datetime
a=str(datetime.datetime.now().strftime('%y-%m-%d.%H%M:%s'))+'星期'+str(datetime.datetime.now().isoweekday())
print(a)
#代码详解
#datetime.datetime.now() 用来打印当前的时间 输出:datetime.datetime(2019,3,27,15,8,55,180404)
#strftime('%y-%m-%d %H:%M:%s') 将时间转换为自定义格式 输出:‘19-03-27 15:08:55’
#datetime.datetime.now().isoweekday() 打印当前是星期几 输出:3
32.数据库优化查询方法
外键,索引,联合查询,选择特定字段等
33.请列出你会的任意一种统计图(条形图,折线图)绘制的形源库,第三方也行
pyecharts,matplotlib
34.写出一段自定义异常代码
#raise自定义异常
def fn():
try:
for i in range(5):
if i>2:
raise Exception("数字大于2了”)
except Exception as ret:
print(ret)
fn()
out:数字大于2了
try语句的except子句来捕获异常,并返回描述信息
35.正则表达式匹配中,(. *)和(. * ?)匹配区别?
(. *)是贪婪匹配,会把满足正则的尽可能多的往后匹配
(. * ?)是非贪婪匹配,会把满足正则的尽可能少的匹配
s="<a>哈哈</a><a>呵呵</a>"
import re
res1=re.findall("<a>(. *)</a>",s)
print("贪婪匹配”,res1)
res2=re.findall("<a>(. *?)</a>",s)
print("非贪婪匹配”,res2)
out:贪婪匹配 ['哈哈</a><a>呵呵’]
非贪婪匹配 ['哈哈’,'呵呵’]
36.[[1,2],[3,4],[5,6]]一行代码展开该列表,得出[1,2,3,4,5,6]
for i in a 每个i是[1,2],[3,4],[5,6]
for j in i ,每个j就是1,2,3,4,5,6合并后就是结果
#展开列表
a=[[1,2],[3,4],[5,6]]
x=[j for i in a for j in i]
print(x)
out:[1,2,3,4,5,6]
将列表转化为numpy矩阵,通过numpy 的flatten()方法
#展开列表
a=[[1,2],[3,4],[5,6]]
x=[j for i in a for j in i]
print(x)
import numpy as np
b=np.array(a).flatten().tolist()
print(b)
37.x=“abc”,y=“def”,z=[“d”,“e”,“f”]分别求出x.join(y)和x.join(z)返回的结果
join()括号里面是可迭代对象
x="abc"
y="def"
z=["d","e","f"]
m=x.join(y)
n=x.join(z)
print(m)
print(n)
out:dabceabcf
dabceabcf
38.举例说明异常模块中try except else finally 的相关意义
try…except … else 没有捕获到异常,执行else语句
try… except…finally 不管是否捕获到异常,都执行finally语句
try:
num=100
print(num)
except NameError as errorMsg:
print('产生错误了:%s'%errorMsg)
else:
print('没有捕获到异常,则执行该语句')
try:
num=100
print(num)