zoukankan      html  css  js  c++  java
  • python面试题

    1、以下程序执行输出的结果是什么?
    a = 1
    def fun(a):
        a = 2
    fun(a)
    print (a)    # 1
    
    a = []
    def fun(a):
        a.append(1)
    fun(a)
    print(a)  # [1]
    2、请简要说明什么是类变量,什么是实例变量,并观察以下程序的输出结果
    class Person:
        name="aaa"
    p1=Person()
    p2=Person()
    p1.name="bbb"
    print(p1.name) # bbb
    print(p2.name) # aaa 
    print(Person.name) # aaa
    3、以下语句有什么弊端,name是元祖的时候,程序会是什么样的结果,如何避免
    "hi there %s" % name
    %s是字符占位符,当name为元组时会报错,要想避免错误要使用.format()来输出
    4、阅读下面的代码,写出A0,A1至An的最终值。
    A0 = dict(zip(('a','b','c','d','e'),(1,2,3,4,5))) 
    A1 = range(10) 
    A2 = [i for i in A1 if i in A0] 
    A3 = [A0[s] for s in A0] 
    A4 = [i for i in A1 if i in A3]
    A5 = {i:i*i for i in A1}
    A6 = [[i,i*i] for i in A1]
    print(A0) # {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
    print(A1) # range(0, 10)
    print(A2) # []
    print(A3) # [1, 2, 3, 4, 5]
    print(A4) # [1, 2, 3, 4, 5]
    print(A5) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
    print(A6) # [[0, 0], [1, 1], [2, 4], [3, 9], [4, 16], [5, 25], [6, 36], [7, 49], [8, 64], [9, 81]]
    5、你如何管理不同版本的代码?
    6、下面代码会输出什么
    def f(x,l=[]):
        for i in range(x):
            l.append(i*i)
        print(l)
    f(2) # [0, 1]
    f(3,[3,2,1]) # [3, 2, 1, 0, 1, 4]
    f(3) # [0, 1, 0, 1, 4]
    7、这两个参数是什么意思:*args,**kwargs?我们为什么要使用它们?
    *args是元组,
    **kwargs是字典,传入的参数是关键词,
    8、请写出一段Python代码实现删除一个list里面的重复元素
    list1 = [1,1,2,2,3,4,5,3,4,5,6]
    list2 = list(set(list1))
    print(list2)
    9、单引号,双引号,三引号的区别
    三者都是字符型数据,三引号表示多行文本注释
    10、写一个函数, 输入一个字符串, 返回倒序排列的结果
    11、单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。利用当前我们所学知识,尝试使得所创建的类是单实例模式
    12、定义一个点(Point)类和直线(Line)类,使用 getLen 方法可以获得直线的长度。
    
    提示:
    
    设点 A(X1,Y1)、点 B(X2,Y2),则两点构成的直线长度 |AB| = √((x1-x2)2+(y1-y2)2)
    Python 中计算开根号可使用 math 模块中的 sqrt 函数
    直线需有两点构成,因此初始化时需有两个点(Point)对象作为参数
    13、列表[1,2,3,4,5],请使用map()函数输出[1,4,9,16,25],并使用列表推导式提取出大于10的数,最终输出[16,25]
    14、阅读下面的代码,它的输出结果是什么?
    
    class A(object):
        def go(self):
            print "go A go!"
        def stop(self):
            print "stop A stop!"
        def pause(self):
            raise Exception("Not Implemented")
    ​
    class B(A):
        def go(self):
            super(B, self).go()
            print "go B go!"class C(A):
        def go(self):
            super(C, self).go()
            print "go C go!"
        def stop(self):
            super(C, self).stop()
            print "stop C stop!"class D(B,C):
        def go(self):
            super(D, self).go()
            print "go D go!"
        def stop(self):
            super(D, self).stop()
            print "stop D stop!"
        def pause(self):
            print "wait D wait!"
    class E(B,C): pass
    a = A()
    b = B()
    c = C()
    d = D()
    e = E()
    ​
    # 说明下列代码的输出结果
    ​
    a.go()
    b.go()
    c.go()
    d.go()
    e.go()
    ​
    a.stop()
    b.stop()
    c.stop()
    d.stop()
    e.stop()
    ​
    a.pause()
    b.pause()
    c.pause()
    d.pause()
    e.pause()
    15、坦克大战
    某次战役中,为便于信息交互,我军侦察部门将此次战役的关键高地坐标设定为(x=0,y=0)并规定,每向东增加100米,x加1,每向北增加100米,y加1。同时,我军情报部门也破译了敌军向坦克发送的指挥信号,其中有三种信号(L,R,M)用于控制坦克的运动,L 和 R 分别表示使令坦克向左、向右转向,M 表示令坦克直线开进100米,其它信号如T用于时间同步,P用于位置较准。
    
    一日,我军侦察兵发现了敌军的一辆坦克,侦察兵立即将坦克所在坐标(P, Q)及坦克前进方向(W:西,E:东,N:北,S:南)发送给指挥部,同时启动信号接收器,将坦克接收到的信号实时同步发往指挥部,指挥部根据这些信息得以实时掌控了该坦克的位置,并使用榴弹炮精准地击毁了该坦克。
    
    请设计合理的数据结构和算法,根据坦克接收到的信号,推断出坦克所在的位置。
    设计时请考虑可能的扩展情况,并体现出您的设计风格。
    
    假设,侦察兵发送给指挥部的信息如下:
    坦克坐标:(11,39)
    坦克运行方向:W
    坦克接收到的信号为:MTMPRPMTMLMRPRMTPLMMTLMRRMP
    其位置应该是(9,43),运动方向为E
  • 相关阅读:
    了解 NoSQL 的必读资料
    关于什么时候用assert(断言)的思考
    这次见到了一些大侠
    NetBeans 时事通讯(刊号 # 87 Jan 12, 2010)
    动态链接库dll,静态链接库lib, 导入库lib
    新女性十得 写得了代码,查得出异常
    记录系统乱谈
    新女性十得 写得了代码,查得出异常
    fullpage.js禁止滚动
    RunningMapReduceExampleTFIDF hadoopclusternet This document describes how to run the TFIDF MapReduce example against ascii books. This project is for those who wants to experiment hadoop as a skunkworks in a small cluster (110 nodes) Google Pro
  • 原文地址:https://www.cnblogs.com/Qingxiaoyu/p/10130068.html
Copyright © 2011-2022 走看看