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))) # {'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.这两个参数是什么意思:*args,**kwargs?我们为什么要使用它们?

*args:代表任何类型(int,float,str)
**kw:是代表任何键值对
在对函数传参数时,不能确定参数的类型,使用*args,**kwargs可以接受任何的参数。

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

l = ['a','b','c','a','b','s','c']
l2 = []
[l2.append(i) for i in l if i not in l2]
print(l2)
l = ['a','b','c','a','c','b']
l = set(l)
print(l)

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

单引号和双引号没区别,都是用来定义字符
三引号可以注释,可以用来换行

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

def re(a):
    l = []
    s = ''
    for i in a:
        l.append(i)
    l1 = sorted(l,reverse=True)
    for i in l1:
        s+=i
    #print(s)
    return s
m = 'abcdef'
b=re(m)
print(b)

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

l = [1,2,3,4,5]
def ping(a):
    return a**2
l1 = map(ping,l)
l1 = list(l1)
l2 = [i for i in l1 if i > 10]
print(l2)

  

 

posted on 2018-12-17 13:07  南都999  阅读(122)  评论(0编辑  收藏  举报