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))  #[]
    生成器表达式的应用
  • 相关阅读:
    共享纸巾更换主板代码分析 共享纸巾主板更换后的对接代码
    Python Django Ajax 传递列表数据
    Python Django migrate 报错解决办法
    Python 创建字典的多种方式
    Python 两个list合并成一个字典
    Python 正则 re.sub替换
    python Django Ajax基础
    Python Django 获取表单数据的三种方式
    python Django html 模板循环条件
    Python Django ORM 字段类型、参数、外键操作
  • 原文地址:https://www.cnblogs.com/number1994/p/7989404.html
Copyright © 2011-2022 走看看