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 1v5 = 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关键字。