zoukankan      html  css  js  c++  java
  • python随机问

    1、深拷贝与浅拷贝的区别:

    深拷贝和浅拷贝之间的区别在于是否复制了子对象。
     
    在深拷贝的时候两个对象是完全分离的,改变其中一个,不影响另一个对象;
     
    浅拷贝的时候两个对象并未完全分离,改变顶级对象的内容,不会对另一个对象产生影响,但改变子对象的内容,则两个对象同时被改变。
     
    这种差异的产生,取决于拷贝子对象时复制内存还是复制指针。
    深拷贝为子对象重新分配了一段内存空间,并复制其中的内容;
     
    2、简述sys.path的作用以及模块命名注意事项

     sys.path是python搜索模块路径的默认路径集,可以通过sys.path.append为当前的python添加新的路径。

    模块命令注意事项:1、不要与python默认模块名一致

             2、不要使用连字符-

             3、使用范围在数字字母下划线中选取。

    3、 简述re模块中 match、search以及findall方法的特点

    re模块中:

          match是从字符串头开头匹配的
          search是找出字符串中第一个匹配的,serarch后面配合group()使用
            findall是找出字符串中所有相匹配的
    4、代码实现:1*2+3*4+5*6+7*8...+99*100
      第一种方法:
        
    res=0
    res_out=0
    for i in range(0,101):
        if i%2!=0:
            res=i*(i+1)
            res_out=res_out+res
    print(res_out)

      第二种方法:

    import re
    
    def cheng(chengfa):
        if "*" in chengfa:
            n1,n2=chengfa.split("*")
            chengfa_filter=float(n1)*float(n2)
        return chengfa_filter
    
    def jia(jiafa):
        if len(jiafa)!=0:
            if "+" in jiafa:
                n3,n4=jiafa.split("+")
                jiafa_filter=float(n3)+float(n4)
        elif len(jiafa)==0:
            jiafa_filter=jiafa
        return jiafa_filter
    
    def jisuan(yunsuan_filter):
        try:
            result = re.search('d+.*d*[*]d+.*d*',yunsuan_filter).group()
            if len(result)!=0:
                chengfa_str=cheng(result)
                yunsuan_filter=yunsuan_filter.replace(result,str(chengfa_str))
        except:
            try:
                result2=re.search('d+.*d*[+]d+.*d*',yunsuan_filter).group()
                jiafa_str=jia(result2)
                yunsuan_filter=yunsuan_filter.replace(result2,str(jiafa_str))
            except:
                return yunsuan_filter
        return  jisuan(yunsuan_filter)
    
    s="1*2+3*4+5*6+7*8+9*10"
    res=jisuan(s)
    print(res)
    5、Python中两种序列化Json和Pickle的区别

        JSON是一种轻量级的数据交换格式。所有语言都通用,可以与不同语言进行交互,但默认只是支持最简单的转换类型。JSON与XML相同,但比XML更为简洁方便。PICKLE与JSON用法大体一样,但是pickle支持python特有类型 和 python数据类型间的转换。

     
    6、请用装饰器实现在不改变函数调用者的代码基础上,实现在函数执行前后分别打印"before" 和 "after"。
    def f1(arg):
        return arg + 1
    def f2(arg1, arg2):
        return arg1 + arg2
    解:def bef_aft(func):
        def PRint(*arg,**kwarg):
            print("before".center(50,"-"))
            res=func(*arg,**kwarg)
            print(res)
            print("after".center(50,"-"))
            return res
        return PRint
    
    @bef_aft
    def f1(arg):
        return arg + 1
    
    
    @bef_aft
    def f2(arg1, arg2):
        return arg1 + arg2
    
    
    f1(2)
    f2(5,2)
    7、创建6位的随机验证码(含数字和字母)
    import random
    
    def creat():
        res=""
        for i in range(0,6):
            Da=chr(random.randint(65,90))
            Xiao=chr(random.randint(97,122))
            Num=random.randint(0,9)
            result=random.choice([Da,Xiao,Num])
            res = res+str(result)
        return res
    resul=creat()
    print("验证码为:%s"%resul)
  • 相关阅读:
    TreeSet集合的add()方法的源码解析
    Ubuntu下定时任务和自启动任务的部署
    基于Django的独立运行脚本开发
    python做量化交易干货分享
    使用Glide以及OkHttp集成
    Redis实现简单消息队列
    Linux下高并发socket最大连接数
    Ubuntu14.04部署pyspider的过程
    pymongo "ServerSelectionTimeoutError: No servers found yet" 错误的解决
    gitolite服务器部署中的一些坑
  • 原文地址:https://www.cnblogs.com/mstzkot/p/7208668.html
Copyright © 2011-2022 走看看