面试题汇总(二)
import numpy as np
array = np.arange(10)
print(array[2: 6])
2.依次写出LINUX中命令: 杀掉8000端口, 启动nginx, 启动uwsgl, 设置整个dist目录权限为777,
查看9000端口目前是否被占用. 8000为端口号: kill lsof -i: 8000 | awk '{NR==2 ;print $2}'
查看特定端口号的进程: ps -aux | grep 80000 启动nginx: [root@ettest app]# /usr/sbin/nginx -c /etc/nginx/nginx.conf 启动uwsgl: uwsgi --ini uwsgin.ini 设置整个dist目录权限为777: chmod -R 777 /home/linux 查看9000端口目前是否被占用: netstat -anp |grep 9000
3.python里面try 和 except的作用.
作用: 程序运行的时候,出现异常,并不一定需要中止程序,因为可能这个异常,可能这种异常时可处理的,或者是能预期到的异常,这个时候,我们需要知道到底是哪种异常,然后做相对于的后续处理。 try: 可能出现异常的语句 except: 将出现异常的数据进行保存,以便后续问题解决 else: 如若运行的语句没问题,进行运行数据结果的保存,或后续操作
4.python是动态语言还是静态语言, 是强类型还是弱类型.
Python属于强类型的动态脚本语言 强类型:不予许不同类型相加 动态:不使用显示数据声明类型,且确定一个变量的类型是第一次给他赋值的时候 脚本语言:一般也是解释性语言,运行代码只需要一个解释器,不需要编译
5.列表推导式求列表所有偶数并构造新列表, a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
res = [i for i in a if i%2 == 0]
print(res)
6.遍历一个字典, print出["a":"1", "b": "2"]这个字典所有的键和值.
dict = {"a":"1", "b": "2"}
for d in dict:
print "%s:%s" %(d, dict[d])
7.写一段代码求出从1加到100的值, 越简单越好, 最好能一行代码解决.
sum(range(1, 100))
5050
8.写一段python代码去除某个列表里面的元素.
a = [1,23,34,23,34,45,32]
b = set(a)
print(b) # {32, 1, 34, 45, 23}
c= list(b)
print(c) # [32, 1, 34, 45, 23]
9.简述new和init区别.
_init是初始化方法,创建对象后,就立刻被默认调用了,可接收参数 new至少要有一个参数cls,new__必须要有返回值
10.使用python编写一个装饰器,打印被装饰器的输入与输出
def decorate(fun):
'''
打印函数被调用的时间及调用次数
'''
count = 0
def wrapper(*args,**kwargs):
nonlocal count
start_time = time.time()
data = fun(*args,**kwargs)
stop_time = time.time()
dt = stop_time - start_time
count += 1
print("被调用%d次,本次调用花费时间%f秒。"%(count,dt))
return data
return wrapper
11.简述python线程,进程,协程,并描述使用场景.
1) 一个线程可以多个协程,一个进程也可以单独拥有多个协程,这样python中则能使用多核CPU。 2) 线程进程都是同步机制,而协程则是异步 3) 协程能保留上一次调用时的状态,每次过程重入时,就相当于进入上一次调用的状态
12.*args, **kwargs的作用是什么?如何使用?
可变参数和关键字参数.在函数中传参是时使用,可以有多个.
def ABC(*m,**ppp):
pass
ABC('1','水电费',ppp='dfdsf')
13.用lambda函数写出x等于1就返回为true,x不等于1就返回为false.
fun = lambda x: x==1
print(fun(1))
14.什么是wsgi,uwsgi,uWSGI?
uWSGI是一个web服务器,它实现了WSGI协议、uwsgi协议、HTTP等协议; uwsgi协议,是一个uWSGI服务器自有的协议,它用于定义传输信息的类型,每一个uwsgi packet(数据信息包)前 4byte为传输信息类型描述,用于与nginx等代理服务器通信; 实现wsgi协议的模块,用于接收用户请求
15.django请求的生命周期?
Django的请求生命周期是指当用户在浏览器上输入url到用户看到网页的这个时间段内,Django后台所发生的事情
16.如何判断一个python对象的类型?
type(name)
17.全局变量与局部变量的区别, 如何在function里面给一个全局变量赋值?
def my_global():
global x
x=8;
my_global()
print(x)
18.解析HTML: lftx123, 将"http://www.51smart.com"和"lftx123"全部提取出来(使用库或正则均可)
text = 'lftx123'
regex = '(.*?)'
a = re.findall(regex, text)
19.常见的http状态:404, 302, 301, 500, 403分别是什么意思.
404: 页面无法找到 302: 临时重定向 301: 永久重定向 500: 服务器内部错误 403: 服务器拒绝请求
20.写出如下list的交集与差集代码, b1=[1, 2, 3], b2 = [2, 3, 4]
res = list(set(b1)^set(b2))
res1 = lsit(set(b1).difference(set(a)))
21.D = [x * x for x in range(1, 10)], 请写出D的输出结果
[1, 4, 9, 16, 25, 36, 49, 64, 81]
22.有一个文本文件input.txt, 里面是每一行是逗号分隔整数二元组,形如:
1,3
4,2
2,7
请用python来排序input.txt中的内容,输出input.txt中.要求排序按元组的第二项从大到小排序.得到类似下述结果:
2,7
1,3
4,2
并说明自己写的这段程序的排序方式是否稳定,以及原因
import pandas as pd
df = pd.read_csv(“input.txt”,sep=’,’,header=None)
df.sort=(columns=[1],ascending=[0])
df.to_csv(‘input.txt’,sep=’,’,header=None)
23.写一段程序,输入是一个的整数数组,如[1,2,3,7,4,0],要求输出相邻两个元素之和,r如[3,5,10,11,4].此外希望利用CPU的多个核来并行计算,应该怎么做? 请指出机器在运行您写的代码时,是用的多进程还是多线程,二者在性能上有什么区别? 如何发现和评估区别大小?
查不到