zoukankan      html  css  js  c++  java
  • 面试题

    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了。

  • 相关阅读:
    图片懒加载原生写法。
    ES6新声明
    下拉刷新上拉加载
    angular动画
    angular路由切换后 轮播以及iscrollJs失效的问题
    ui-route多级嵌套时的默认显示。
    iscroll.js的基本布局
    angular ng-route和ui-route
    require.js JQ
    Cookie&Session
  • 原文地址:https://www.cnblogs.com/ljf5201314/p/10178809.html
Copyright © 2011-2022 走看看