zoukankan      html  css  js  c++  java
  • python作业1215

    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
    会报错,
    print("hi there %s" % str(name))

    4.阅读下面的代码,写出A0,A1至An的最终值。

    A0 = dict(zip(('a','b','c','d','e'),(1,2,3,4,5)))

    {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

    A1 = range(10)

    range(0,10)

    A2 = [i for i in A1 if i in A0]

    []

    A3 = [A0[s] for s in A0]

    [1, 2, 3, 4, 5]

    A4 = [i for i in A1 if i in A3]

    [1, 2, 3, 4, 5]

    A5 = {i:i*i for i in A1}

    {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

    A6 = [[i,i*i] for i in A1]

    [[0, 0], [1, 1], [2, 4], [3, 9], [4, 16], [5, 25], [6, 36], [7, 49], [8, 64], [9, 81]]

    5.你如何管理不同版本的代码?

     通过GItHub

    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,4]
     

    7.这两个参数是什么意思:*args**kwargs?我们为什么要使用它们?

     *args可变参数

    **kwargs:关键字参数

    如果我们不确定要往函数中传入多少个参数,或者我们想往函数中以列表和元组的形式传参数时,那就使要用*args。

    如果我们不知道要往函数中传入多少个关键词参数,或者想传入字典的值作为关键词参数时,那就要使用**kwargs。

    8.阅读下面的代码,它的输出结果是什么?

    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()
    go 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()
     

    9.请写出一段Python代码实现删除一个list里面的重复元素

    list=[1,2,1,2,1,4,3,5]
    a=set(list)
    print (a)

    10.单引号,双引号,三引号的区别

     三引号可以多行输出,而单引号和双引号只能在一行上,在需要单引号和双引号的字符串中可以使用转义字符来(在需要转义的字符前)

    11.写一个函数, 输入一个字符串, 返回倒序排列的结果

    输入: string_reverse(‘abcdef') , 返回: ‘fedcba',写出你能想到的多种方法

    str1 = input( ' Input a string : ' )
    
    print( str1[ : : -1 ] )

     12. 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。利用当前我们所学知识,尝试使得所创建的类是单实例模式

    编程练习

    1.定义一个点(Point)类和直线(Line)类,使用 getLen 方法可以获得直线的长度。`?^$q=:dI

    提示:

      • 设点 A(X1,Y1)、点 B(X2,Y2),则两点构成的直线长度 |AB| = √((x1-x2)2+(y1-y2)2)
      • Python 中计算开根号可使用 math 模块中的 sqrt 函数
      • 直线需有两点构成,因此初始化时需有两个点(Point)对象作为参数

    2.列表[1,2,3,4,5],请使用map()函数输出[1,4,9,16,25],并使用列表推导式提取出大于10的数,最终输出[16,25]

    3.

    坦克

    某次战役中,为便于信息交互,我军侦察部门将此次战役的关键高地坐标设定为(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

  • 相关阅读:
    MSDN Magazine搞错了
    Visual Studio 2005中设置调试符号(Debug Symbols)
    BCB 6的问题
    吴裕雄天生自然Spring Boot使用Spring Data JPA实现人与身份证的一对一关系映射
    吴裕雄天生自然Spring BootSpring Data JPA
    吴裕雄天生自然Spring BootSpring Boot对JSP的支持
    吴裕雄天生自然Spring BootSpring Boot的异常统一处理
    吴裕雄天生自然Spring Boot使用Spring Data JPA实现Author与Article的一对多关系映射
    吴裕雄天生自然Spring Boot解决 Error creating bean with name 'entityManagerFactory' defined in class path resource
    吴裕雄天生自然Spring Boot@ExceptionHandler注解和@ControllerAdvice注解
  • 原文地址:https://www.cnblogs.com/sunjiawei/p/10129544.html
Copyright © 2011-2022 走看看