面试题(六)

1、 获取list的元素个数,向list的末尾追加元素所用的方法分别是( ),( )

count ,append
答案

2、 判断dict有没有某个key用的方法是( )

in
答案

3、 L = range(100) ,取第一到第三个元素用(),取倒数第二个元素(),取后十个元素()

L[:3]
L[-2]
L[-10:]
答案

4、 把L复制给L1用() 注意:非引用传递

L1 = L.copy()
答案

5、d = {'a':1,'b':2,'c':3}请打印出key,value对

for k,v in d.items():
    print(k,v)
答案

6、 如何判断一个变量是不是字符串

isinstance(a,str)
答案

7、 list和tuple有什么不同?

8、 xrange和range有什么不同?

9、 ‘1,2,3’如何变成[‘1’,’2’,’3’] ?  [‘1’,’2’,’3’]如何变成 [1,2,3]

s1 = "1,2,3"
s2 = list(s1.split(','))
s3 = list(map(int,s2))
答案

10、请回答以下问题?

def add_end(L= []):
    L.append('END')
    return L
print(add_end()) # 输出什么?
print(add_end()) # 再次调用输出什么?为什么?
["END"] ["END",""END] 函数的默认参数在编译时,分配内存空间。没有给予参数都是使用默认的参数,是同一段内存地址的同一对象。
答案

11、[36,5,12,9,21]怎么排序?

a = [36,5,12,9,21]
a.sort()
答案

12、请回答以下问题:

def func(a,b,c=0,*args,**kwargs):

    pass

*args,**kwargs的作用是什么?
当函数的参数不确定时,可以使用*args 和**kwargs来 传递可变参数。
*args储存可变的位置参数,它会接收任意多个参数并把这些参数作为元组传递给函数。**kwargs存储可变的关键字参数,允许你使用没有事先定义的参数名,将接收到任意多个关键字参数作为字典传递给函数。
注意函数的参数的顺序:args必须在kwargs前面,调用函数传递参数也必须依照此顺序
答案

13、is和==的区别是?

Python中的对象包含三要素:id、type、value
其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值
is判断的是a对象是否就是b对象,是通过id来判断的
==判断的是a对象的值是否和b对象的值相等,是通过value来判断的
答案

14、如何生成[1,4,9,16,25,36,49,64,81,100]?尽量用一行实现

[x*x for x in range(1,11)]
答案

15、生成器是什么?有什么作用?请写出一个生成器

a = ( i for i in range(11))
答案

16、map(str,[1,2,3,4,5,6,7,8,9])输出什么?

#  生成的是map对象
print(list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9])))
# ['1', '2', '3', '4', '5', '6', '7', '8', '9']
答案

17、请写出log的实现(主要功能是打印函数名)

@log
def now():
    print('2013-12-25')

now()

# 输出:
# call now()
# 2013-12-25
import functools

def log(func):
    @functools.wraps(func)
    def inner():
        print('call '+ func.__name__ + '()')
        func()
    return inner
答案
原文地址:https://www.cnblogs.com/skiler/p/6943660.html