Python基本原理(学校课程材料翻译)

写在前面:

这篇文章是根据UCI(University of California, Irvine)计算机教授Rich Pattis的课堂笔记整理而成。文章主要目的是复习Python的一些初等概念,为接下来的学习巩固基础。

___________________________________________________________________________________________________

Python复习(所有你应该在初级课程中学习到的知识)

当你阅读这篇材料时,我强烈建议里打开Eclipse并且创建一个空的模块,并且将材料中的一些代码亲自实践一下。我永远在Eclipse中都存有一个“experiment”模块以便随时测试自己的想法与疑惑。

 

这篇课程笔记篇幅很长(包括三节演讲的内容),但是这些信息都不是非常晦涩难懂(因为这是基础课复习)。我希望你都对这些内容烂熟于心,但可能有些东西你仍然比较陌生。俗话说得好,不懂就问。这里是三句箴言:

1. 通往智慧的第一步是正确说出你想提问的内容!

2. 那些认为问问题很没面子的人基本上也很Low

3.The voyage of discovery is not in seeking new landscapes but in having new eyes. - M. Proust 追求真理的航行中不是要寻找新的风景,而是拥有一双明亮的眼睛。

_______________________________________________________________________________________________________

四句话概括Python

1. Names (in namespaces) are bound to objects. 名称(在命名空间中)被绑定到对象上。

2. Everything that Python computes with is an object. Python的运算活动基于对象。(实例对象,数据对象,函数对象,模块对象,类对象等)

3. Every object has its own namespace. 所有对象都拥有自己的命名空间。字典将其内部名称绑定到其他对象上。

4. Python has rules about how things work. Python规定了各种元素如何运作。

直觉上来说这几句话可能不会对你有任何帮助,但其实它们描述了一个可以解释编译所有在Python上实现想法的框架。

所有名称都出现在特定对象的命名空间中(当我们定义一个模块的名称时,这些名称就会出现模块类的命名空间中),并且名称自己会被绑定到特定的对象(名称在定义的时候位于等号=左侧,它们可以被通过再次使用等号而被重新绑定到另一个对象上。)

对象是Python运行的最基本单位。举例:(整型对象为 int object 是整型类 int class 的实例化)

1. 我们可以用操作符来进行整型变量对象的运算(整型类的实例化对象);通过x = 1被绑定名称的整型对象x可以通过x = x + 1被重新绑定。我们之后会学到Python会将这条命令解析为调用 x.__add__(1),而这条命令会被解析为调用 int.__add__(x,1)。x这里储存了一个对于整型对象的引用。

2. 我们可以通过调用操作来进行函数对象的运算。对于print这个名称绑定到函数对象,我们可以写print(x)。我们之后会学到我们也可以将函数作为参数来调用函数并且令一个函数返回另一个函数这种神奇的操作。

3. 我们可以通过import模块来进行模块对象的运算。
比如 import random                        或           from random import randint
        x = random.randint(1,5)                        x = randint(1,5)
前者的random名称被绑定到了random模块对象,这个对象定义了一个randint函数。而后者的randint名称被绑定到了由random模块定义的randint函数对象。

4. 我们可以通过构建实例对象并使用实例对象调用类方法来进行类对象的运算。比如我们可以写
timer = Stopwatch()
timer.start()

Python遵循包括名称如何绑定,定义参数/实例参数如何绑定(译者注:因为不知道Argument与parameter在中文中如何翻译,特此解释:Parameter是函数定义时的变量,而Argument是调用函数时真正指定的函数参数),操作符如何实现,控制结构如何工作等一系列规则。这门课将系统地介绍如何使用这些规则特性更好的编写程序!

_______________________________________________________________________________________________________

关于“绑定”

对于使一个名称指向一个值(例如x=1,将x指向一个整型对象)的过程称之为绑定。当然我们可以随后将x绑定到另外一个对象上。(例如x = 'abc',一个字符串类)所谓“绑定”就是对象与名称的联系。

在Python中,每一个数据实例,模块,函数,类,都是拥有一个用来储存命名空间(命名空间中有所有的内部绑定)的字典的类。我们将会在这个学期里学到很多关于命名空间(以及如何操作它)的知识。

特别的,我们哪一个简单的绑定操作(x = 1)来举例。我们将名称写到一个方块的上方,箭头的尾巴在方框内部,来指明当前的名称。箭头的头部指向一个圆角方框对象,对象上的标签表明其类别,对象内部有它的值。

  x          int
+---+	    (---)
| --+------>| 1 |
+---+	    (---)

当然,如果我们是在模块m里执行x=1的话,Python已经为模块m创建了一个对象。

             module
          (---------)
  m       |    x    |      int
+---+     |  +---+  |     (---)
| --+---->|  | --+--+---->| 1 |
+---+     |  +---+  |     (---)
          (---------)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值