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()方法的子进程设置为守护进程,当主进程执行完以后不管该子进程是否执行玩,该子进程都被回收

 

posted @ 2018-02-15 19:30  A-a  阅读(164)  评论(0)    收藏  举报