python常见问题

问题1

到底什么是python?主要对比与其它技术的区别。

答案

关键点:

  • Python是一种解释型语言。与C语言和C的衍生语言不同,Python代码再运行之前不需要编译。其中解释型语言还包括PHP和Ruby。
  • Python是动态型语言,指的是你再声明变量时,不需要说明变量的类型。可以直接编写类似a = 1和s = 'I am a string'这样的代码,而不会报错。
  • Python非常适合面向对象的编程(opp),因为它支持通过组合(composition)与继承(inheritance)的方式定义类(class)。Python中没有访问说明符(类似C++中的public和private)。
  • 在Python语言中,函数是第一类对象。这指的的是它们可以被制定给变量,函数既能返回函数类型,也可以接受函数作为输入。
  • Python代码编写快,但是运行速度比编译语言通常要慢。好在python允许加入基于C语言编写的扩展,因此我们能够优化代码,消除瓶颈,这点通常是可以实现的。numpy就是一个很好的例子,它的运行速度真的非常快,因为很多算术运算其实并不是通过python实现的。
  • Python用途非常广泛——网络应用,自动化,科学建模,大数据应用,等等。它也常被用作“胶水语言”,帮助其他语言和组件改善运行状况。
  • Python让困难的事情变得容易,因此程序员可以专注于算法和数据结构的设计,而不用处理底层的细节

问题2

阅读下面的代码,写出A0,A1至A6的最终值。

A0 = dict(zip(('a','b','c','d','e'),(1,2,3,4,5)))
A1 = range(10)
A2 = [i for i in A1 if i in A0]
A3 = [A0[s] for s in A0]
A4 = [i for i in A1 if i in A3]
A5 = {i:i*i for i in A1}
A6 = [[i,i*i] for i in A1]

答案

A0 = {'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4}
A1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
A2 = []
A3 = [1, 3, 2, 5, 4]
A4 = [1, 2, 3, 4, 5]
A5 = {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
A6 = [[0, 0], [1, 1], [2, 4], [3, 9], [4, 16], [5, 25], [6, 36], [7, 49], [8, 64], [9, 81]]

为什么提这个问题

  • 列表解析(list comprehension)十分节约时间,对很多人来说也是一个大的学习障碍。
  • 如果你读懂了这些代码,就很可能可以写下正确地值。
  • 其中部分代码故意写的怪怪的。因为你共事的人之中也会有怪人。

 

posted on 2019-03-11 15:48  victory__li  阅读(144)  评论(0编辑  收藏  举报