• python 结束练习


    1.文件操作有哪些模式?请简述各模式的作用

        r   只读模式     r+   读写  rb
        w   只写模式     w+   写读  wb
        x   只写模式     x+   写读  xb
        a   追加模式     a+   写读  ab
    

    2.s = '**hello,world!**'请使用strip方法去掉字符串两端的'*'号

    s = '**hello,world!**'
    print(s.strip("*"))
    

    3.用户输入一个任意数字n,求1-n之间所有数字中的奇数

    def foo(num):
        for i in range(1,num+1):
            if i %2 != 0:
                print(i)
    
    if __name__ == '__main__':
        input_num = int(input(">>:").strip())
        foo(input_num)
    
    --------------------------------------------
    
    input_num = int(input(">>:").strip())
    
    print(list(range(1,input_num,2)))
    

    4.s = 'hskakhlkshfkskjakf',请去除s字符串中重复的字母

    s = 'hskakhlkshfkskjakf'
    s_bak = ""
    for i in s:
        if s.count(i) == 1 :
            s_bak += i
        else:
            pass
    s = s_bak
    print(s)
    

    5.思考题:

      有一个类的init方法如下:
      class Person:
        def __init__(self,name,age,sex,weight):
          self.name = name
          self.sex = sex
          self.age = age
          self.weight = weight
      假设有100个person的对象,
      若两个对象的obj1,obj2的name和sex属性相同
      即obj1.name==obj2.name and obj1.sex==obj2.sex
      我们认为两个对象为同一个对象,已知一个列表中的100个对象,对这100个对象进行去重。
      提示:
      重写Person类重的两个内置方法

    class Person:
        def __init__(self,name,age,sex,weight):
            self.name = name
            self.sex = sex
            self.age = age
            self.weight = weight
    
        def __eq__(self,obj):
            if self.name == obj.name and self.sex == obj.sex:
                return True
    
        def __hash__(self):
            return (self.name,self.sex).__hash__()
    
    a1 = Person("alex",18,"male",60)
    a2 = Person("alex",30,"male",60)
    print(set([a1,a2]))
    

    1.线程,进程,协程的区别?

    进程是一个资源单位
    线程是一个执行单位
    协程在一个线程下工作,由用户自己控制,可以实现并发功能
    

    2 GIL是什么,对于python有什么影响?

    是一个解释器锁
    同一时刻一个cpu只能运行一个线程,提高了内存安全
    

    3 基于对列实现一个生产者消费者模型,要求:队列内元素不能超过5个,一旦有五个元素了,生产者不再生产,其他内容自由扩散

    import queue,threading,time
    
    q = queue.Queue(maxsize = 5)
    
    def producer():
        num = 1
        while True:
            if not q.full():
                q.put(num)
                print("put",num)
                num = num +1
    
    def consumer():
        while True:
            if not q.empty():
                print("get",q.get())
    
    p1 = threading.Thread(target=producer)
    c1 = threading.Thread(target=consumer)
    
    p1.start()
    c1.start()
    

      

      

  • 相关阅读:
    java 线程之间的协作 wait()与notifyAll()
    加密web.config中的邮件配置mailSettings
    TCP编程,Socket通讯
    jQuery插件学习笔记
    抹掉Scala的糖衣(14) -- Update Method
    UVA 12034 Race (递推神马的)
    struts2 命名空间 namespace 学习
    Vim -> 移动光标
    【跟我一步一步学Struts2】——Struts2工作流程
    Python中sort以及sorted函数初探
  • 原文地址:https://www.cnblogs.com/golangav/p/6876877.html
Copyright © 2020-2023  润新知