设为首页 加入收藏

TOP

python面试题37道(附答案)看完面试不愁了(五)
2019-07-15 08:09:24 】 浏览:185
Tags:python 试题 答案 面试
5 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 6 sock.bind(('localhost', 8001)) 7 sock.listen(5) 8 9 while True: 10 connection,address = sock.accept() 11 try: 12 connection.settimeout(5) 13 buf = connection.recv(1024) 14 if buf == '1': 15 connection.send('welcome to server!') 16 else: 17 connection.send('please go out!') 18 except socket.timeout: 19 print 'time out' 20 21 connection.close()

 

client.py

 1 #coding:utf-8
 2 
 3 import socket
 4 import time
 5 
 6 if __name__ == '__main__':
 7     sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 8     sock.connect(('localhost', 8001))
 9     time.sleep(2)
10     sock.send('1')
11     print sock.recv(1024)
12     sock.close() 

 

在终端运行server.py,然后运行clien.py,会在终端打印“welcome to server!"。

31.python如何捕获异常

(1)使用try和except语句来捕获异常

 1  try:  
 2        block  
 3     except [exception,[data…]]:  
 4        block  
 5      
 6     try:  
 7     block  
 8     except [exception,[data...]]:  
 9        block  
10     else:  
11        block  

 捕获到的IOError错误的详细原因会被放置在对象e中,然后运行该python 异常处理的except代码块捕获所有的异常

(2)用raise语句手工引发一个异常:

1 raise [exception[,data]]  
2      
3     try:  
4         raise MyError #自己抛出一个异常  
5     except MyError:  
6         print 'a error'  
7      
8     raise ValueError,’invalid argument’  

(3)采用sys模块回溯最后的异常

1     import sys  
2     try:  
3        block  
4     except:  
5        info=sys.exc_info()  
6        print info[0],":",info[1]  

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

匹配ip地址的python正则表达式

pattern =

'^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])$'

故本题答案

1 >>> re.findall(r'([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])', src)
2 [('123', '4', '56', '78')]

33.写一段代码用json数据的处理方式获取{"persons":[{"name":"yu","age":"23"},{"name":"zhang","age":"34"}]}这一段json中第一个人的名字。

 1 json读取
 2 >>> import json
 3 >>> j = json.loads('{"persons":[{"name":"yu","age":"23"},{"name":"zhang","age":"34"}]}')
 4 >>> print j
 5 {u'persons': [{u'age': u'23', u'name': u'yu'}, {u'age': u'34', u'name': u'zhang'}]}
 6 >>> print j.keys()
 7 [u'persons']
 8 >>> print j.values()
 9 [[{u'age': u'23', u'name': u'yu'}, {u'age': u'34', u'name': u'zhang'}]]
10 >>> print j.values()[0]
11 [{u'age': u'23', u'name': u'yu'}, {u'age': u'34', u'name': u'zhang'}]
12 >>> print j.values()[0][0]
13 {u'age': u'23', u'name': u'yu'}
14 >>> print j.values()[0][0]['name']
15 yu 

34.平衡点问题 

平衡点:比如int[] numbers = {1,3,5,7,8,25,4,20}; 25前面的总和为24,25后面的总和也是24,25这个点就是平衡点;假如一个数组中的元素,其前面的部分等于后面的部分,那么这个点的位序就是平衡点 

要求:返回任何一个平衡点

使用sum函数累加所有的数。

使用一个变量fore来累加序列的前部。直到满足条件fore<(total-number)/2;

python代码如下:

 1 numbers = [1,3,5,7,8,2,4,20]
 2 
 3 #find total
 4 total=sum(numbers)
 5 
 6 #find num
 7 fore=0
 8 for number in numbers:
 9    if fore<(total-number)/2 :
10       fore+=number
11    else:
12       break
13 
14 #print answer
15 if fore == (total-number)/2 :
16    print number
17 else :
18    prin
首页 上一页 2 3 4 5 下一页 尾页 5/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇ORM 下一篇Python知识之 方法与函数、偏函数..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目