• 面试第四篇


     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]))
    

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

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

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

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

    8.基于对列实现一个生产者消费者模型,要求:队列内元素不能超过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()
    

    9.试列出至少三种目前流行的大型关系数据库的名称

    mysql oracle sqlserver
    

    10.有表list,共有字段ABC类型都是整数,表中有如下记录:  

    A    B     C
    2    7     9
    5    6     4
    3    11    9  
    现在对该表依次完成以下操作:

    (1) 查询出B、C列的值,要求按B列升序排序:

    select B,C from list order by B asc; 

    (2) 写一条新的纪录,值为 7 8 9

    inset into list(A,B,C) values(7,8,9); 

    (3) 查询C列,要求清除重复的值,按降序排列:

    select C from test group by C desc; 
  • 相关阅读:
    Asp.net MVC 中Ajax的使用
    MVC Controller return 格式分类及用法
    【金楽】老博客地址
    C语言博客作业--结构体
    结构体、共用体、枚举博客转载
    C博客作业--指针
    C语言博客作业--字符数组
    C语言博客作业--一二维数组
    C语言博客作业--数据类型
    C语言博客作业--函数
  • 原文地址:https://www.cnblogs.com/moning/p/8451501.html
Copyright © 2020-2023  润新知