全国咨询/投诉热线:400-618-4000

传智播客Python培训专家:6个常见面试题

更新时间:2017年11月30日16时31分 来源:传智播客 浏览次数:

在面试中,有一定比例是字符串处理以及网络编程那块,当然了肯定还有些其他的问题,下面帮大家找了6道题目,接下来小试牛刀吧! 很简单的哦。。

第1题:

Q:是否遇到过python的模块间循环引用的问题,如何避免它?

A: 这是代码结构设计的问题,模块依赖和类依赖

如果老是觉得碰到循环引用可能的原因有几点:

1.可能是模块的分界线划错地方了

2.可能是把应该在一起的东西硬拆开了

3.可能是某些职责放错地方了

4.可能是应该抽象的东西没抽象

总之微观代码规范可能并不能帮到太多,重要的是更宏观的划分模块的经验技巧,推荐uml,脑图,白板等等图形化的工具先梳理清楚整个系统的总体结构和职责分工

采取办法,从设计模式上来规避这个问题,比如:

1. 使用 “__all__” 白名单开放接口

2. 尽量避免 import

第2题:

Q: Python中如何定义一个函数

A:

有2种方法:

第1种:

def func(arg, *args, **kwagrs): #普通函数

func_body

return

第2种:

lambda x: x **2 #匿名函数

第3题:

Q: 请写出一段Python代码实现删除一个list里面的重复元素

A:

>>> L1 = [4,1,3,2,3,5,1]

>>> L2 = []

>>> [L2.append(i) for i in L1 if i not in L2]

>>> print L2

[4, 1, 3, 2, 5]

运行结果如下图:

Python培训

第4题:

Q: Python是如何进行内存管理的

A: python内部使用引用计数,来保持追踪内存中的对象,Python内部记录了对象有多少个引用,即引用计数,当对象被创建时就创建了一个引用计数,当对象不再需要时,这个对象的引用计数为0时,它被垃圾回收。所有这些都是自动完成,不需要像C一样,人工干预,从而提高了程序员的效率和程序的健壮性。

第5题:

Q: 写一个简单的Python socket编程

A: socket是用来进行网络编程用的接口,网络编程分为服务器端和客户端

服务器端代码如下:

import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

sock.bind(('localhost', 8001))

sock.listen(5)

while True:

conn, addr = sock.accept()

try:

conn.settimeout(5)

buff = conn.recv(1024)

if buff == '1':

conn.send('Hello, Client...')

else:

conn.send('Please, Go Out...')

except socket.timeout:

print 'Socket Time Out...'

finally:

conn.close()

客户端代码如下:

import socket

import time

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

sock.connect(('localhost', 8001))

time.sleep(2)

sock.send('1')

print sock.recv(1024)

sock.close()

第6题:

Q:src = "security/afafsff/?ip=123.4.56.78&id=45",请写一段代码用正则匹配出IP

A:

import re

src = "security/afafsff/?ip=123.4.56.78&id=45"

m = re.search('ip=(\d{1,3}\.\d{1,3}\.\d{1,3}.\d{1,3})', src, re.S) # re.S 改变'.'的行为

print m.group(1)

# 输出结果

>>>

123.4.56.78

运行结果如下:

Python培训

javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

uids

北京校区

    14天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    8天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    0天免费试学

    基础班入门课程限时免费

    申请试学名额

    12天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    10天免费试学

    基础班入门课程限时免费

    申请试学名额