2.15
1.请写一个函数用于替换字符串中的一个或者几个字符串
def f(str,old,new): if old in str: str=str.replace(old,new) print(str) else: print('%s不在%s中'%(old,str)) f('hello world','world','ctz')
2.Python如何实现单列模式http://www.cnblogs.com/ctztake/p/8076048.html
3.如何用Python删除一个文件
#os.remove(path) 删除文件 path. 如果path是一个目录, 抛出 OSError错误。如果要删除目录,请使用rmdir(). #os.removedirs(path) 递归地删除目录。类似于rmdir(), 如果子目录被成功删除, removedirs() 将会删除父目录;但子目录没有成功删除,将抛出错误。 #os.rmdir(path) 删除目录 path,要求path必须是个空目录,否则抛出OSError错误
4.Python如何生成随机数
#random.random()随机生成0-1之间的小数 #random.uniform(1,3)#随机生成大于1小于3的小数 #rando.randint(1,5)#随机生成>=1,<=5的整数 #random.randrange(1,3)#随机生成大于1小于3的整数
5.如何在一个function里面设置一个全局变量
#1.为了便于代码管理,将全局变量统一放到一个模块中,然后在使用全局变量的时候,导入全局变量模块,通过这种方法来进行使用全局变量; #2.直接在模块中定义全局变量,然后在函数中直接使用就ok了。但是在使用全局变量的时候,必须在函数中使用global关键字进行标识
6.介绍一下except的作用和用法?
#Python中出现错误都会抛出异常,我们用except来捕获异常,显示我们自定义的错误,对客户更加友好 #用法举例举例: # l=[1,2,3] # try: # print(l[3]) # except IndexError: # print('下标越界')
7.请用Python写一个获取用户输入数字,并根据数字的大小输出不同的信息
while True: num=input('请输入数字').strip() if num.isdigit(): print(num) num=int(num) if num>3: print('输入的数字比三大') elif num==3: print('输入的数是三') break else: print('输入的数字小浴三') else : print('你输入的不合法,请输入数字')
8.输入一个字符串,返回一个倒叙的结果
def f(s): l=[] for i in s: l.insert(0,i) return ''.join(l) print(f('abcd'))
9.请用自己的算法,按升序合并如下两个list,并去除重复的元素
list1=[2,3,8,4,9,5,6] list2=[5,6,10,17,11,2] list1.extend(list2) list1=list(set(list1)) def px(data,left,right): tem=data[left] while left<right: if left<right and data[right]>=tem: right-=1 data[left]=data[right] if left<right and data[left]<=tem: left+=1 data[right]=data[left] data[left]=tem return left def quick_sort(data,left,right): if left<right: mid=px(data,left,right) quick_sort(data,left,mid-1) quick_sort(data,mid+1,right) return data print(quick_sort(list1,0,len(list1)-1))
10.Django中如何在保存之前做一定的固定操作,比如说写一些日志
#1.可以自定义函数,函数里面传参,在我们做具体操作之前调用该函数,即可,在构建微电影网站中这样用过 #2.可以使用信号,利用Django的Model的Signal Dispatcher, 通过django.db.models.signals.pre_save() 方法,在事件发生前,触发信号,这一切都被调度中的receiver方法保存了。 import logging from django.db import models from django.db.models.signals import pre_save from django.dispatch import receiver class Order(models.Model): pass logger = logging.getLogger(__name__) @receiver(pre_save, sender=Order) def pre_save_handler(sender, **kwargs): # 我们可以在Order这个Model保存之前写入日志了:) logger.debug("{},{}".format(sender, **kwargs)) print('fuck universe') #这样应该就实现了题中的要求,类似的方法还有比如pre_init是在Model实例之前会触发, post_init在实例之后触发,同理就是pre_save和post_save了。
11
d={'a':1,'b':2}
def fun(dic):
dic['a']=3
return dic
fun(d)
d['c']=4
print(d)#{'a': 3, 'b': 2, 'c': 4}
12.有一个数组[3,4,1,2,5,6,6,5,4,3,3],请写出一个函数,找出该数组中没有重复数的总和
l=[3,4,1,2,5,6,6,5,4,3,3] l2=[] l3=[] for i in l: if i in l3: l2.append(i) else: l3.append(i) sum=0 for i in set(l3)-set(l2): sum+=i print(sum)
13.从0-99这100个数中随机取出10个,要求不能重复,可以自己设计数据结构
import random s=random.sample(list(i for i in range(0,100)),10) print(s)
14,cookie和session有什么区别?
1.cookie数据存放在客户的浏览器上(客户端),session会在一定时间内保存在服务器上 2.由于cookie是存放在浏览器客户端的,所以cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie 欺骗,,session放在客户端,比较安全,如果主要考虑到安全应当使用session 3.session保存在服务器上.当访问增多,会比较占用你服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用cookie 4.session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到.而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的.cookie只能是子路径访问父路径设置的cookie 5.cookie本身最大支持4096字节,相对于cookie,session能存放更多字节
15. 给定一个整数数组,返回两个数的索引,使得他们相加和目标值相等,可以假定每个输入都有且只有一个解例如:nums=[2,7,11,15],目标值是9,因为2+7=9所以返回[0,1]
def f(l,aim): for i in range(len(l)): for j in range(i,len(l)): if l[i]+l[j]==aim: print('[%s,%s]'%(i,j)) nums=[2,7,11,15] f(nums,17)
16.python字典中判断key是否存在,不用if,for,while
#方法1: # d={'a':1,'b':2} # d.setdefault('a',2) # print(d) #看a的值就可以确定了 #方法2: #print(d.__contains__('c'))
17.Python一行print出1-100偶数的列表
print(list(map(lambda x:x,[i for i in range(2,101,2)]))) print([i for i in range(1,100) if i%2==0])
18. 1,2,3,4,5能组成多少个互不相同且无重复数字的三位数?
#方法1: count=0 nums=[] for i in range(1,6): for j in range(1,6): for k in range(1,6): if i!=j and i!=k and j!=k: num=i*100+j*10+k if num not in nums: nums.append(num) count+=1 print(nums) print(count) #方法二: l=[i*100+j*10+k for i in range(1,6) for j in range(1,6) for k in range(1,6) if i!=j and i!=k and j!=k] print(l)
19.写出常用的HTTP 请求方法
#GET 请求指定的页面信息,并返回实体主体。 #POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 #PUT 从客户端向服务器传送的数据取代指定的文档的内容。 #CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 # DELETE 请求服务器删除指定的页面。 #HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 #OPTIONS 允许客户端查看服务器的性能。 #TRACE 回显服务器收到的请求,主要用于测试或诊断
20 描述多进程开发中join与daemon的区别
join 是主进程里面的子进程调用,其作用是让主线程在调用join方法的地方等待该子进程执行结束后再向下执行,原型:join([timeout])里面的参数是可选的表示等待
多久就不等啦
daemon是表示将调用setDaemon()方法的子进程设置为守护进程,当主进程执行完以后不管该子进程是否执行玩,该子进程都被回收
浙公网安备 33010602011771号