• 面试题持续更新中......


    1.列表的删除
     
     li = [1,2,3] 
     del li[1:5] 超过列表长度 自动删除到最后
     print(li)
     
    2. 对应位置进行赋值
     
     a, b = 1, 2
     print(a,b)
    
    问题:a = 1 b = 3 一行代码,让a,b值互换
     a = 1
     b = 3
     a,b = b,a

    3.比较(优先级)逻辑运算符

    (1print(2 > 1 and 3 > 4)
     print(2 > 1 or 3 > 4)
     print(not 2 > 1)
    
    
    (2)前后都是数字: x or y if x 为 True ,则值是x else:值是Y
     print(1 or 2)
     print(2 or 3)
     print(0 or 2)
     print(0 or 3)
    
    
    (3)andor 是相反的
      print(1 or 2 and 4 or 5)
      print(1 or 3 and 4 or 5 )
      print(2 > 1 or 1 and 3 < 2)
     
    4.小数据池
     
    python
    int  str 小数据池
    int   -5-----256
    str 如果是全部由字母组成的字符串,都是指向一个内存地址
    如果是数字与str(单个字母)相乘,则20(含)以内的都是同一个内存地址
    其他数据类型,则没有小数据池概念
     5.判断数据类型
     
    (1)判断数据类型
    tuple
    tu = (1)
    tu1 = (1,)
    print(tu,type(tu))
    print(tu1,type(tu1))
    
    (2)判断数据类型
    tu = ("alex")
    tu1 = ("alex",)
    print(tu,type(tu))    #alex <class 'str'>
    print(tu1,type(tu1))  #('alex',) <class 'tuple'>
    3)判断数据类型
    tu = ([1,2,3])
    tu1 = ([1,2,3],)
    print(tu,type(tu))    #[1, 2, 3] <class 'list'>
    print(tu1,type(tu1))  #([1, 2, 3],) <class 'tuple'>
    4)判断数据类型
    tu = ({"name" : "xue","age" : 18})
    tu1 = ({"name" : "xue","age" : 18},)
    print(tu,type(tu))      #{'name': 'xue', 'age': 18} <class 'dict'>
    print(tu1,type(tu1))    #({'name': 'xue', 'age': 18},) <class 'tuple'>

    6. 陷阱参数

    def func(name,l = []):
         l.append(name)
         return l
    print(func("alex"))  #['alex']
    print(func("wusir")) #多次调用函数,保存了上次的值 #['alex', 'wusir']

    7.生成器函数 send

    1.send 和 next 功能一样
    2.给上一个 yiled 整体 发送一个值
    3.获取第一个值的时候,不能用send,只能用next

    def gener():
        print("aaa")
        yield 222
        print("bbb")
        count = yield 333
        print("----->",count)
        yield "aaa"
        yield 333
    g = gener()
    print(g.__next__())
    print(g.send(None))
    print(g.send("AAAA"))
    
    
    8.金融公司面试题

    有一个类,对应这个类产生了100个对象
    每个对象有三个属性 : 姓名 年龄 性别
    请对这一百个对象进行去重,如果姓名和性别相同,即便年龄不同也是相同的对象
    问最简便的方法?

    class Person:
        def __init__(self,name,age,sex):
            self.name = name
            self.age = age
            self.sex = sex
        def __hash__(self):
            return hash('%s %s'%(self.name,self.sex))
        def __eq__(self, other):
            if self.name == other.name and self.sex == other.sex:
                return True
    p_lst = []
    for i in range(100):
        p_lst.append(Person('egon',i,'male'))
    print(set(p_lst))
    报错不可hash 完成了__hash__
    hash是否相等 __hash__
    值是否相等 __eq__

    收获1
    对于一些python当中已经存在的内置函数 内置数据类型 内置模块中的方法
    都有可能依赖于类中的内置方法
    收获2
    set方法依赖集合中元素对象的__hash__ __eq__

    9.匿名函数lamda
    
    
    d = lambda x:x*2
    t = lambda x:x*3
    x = 2
    x = d(x)   #4
    x = t(x)   #12
    x = d(x)   #24
    print(x)   #24
  • 相关阅读:
    数据库系统学习(九)-嵌入式SQL语言之基本技巧
    操作系统学习(九)-- 操作系统之文件系统(目录)
    操作系统学习(八)-- 操作系统之磁盘(调度)与文件(实现)
    从windows server 2003中学到的事儿
    一名游戏开发者的告白
    所谓“学术境界”
    java解惑
    程序员的职业素养
    行业大会_平台
    寻找优秀的程序员
  • 原文地址:https://www.cnblogs.com/lara0520/p/8367122.html
Copyright © 2020-2023  润新知