Python面试题_第 (1) 章

1. 实现异常重试装饰器

  • 要求

    写一个装饰器,当有异常发生的时候,根据异常的最高重试次数,以及休眠时间,再次执行原来的函数
    要求装饰器接收两个参数,这两个参数的都有缺省默认值0
    这里有一个难点就是如何给装饰器传递参数的问题,装饰器传递参数,一般用三层的嵌套来解决

    在这里插入图片描述

2. 数组去重并返回新数组长度

  1. 要求1: 不能使用新的数据结果,就是不能使用集合
  2. 要求2: 不能分给数组额外的内存空间,必须进行原地操作
  • 使用count和remove,利用remove只会remove一个元素的特性,就是remove索引比较小的元素

  • 使用带下标的索引的遍历来实现,根据del list[index] 来操作

3. 利用List来模拟栈的操作

  • 什么是栈

    栈是先进后出,后进先出的数据结果,类似于枪的子弹.

  • 栈一般都包含哪些方法

    1. 压栈(往栈里面添加一个元素)
    2. 出栈(从栈里面取出来一个元素)
    3. 查看栈是否为空
    4. 获取栈顶元素
    5. 查看某个对象在栈的位置

4. 给定一个非负的整数i,求它的二进制数中的1的个数

  • 思路

    先转换为二进制字符串格式,使用count统计1的个数

5. 解释下以下代码的结果和含义

6. 使用至少三种方法计算1到100之间的所有奇数的和

  • 分析

    1. 首先是列表推导式
    2. 使用filter函数
    3. 使用循环
    4. 使用reduce,它具有累加的效果,可以将后面的参数前两个参数带入,计算出结果和后面参数再组成新的两个参数带入前面的函数

Guess you like

Origin blog.csdn.net/Fioman_GYM/article/details/120799786