1.请编写python代码,需求是要打印1-1亿之内的偶数。
print([i for i in range(2,100000000L,2)])
2.写一个函数, 用正则表达式清除字符串中[]和其中的内容。
re.sub('\[\w+\]','',s)
3.请使用python代码对下面的函数进行处理,
def hello(name): print"hello, %s"%name
在函数被调用时打印耗时详情
<function name:hello> <function call begin> hello,tom <function call end> [timecosts:3.81469726562e-06s]
code:
import time def time_me(fn): def _wrapper(*args,**kwargs): start = time.time() print("<function name: %s>"%(str(fn))) print("<function call begin>") fn(*args,**kwargs) print("<function call end>") print("[time cost:%ss]"%(time.time()-start)) return _wrapper
4. 写一个函数, 将驼峰命名法字符串转成下划线命名字符串(需考虑各类编码中常见的命名)
e.g. GetItem->get_item getItem->get_item doIT ->do_IT
code: None
5.有一个列表:[1, 2, 3, 4...n],n=20;请编写代码打印如下规律的输出:
1[1*,2,3,4,5] 2[1,2*,3,4,5] 3[1,2,3*,4,5] 4[2,3,4*,5,6] 5[3,4,5*,6,7] 6[4,5,6*,7,8] ... 20[16,17,18,19,20*]
code:
def print_n(n): if n -2 <= 0 : val = range(1,6) if n + 2 >= 20: val = range(16,21) else: val = range(n-2,n+3) print("%d%s"%(n,str([ str(i) + '*' if i == n else i for i in val]))) for i in range(1,21): print_n(i)
6. 写一个程序模拟银行排队, 只有一个队伍, 一个用户进入时允许插队(进入队伍任意位置), 但要保证每次导致队伍变更, 队伍中受影响的人都收到通知
CustomerAline up at position11 CustomerB:order changed to12 CustomerC:order changed to13 CustomerD:order changed to14
code:
from random import randint class customer: def __init__(self,cus_name,location): self.name = cus_name self.loc = location print("%s line up at position%d"%(self.name,self.loc)) def getLoc(self,): return self.loc def getNotice(self,new_loc): if new_loc != self.loc: print("%s order changed to%d"%(self.name,new_loc)) self.loc = new_loc customer_queue = [] for i in ['A','B','C','D','E']: new_cus_location = randint(0,len(customer_queue)) cus_i = customer(i,new_cus_location) customer_queue.insert(new_cus_location,cus_i) for loc,cus in enumerate(customer_queue): if cus != cus_i : cus.getNotice(loc)
7.用户系统, 存在相互关注的动作, 当进入某个人的个人主页, 需要展示其粉丝数, 关注数, 粉丝列表以及关注列表. 请简要描述解决方案, 包括db建模/数据层/业务层, 以及应对高并发/关注取关等情况的处理逻辑
None
8.给定一些NxN的矩阵,对于任意的路线,定义其【和】为其线路上所有节点的数字的和,计算从左上角到右下角的路线和最小值。每条路线只能从某一点到其周围(上下左右)的点,不可斜行。 例如,
4,6 2,8的路线和最小值为4-2-814 1,2,3 4,5,6 7,8,9的路线和最小值为1-2-3-6-921
程序只需输出最小和值即可(一个数字)
code:
所有路径和路径和都打印出来了,获得最小值只需要加一句话就好了
from random import randint def display_matrix(matrix): for i in matrix: print(i) #建立矩阵 def make_matrix(dim): temp_list = [] for i in range(dim**2): temp_list.append( randint(1,10)) matrix_ = [temp_list[i:i+dim] for i in range(0,dim**2,dim)] display_matrix(matrix_) return matrix_ #将n*n矩阵扩展成(n+1) * (n+1)的矩阵,便于转换成树的时候递归 def extend_matrix(matrix,dim): [m_i.append(None) for m_i in matrix ] matrix.append([None,]*(dim+2)) return matrix #节点 class Node: def __init__(self,val,index,lchild = None,rchild = None): self.val = val self.index = index self.lchild = lchild self.rchild = rchild #树,深度优先创建+遍历 class Tree: def __init__(self,matrix,dim): self.root = Node(val = matrix[0][0],index = (0,0)) self.matrix = matrix self.dim = dim self.path_costs = [] self.path_list = [] def add(self,root): root.lchild = Node(val = matrix[root.index[0] + 1][root.index[1]],index = (root.index[0] + 1,root.index[1])) root.rchild = Node(val = matrix[root.index[0]][root.index[1] + 1],index = (root.index[0],root.index[1] + 1)) if root.lchild.val is not None: self.add(root.lchild) if root.rchild.val is not None: self.add(root.rchild) return root def display_tree(self,root): print(root.val) if root.lchild.val is not None: self.display_tree(root.lchild) if root.rchild.val is not None: self.display_tree(root.rchild) def path_cost(self,sum,path,root): if root.lchild.val is not None: self.path_cost(sum + root.val,''.join([path,str(root.val),'->']),root.lchild) if root.rchild.val is not None: self.path_cost(sum + root.val,''.join([path,str(root.val),'->']),root.rchild) if root.lchild.val is None \ and root.rchild.val is None: self.path_list.append(''.join([path,str(root.val)])) self.path_costs.append(sum + root.val) def make_tree(self): self.root = self.add(self.root) self.display_tree(self.root) self.path_cost(0,'',self.root) print (self.path_costs) print (self.path_list) dim = 3 matrix = make_matrix(dim) extend_matrix(matrix,dim) display_matrix(matrix) tree_obj = Tree(matrix,dim) tree_obj.make_tree()