码迷,mamicode.com
首页 > 其他好文 > 详细

面试题

时间:2018-12-27 15:33:38      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:变量   结束   添加   app   info   函数   过程   代码   .com   

1、打印菱形:

技术分享图片

s = *
for i in range(1,8,2):
    t = (7-i)//2
    print( *t + s*i +  *t)
for i in range(5,0,-2):
    t = (7-i)//2
    print( *t + s*i +  *t)

2、一行代码实现对列表a中的偶数位置的元素进行加3后求和?

sums = sum(map(lambda x: x + 3, a[1::2]))

3、在调用一个函数的过程中,直接或间接地调用了函数本身这个就叫递归。但为了避免出现死循环,必须要有一个结束条件,举个例子:

>>> def facto(n):
 if n==1: return 1
 return n*facto(n-1)
>>> facto(4)
24
4、下面代码会输出什么:
def f(x,l=[]):
    for i in range(x):
        l.append(i*i)
    print l

f(2)
f(3,[3,2,1])
f(3)

答案

[0, 1]
[3, 2, 1, 0, 1, 4]
[0, 1, 0, 1, 4]

第一个函数调用十分明显,for循环先后将0和1添加至了空列表l中。l是变量的名字,指向内存中存储的一个列表。第二个函数调用在一块新的内存中创建了新的列表。l这时指向了新生成的列表。之后再往新列表中添加0、1、2和4。很棒吧。第三个函数调用的结果就有些奇怪了。它使用了之前内存地址中存储的旧列表。这就是为什么它的前两个元素是0和1了。

 

面试题

标签:变量   结束   添加   app   info   函数   过程   代码   .com   

原文地址:https://www.cnblogs.com/ljf5201314/p/10178809.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!