zoukankan      html  css  js  c++  java
  • day15 考试讲解和面试题

    新知识:

    1、

      实数:

         有理数 有限小数  1.2

            无限循环小数1.23232323

         无理数:无限不循环小数

      虚数    3j 

    2、浮点数的特点:当小数部分过于长的时候会出现取值误差

      浮点数--小数:   1.2=12*0.1

    a=1.23253464576563453457854
    print(a)#1.2325346457656345

    3、复数

      复数 a+bj  实部+虚部

      特点:复数之间不能比较大小

      共轭复数 :两个实部相等,虚数部分互为相反数的为共轭复数

    4、float  字符串转换为数字

    print(float("1.2345"))

    试卷讲解:

    1、char 数据类型是属于C语言  不支持Python

    2、字典的特点

    (1)字典是无序的;

    (2)数据关联性强

    (3)键值对,唯一一个映射的数据类型

    (4)字典的键必须是可哈希的(不可变的数据类型;字符串,数字,布尔值,元祖)并且是唯一的

                               不可哈希的(可变的数据类型:列表,字典,set)

    3、进制之间的转换

    print(bin(20))  #2进制
    print(oct(20))  #8进制
    print(hex(20))  #16进制
    # 0b10100
    # 0o24
    # 0x14

    4、

      表示复数的语法是 real+image j

      虚部必须后缀j且j不区分大小写

      方法conjugate 返回复数的共轭复数

    5、比较运算符的优先级大于逻辑运算符

         有优先级 not>and>or

    6、填空题

    l=range(100)
    #取第一到第三个元素
    print(list(l[:3]))
    #去倒数第二个元素
    print(l[-2])
    #取后十个元素
    print(list(l[-10:]))
    #把l复制给l1用
    l1=l.copy()

    7、判断一个变量是不是字符串

    type(a) is str

    8、

      如何得到列表list 的交集和差集

         先转换成集合 s&b  a-b

    9、

      *args 和**kwargs  在参数不确定的时候会使用到,

      *args 是接收按位置传参的所有参数,

      **kwargs是接收按照关键字传参的所有参数

    10、打印字典的键值对   (避免使用items)

    d={"a":1,"c":3}
    for k in d:
        print(k,d[k])
    # a 1
    # c 3

    11、写出一段python 代码实现删除一个list里面的重复元素

    mew_l=[]
    for i in list:
        if i not in new_l:
            new_l.append(i)
    #列表里面如果有字典,转化为集合会错误

    12、

      斐波那契数列1,2,3,5,8,13,21.....根据这样的规律,

      求出400万以内最 大的斐波那契数,并求出他是第几 个斐波那契数。

    count=2
    a,b=1,2
    while a+b<4000000:
        c=a+b
        a=b
        b=c
        count+=1
    print(c)
    print(count)
    # 3524578
    # 32

    13、

    dicta = {"a":1,"b":2,"c":3,"d":4,"f":"hello"} dictb = {"b":3,"d":5,"e":7,"m":9,"k":"world"}

    要求写 段代码,实现两个字典的相加,不同的key对应的值保留,相同的key对应的值相加后保留,

    如果是字符串就拼接,如上 例得到结果为: dictc = {"a":1,"b":5,"c":3,"d":9,"e":7,"m":9,"f":"hello","k":"world"}

    dicta={"a":1,"b":2,"c":3,"d":4,"f":"hello"}
    dictb={"b":3,"d":5,"e":7,"m":9,"k":"world"}
    dictc=dicta
    for key in dictb:
        if key in dictc:
            dictc[key]=dictc[key]+dictb[key]
        else:
            dictc[key]=dictb[key]
    print(dictc)
     

    14、没搞明白的一道

    def add(n,i):
        return n+i
    def tes():
        for i in range(4):
            yield i
    g=tes()
    for n in [1,5]:
        g=(add(n,i)for i in g)
    print(list(g))

    15、

    个数据结构如下所 ,请编写 个函数从该结构数据中返回由指定的字段和对应的值组成的字典。如果指定字段不存在,则跳过该字段。(10分)

    data:{"time":"2016-08-05T13:13:05", "some_id":"ID1234", "grp1":{ "fld1":1,

    "fld2":2}, "xxx2":{ "fld3":0,

    "fld5":0.4},

    "fld6":11,

    "fld7":7,

    "fld46":8} fields:由"|"连接的以"fld"开头的字符串,如:fld2|fld3|fld7|fld19

    def select(data,fields):

    # TODO:implementation return result

    data={"time": "2016-08-05T13:13:05", "some_id": "ID1234",
           "grp1": {"fld1": 1,"fld2": 2},
           "xxx2": {"fld3": 0, "fld5": 0.4},
           "fld6": 11, "fld7": 7, "fld46": 8}
    fields="fld2|fld3|fld7|fld9"
    fields_lst=fields.split("|")
    result={}
    data_lst=[1]
    while data!=1:
        for key in data:
            if key in fields_lst:
                result[key]=data[key]
            if type(data[key])==dict:
                data_lst.append(data[key])
        data=data_lst.pop()
    print(result)
    附加题

    16、面试题

    生成器里面的值只能被取一次:

    def demo():
        for i in range(4):
            yield i
    g=demo()
    g1=(i for i in g)
    g2=(i for i in g1)
    print(list(g1))     #[0, 1, 2, 3]
    print(list(g2))  #[]
    生成器表达式的应用
  • 相关阅读:
    闪电侠 Netty 小册里的骚操作
    面试被问烂的 Spring IOC(求求你别再问了)
    面试问烂的 Spring AOP 原理、SpringMVC 过程(求求你别问了)
    使用 Cglib 实现多重代理
    Redis 初次见面
    Apollo 10 — adminService 全量发布
    Apollo 9 — adminService 主/灰度版本发布
    简析限流算法
    Dubbo 源码分析
    Dubbo 源码分析
  • 原文地址:https://www.cnblogs.com/number1994/p/7989404.html
Copyright © 2011-2022 走看看