Python 练习题 2019-5-14AM

Python 练习题 2019-5-14AM
第一题:解释下列代码运行过程。
a = map(lambda x: x**3, [1, 2, 3])
list(a)

分析:
    本题答案为:  1,8,27
    map()接收两个参数,一个是功能函数f,
    一个list,并将f依次作用在list的每个元素上,
    并返回一个新的list,a**b是求a的b次方的意思。

第二题:python中的 == 与 is区别?

分析:
    ==比较内容是否相等,id不必相等。
    is比较id是否相等。

第三题:简介一下,python中的小整数对象池。

分析:
    为了优化速度,python把【-5,256】数据,
    提前存放在小整数对象池中。
    程序如果恰巧使用这些数据,
    每次使用系统都会从池中拿数据,
    可以节省创建对象的时间耗费。

第四题:python2与python3的range()返回值区别?

分析:
    区别在于python2返回值是列表,
    python3返回值是可迭代对象。
    要想得到列表,
    可以使用list()函数把可迭代对象转为列表。

第五题:分析以下函数执行过程: bar(2)(3) == 8

def bar(multiple):
def foo(n):
return multiple ** n
return foo
print bar(2)(3)

分析:
    调用一个函数是加一个括号。
    如果看见括号后还有一个括号,
    说明第一个bar函数返回了一个函数。
    bar(2)执行未完成,返回foo函数,
    传入参数3,即foo(3)。于是2**2 -> 8

第六题:python赋值表达式返回值是什么?

分析:
    python赋值表达式没有返回值,
    若在C/C++中,赋值表达式将返回所赋的值。

第七题:python中的set与list区别?

分析:
    list是列表,里面元素可重复,
    set是集合,里面元素不会重复。
    将列表转集合,可以简单使用set(list)。

第八题:python中的%与%%区别?

分析:
    % 单列出来就是取模运算符,
    %%没有特殊含义仅在输出语句中起到输出一个百分号作用。

第九题:为什么使用%%而不是%来对%进行转义,谈谈你的理解。

分析:
    为了使用习惯,这是C语言的使用习惯问题,
    因为在C的格式化输出语句中,%后面通常都要接指令,
    如%d,如果使用\%格式化输出,会显得比较突兀,
    而使用%%会较美观些。

第十题:已有全局变量aa,在函数内部有局部变量aa,
若局部变量使用global修饰,会导致哪些方面不同?

分析:
    使用global修饰后aa将变成全局变量。
    补充:不适用global,函数内也可以访问全局变量而不去修改它。

第十题:python中的tuple是什么?如何定义?

分析: 
    tuple中文译为元组,使用括号( )可以用来创建tuple。
    tuple与list一样都是有序列表,tuple与list不一样,
    tuple一旦初始化就不能再修改。
    补充:tuple 中只含一个元素时,需要在元素后加上逗号。
    这是为了区别数学公式中的小括号。

第十一题:分析以下函数执行过程:

class Person:
def init(self):
pass
def getAge(self):
print name
p = Person()
p.getAge()

分析:
    正确的输出应该为:__main__
    1、__name__这个系统变量显示了当前模块执行过程中的名称,
    如果当前程序运行在这个模块中,
    __name__ 的名称就是__main__
    如果不是,则为这个模块的名称。 
    2、__main__一般作为函数的入口,类似于C语言,
    尤其在大型工程中,常常有if __name__ == "__main__":
    来表明整个工程开始运行的入口。

第十二题:python中 分片 是什么?如何使用分片?

分析:
    序列可以进行分片,分片即从一个大序列中取出一个小序列。
    在分片规则里list、tuple、str(字符串)都可以称为序列,
    都可以按规则进行切片操作。
    简单用法说明:序列[a:b:c],a处填开头,b填结尾,c填步进。
    若a、b出现负数,如-2,表示倒数第二个元素。

你可能感兴趣的:(Python 练习题 2019-5-14AM)