自学内容网 自学内容网

【每日一题1121】python校招笔试题、面试题

1、Python字符串不是通过NUL或者’\0’来结束的
C语言中字符串使用’\0’作为结束符,以防止越界。但是在python中,字符串值只包含所定义的东西。

2、执行以下程序,输出结果为()

class Base(object):

    count = 0

    def __init__(self):

        pass
b1 = Base()
b2 = Base()

b1.count = b1.count + 1
print(b1.count,end=" ")
print(Base.count,end=" ")
print(b2.count)

1 0 0
count为类属性,类属性可以为实例属性提供默认值,也就是,当使用b1.count时,count成了b1对象的实例属性,实例属性不会影响到类属性的值,也不会影响到其他实例属性,所以对b1.count进行修改时只会影响自身,Base.count和b2.count的值仍为0。

3、字典的键名是不可变类型。
4、执行以下代码,结果输出为()

num = 1
def fn():
num += 1
return lambda:print(num)
x = fn()
x()

报错。虽然在函数外部声明num 为全局变量,但若函数体内对num变量重新赋值,其结果会使得函数内部屏蔽了外面的全局变量num,此时语句num += 1就会抛出异常,即num变量没有先赋值就直接引用了。
5、What gets printed by the code snippet below?( )
import math
print(math.floor(5.5))
math.floor()表示向下取整。所以是5.

6、执行下列程序,输出结果为()

def fn():
    t = []
    i = 0
    while i < 2:
        t.append(lambda x: print(i*x,end=","))
        i += 1
    return t
for f in fn():
    f(2)

4,4,
函数fn存在闭包现象,自由变量是i,由于python闭包采用延迟绑定,也就是当调用匿名函数时,循环早已结束,此时i的值为2,所以输出结果都为2*2=4,正确答案为4,4,

7、Python中函数是对象:函数可以赋值给一个变量;函数可以作为参数值传递给其它函数;函数可以当做函数的返回值;函数可以作为元素添加到集合对象中。


原文地址:https://blog.csdn.net/gyf200708/article/details/143957163

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!