python20181217作业7
1.以下程序输出结果是什么 a = 1 def fun(a): a = 2 fun(a) print (a) a = [] def fun(a): a.append(1) fun(a) print(a) 输出结果: 1 [1] 2.请简要说明什么是类变量,什么是实例变量,并观察以下程序的输出结果
答:实例变量必须在变量前添加self.
类变量则不需要
class Person: name="aaa" p1=Person() p2=Person() p1.name="bbb" print(p1.name) print(p2.name) print(Person.name) 输出结果: bbb aaa aaa 3.以下语句有什么弊端,name是元祖的时候,程序会是什么样的结果,如何避免 "hi there %s" % name 答: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] 打印结果如下: A0 {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5} A1 range(0, 10) A2 [] A3 [1, 2, 3, 4, 5] A4 [1, 2, 3, 4, 5] A5 {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81} A6 [[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) f(3,[3,2,1]) f(3) 输出结果: [0, 1] [3, 2, 1, 0, 1, 4] [0, 1, 0, 1, 4] 7.这两个参数是什么意思:**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() 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里面的重复元素
s = [2,54,2,8,4,6,8,9,1,5,7,4] ll = list(set(ls)) print(ll)
11.写一个函数, 输入一个字符串, 返回倒序排列的结果 输入: string_reverse(‘abcdef') , 返回: ‘fedcba',写出你能想到的多种方法 方法一: a = 'abcdef' print(a[::-1]) 方法二: a = 'abcdef' ls = list(a) ls.reverse() print("".join(ls)) 10.单引号,双引号,三引号的区别 答:单引号和双引号都是用来表示字符串,三引号可以用来表示字符串和用来注释,三引号里用\n换行表示换行。