python基础篇79题

Posted 霸道总裁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础篇79题相关的知识,希望对你有一定的参考价值。

1.为什么学习python?

3.Python和Java、PHP、C、C#、C++等其他语言的对比?

C语言由于其底层操作特性和历史的积累,在嵌入式领域是当之无愧的王者。

PHP跨平台,性能优越,跟linux/unix结合比跟windows结合性能强45%,开发成本低,php5已经有

成熟的面向对象体系,适合开发大型项目淘宝网,Yahoo,163,sina等等大型门户,很多选用

PHP来作为他们的开发语言。

JAVA的优点:1.简单性 2.面向对象性(面向对象的程度可以达到95%)3.健壮性4.跨平台性

5.高性能(自动垃圾回收机制) 6.多线程 7.动态性 8.安全性

========================================================================

4.简述解释型和编译型编程语言

5.python解释器种类及其特点

cpython:这个解释器是用C语言开发的,所以叫cpython,在命名行下运行python,就是启动cpython

解释器,cpython是使用最广的python解释器。

jython:jython是运行在java平台上的python解释器,可以直接把python代码编译成java字节码执行。

Ipython:Ipython是基于cpython智商的一个交互式解释器,也就是说,Ipython只是在交互方式上

有所增强,但是执行python代码的功能和cpython是完全一样的,好比很多国产浏览器虽然外观

不同,但内核其实调用了IE。

6.位和字节的关系

7.b、B、KB、MB、GB 的关系?

8.请至少列举5个 PEP8 规范(越多越好)。

9.通过代码实现如下转换:

上课补充的代码转换

print(bin(3)) #十进制转成二进制,0b11
print(oct(8)) #十进制转成八进制,0o10
print(10) #10
print(hex(16)) #十进制转成十六进制,0x10

二进制转换成十进制:v = “0b1111011”


#先将其转换为字符串,再使用int函数,指定进制转换为十进制。
print(int("0b1111011",2))
#值为123

十进制转换成二进制:v = 18
 

print("转换为二进制为:", bin(18))
#转换为二进制为: 0b10010

八进制转换成十进制:v = “011”

print(int("011",8))

十进制转换成八进制:v = 30
 

print("转换为八进制为:", oct(30))
#转换为八进制为: 0o36

十六进制转换成十进制:v = “0x12”
 

print(int("0x12",16))
#18

十进制转换成十六进制:v = 87

print("转换为十六进制为:", hex(87))
转换为十六进制为: 0x57

10.请编写一个函数实现将IP地址转换成一个整数。

如 10.3.9.12 转换规则为:
        10            00001010

         3            00000011

         9            00001001

        12            00001100

再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ?

 

11.python递归的最大层数?

12.求结果:

v1 = 1 or 3


v2 = 1 and 3


v3 = 0 and 2 and 1

v4 = 0 and 2 or 1
v5 = 0 and 2 or 1 or 4

v6 = 0 or Flase and 1

这题不会

13.ascii、unicode、utf-8、gbk 区别?

14.字节码和机器码的区别?

字节码
字节码是一种中间码
字节码通常指的是已经经过编译,但与特定机器码无关,需要直译器转译后才能成为机器码的中间代码。字节码通常不像源码一样可以让人阅读,而是编码后的数值常量、引用、指令等构成的序列。
字节码主要为了实现特定软件运行和软件环境、硬件环境无关。字节码的实现方式是通过编译器和虚拟机器。编译器将源码编译成字节码,特定平台上的虚拟机器将字节码转译为可以直接执行的指令。字节码的典型应用为Java语言。
总结:字节码是一种中间状态(中间码)的二进制代码(文件)。需要直译器转译后才能成为机器码。

15.三元运算规则以及应用场景?

16.列举 Python2和Python3的区别?

pass

17.用一行代码实现数值交换:
     
 a = 1
 
     b = 2

a,b=b,a

print(a,b)  #a=2,b=1

18.Python3和Python2中 int 和 long的区别?

long整数类型呗python3废弃,统一使用int

19.xrange和range的区别?

20.文件操作时:xreadlines和readlines的区别?

二者使用时相同,但返回类型不同,xreadlines返回的是一个生成器,readlines返回的是list

21.列举布尔值为False的常见值?

0 空 none

22.字符串、列表、元组、字典每个常用的5个方法?

23.lambda表达式格式以及应用场景?

24.pass的作用?

25.*arg和**kwarg作用

26.is和==的区别

is对比的是值,==对比的是内存地址

未完待续

27.简述Python的深浅拷贝以及应用场景?

待整理

28.python垃圾回收机制

 

29.Python的可变类型和不可变类型?

python的每个对象分为可变和不可变

可变:列表,字典

不可变:数字,字符串,元祖

  对不可变类型的变量重新赋值,实际上是重新创建一个不可变类型的对象,并将原来的变量重新指向新创

建的对象(如果没有其他变量引用原有对象的话(即引用计数为0),原有对象就会被回收)。

不可变类型

30.求结果


未完待续

31.

未完待续

32.列举常见的内置函数

33.filter、map、reduce的作用?

34.一行代码实现9*9乘法表

35.如何安装第三方模块?以及用过哪些第三方模块?

36.至少列举8个常用模块都有那些?

37.re的match和search区别?

38.什么是正则的贪婪匹配?

39.求结果:
 a. [ i % 2 for i in range(10) ]
 b. ( i % 2 for i in range(10) )

40.求结果:
 a. 1 or 2
 b. 1 and 2
 c. 1 < (2==2)
 d. 1 < 2 == 2

41.def func(a,b=[]) 这种写法有什么坑?

42.如何实现 “1,2,3” 变成 [‘1’,’2’,’3’] ?

43.如何实现[‘1’,’2’,’3’]变成[1,2,3] ?

44.比较: a = [1,2,3] 和 b = [(1),(2),(3) ] 以及 b = [(1,),(2,),(3,) ] 的区别?

45.如何用一行代码生成[1,4,9,16,25,36,49,64,81,100] ?

46.一行代码实现删除列表中重复的值 ?

47.如何在函数中设置一个全局变量 ?

48.logging模块的作用?以及应用场景?

通过log的分析,可以方便用户了解系统或软件、应用的运行情况;如果你的应用log足够丰富,

也可以分析以往用户的操作行为、类型喜好、地域分布或其他更多信息;如果一个应用的log同

时也分了多个级别,那么可以很轻易地分析得到该应用的健康状况,及时发现问题并快速定位、

解决问题,补救损失。简单来讲就是,我们通过记录和分析日志可以了解一个系统或软件程序

运行情况是否正常,也可以在应用程序出现故障时快速定位问题。比如,做运维的同学,在接

收到报警或各种问题反馈后,进行问题排查时通常都会先去看各种日志,大部分问题都可以在

日志中找到答案。再比如,做开发的同学,可以通过IDE控制台上输出的各种日志进行程序调

试。对于运维老司机或者有经验的开发人员,可以快速的通过日志定位到问题的根源。可见,

日志的重要性不可小觑。日志的作用可以简单总结为以下3点:

  • 程序调试
  • 了解软件程序运行情况,是否正常
  • 软件程序运行故障分析与问题定位                  

如果应用的日志信息足够详细和丰富,还可以用来做用户行为分析,如:分析用户的操作行为、

类型洗好、地域分布以及其它更多的信息,由此可以实现改进业务、提高商业利益。

logging模块默认定义了以下几个日志等级,它允许开发人员自定义其他日志级别,但是这是不

被推荐的,尤其是在开发供别人使用的库时,因为这会导致日志级别的混乱。

开发应用程序或部署开发环境时,可以使用DEBUG或INFO级别的日志获取尽可能详细的日志信息来进行开发或部署调试;

应用上线或部署生产环境时,应该使用WARNING或ERROR或CRITICAL级别的日志来降低机器的I/O压力和提高获取错误

日志信息的效率。日志级别的指定通常都是在应用程序的配置文件中进行指定的。

49.请用代码简答实现stack 。

50.常用字符串格式化哪几种?

51.简述 生成器、迭代器、可迭代对象 以及应用场景?

52.用Python实现一个二分查找的函数。

nums=[1,3,7,11,22,34,55,78,111,115,137,149,246,371]
def search(search_num,nums):
    print(nums)
    if len(nums) == 0:
        print(\'not exists\')
        return
    mid_index=len(nums) // 2
    if search_num > nums[mid_index]:
        # in the right
        nums=nums[mid_index+1:]
        search(search_num,nums)
    elif search_num < nums[mid_index]:
        # in the left
        nums=nums[:mid_index]
        search(search_num,nums)
    else:
        print(\'find it\')

search(31,nums)

53.谈谈你对闭包的理解?

54.os和sys模块的作用?

55.如何生成一个随机数?

56.如何使用python删除一个文件?

57.谈谈你对面向对象的理解?

58.Python面向对象中的继承有什么特点?

59.面向对象深度优先和广度优先是什么?

60.面向对象中super的作用?

61.是否使用过functools中的函数?其作用是什么?

62.列举面向对象中带爽下划线的特殊方法,如:__new__、__init__

 

63.如何判断是函数还是方法?

函数:函数是封装了一些独立的功能,可以直接调用,python内置了许多函数,同时可以自建函数

来使用。

方法:方法和函数类似,同样封装了独立的功能,但是方法是需要通过对象来调用的,表示针对

这个对象要做的操作,使用时采用点方法。

64.静态方法和类方法区别?

65.列举面向对象中的特殊成员以及应用场景

66.1、2、3、4、5 能组成多少个互不相同且无重复的三位数

 

67.什么是反射?以及应用场景?

68.metaclass作用?以及应用场景?

69用尽量多的方法实现单例模式。

70.装饰器的写法以及应用场景。

装饰器的写法待补充

71.异常处理写法以及如何主动跑出异常(应用场景)

72.什么是面向对象的mro

73.isinstance作用以及应用场景?

74.写代码并实现:
  Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would 
  have exactly one solution, and you may not use the same element twice.
  Example:

            Given nums = [2, 7, 11, 15], target = 9,
           
  Because nums[0] + nums[1] = 2 + 7 = 9,

             return [0, 1]

 

75.json序列化时,可以处理的数据类型有哪些?如何定制支持datetime类型?

76.json序列化时,默认遇到中文会转换成unicode,如果想要保留中文怎么办?

不理解

77.什么是断言?应用场景?

78.有用过with statement吗?它的好处是什么?

79.使用代码实现查看列举目录下的所有文件。

80.简述 yield和yield from关键字。

 

以上是关于python基础篇79题的主要内容,如果未能解决你的问题,请参考以下文章

python之基础篇——模块与包

python面试题库——1Python基础篇(80题)

Python基础---面试题汇总

100天精通Python(可视化篇)——第79天:matplotlib绘制不同种类炫酷折线图代码实战(网格趋势对比百分比多条折线堆积百分比堆积多坐标子图3D折线图)

Python小白到老司机,快跟我上车!基础篇(十三)

Python入门教程第79篇 反斜线字符