面试题

1、执行这行代码结果是多少[i**i for i in range(3)]

我写的答案是[0,1,3],忘记了0**0是1

[1,1,3]

2、关于python内存管理:变量可以无需指定类型,可以使用del释放资源,变量不必事先声明

但是变量无需创建和赋值而直接使用是会报错的,is not defined

3、关于字符串:字符串应该视为长度为1的字符串,既可以用单引号,也可以用双引号创建字符串,在三引号字符串中可以包含换行回车等特殊字符

字符串以标志字符串的结束是错误的

4、下列代码运行结果是?a=map(lambda x:x**3,[1,2,3])list(a)

[1,8,27]

5、有一段python的编码程序如下:

urllib.quote(line.decode('gbk').encode('utf-16')),请问经过该编码的字符串的解码顺序是

url解码 utf16 gbk

字符串编译的过程是:gbk==unicode==utf16==url编码

字符串解码顺序是:url解码==utf16==unicode==gbk

6、what gets printed? Assuming python version 2.x() print type(1/2)

<type 'int'>

7、下列表达式值为True的是

A (3,2) < ('a','b')

B 3 > 2 > 2

C 'abc' > 'xyz'

D 5+4j > 2-3j

答案是a,在python2中正确执行,在python3中报错

8、下列哪种函数参数定义不合法?

A def myfunc(*args):

B def myfunc(a=1,**args):

C def myfunc(*args,a=1):

D def myfunc(arg1=1):

答案是C,在python2中,c选项是错的,因为a=1被当做了默认参数,而默认参数只能在可变参数之前

Python2参数顺序:必选参数、默认参数、可变参数和关键字参数

在Python3中,c选项是对的,因为a=1被当做了命名关键字参数,而命名关键字参数需要在可变参数之后

python3参数顺序:必选参数、默认参数、可变参数、命名关键字参数和关键字参数

8、在python2.7中,下列哪种是Unicode编码的书写方式?

a=u'中文'

9、下列哪种说法是错误的

对的:除字典类型外,所有标准对象均可以用于布尔测试,空列表对象的布尔值是False,空字符串的布尔值是False

错的:值为0的任何数字对象的布尔值是False

10、从运行层面看,从四个选项选出不同的一个

A ObjectC

B Python

C C#

D JAVA

答案是B

11、如何解释下面的执行结果?print 1.2-1.0==0.2False

因为浮点数无法精确表示

12、下面python语句正确的是

A if (x>y) print x

B while True:pass

C max=x>y?x:y

D min=x if x < y =y

答案是B

原文地址:https://www.cnblogs.com/z-x-y/p/9862097.html