读《像计算机科学家一样思考python》——笔记(2/2)

包括如下目录:

  • 第十四章 文件
  • 第十五章 类和对象
  • 第十六章 类和函数
  • 第十七章 类和方法
  • 第18章 继承

第十四章 文件

1. 读和写

一个文件需要先打开,然后再进行读与写, 最后把打开的文件关闭。

#读文件
>>> f = open(‘words.txt‘)
>>> print f
<open file ‘words.txt‘, mode ‘r‘ at 0x7fd74378e4b0>
>>> f.readline()
‘aa\r\n‘
>>> f.close()
# 写文件
>>> f = open(‘sb.txt‘, ‘w‘)
>>> print f
<open file ‘sb.txt‘, mode ‘w‘ at 0x7fd74378e540>
>>> line = "hello, world!\n"
>>> f.write(line)
>>> f.close()
>>> exit()

注意:要写入一个文件,需要使用 ‘w’模式作为第二个实参开打开它。如果文件已经存在,则使用写模式打开时会清除掉旧的数据并重新形如,所以特别注意啊。如果文件不存在,则新建一个。另外, write的参数是必须是字符串。

2,格式操作符

它与c语言中printf()里面的格式化字符串类似的,可以格式化输出。 %d 用于格式化整数, %g 用于格式化小数,%s 用于格式化字符串。

当字符串中有一个格式序列时,

>>> print ‘I have %d pens‘ % 12
I have 12 pens

当字符串中有多个字符序列时, 第十个操作对象就必须是元组。 并且每个格式序列按对应元组中的一个元素。

>>> print ‘In %d years I have spotted %g %s.‘ % (3, 0.1, ‘camels‘)
In 3 years I have spotted 0.1 camels.

3. 文件名与路径

os模块提供了用于操作文件和目录的函数, 具体可以查看一下这个模块的相关函数。

4. 捕获异常

可以使用 try语句来捕获一个异常,例子如下:

try:
        fin = open(‘1123.d‘)
        print ‘打开成功‘
        fin.close()
except:
        print ‘没有打开成功,可能文件不存在\n‘

5. 数据库: 模块anydbm 提供了接口用于创建和更新数据库的文件。 anydbm模块的限制之一是键和值都是字符串,即它只能保存字符串。  pickle模块可以把几乎所有类型的对象转换为适合保存到数据库的字符串形式, 并可以将字符串转换成为对象。 python将上面这两个模块封装起来成为了一个模块,叫做 shelve.

6. 管道  ( os.popen()现在已经废止了,但是还没有完全废止)

任何在字符界面能启动的程序都可以在python 中通过一个管道来启动。 它的返回值和一个打开的文件差不多。

>>> cmd = ‘ls -l‘
>>> fp = os.popen(cmd)
>>> print fp.read()
总用量 1156
drwxrwxr-x 3 yinheyi yinheyi    4096 Sep 20 17:34 2048
-rwxrwxr-x 1 yinheyi yinheyi    8519 Oct 27 20:29 a.out
-rw-rw-r-- 1 yinheyi yinheyi      95 Oct 27 20:29 hello.c
-rw-rw-r-- 1 yinheyi yinheyi      75 Oct 31 14:26 hello.py
-rw-rw-r-- 1 yinheyi yinheyi     140 Oct 31 22:10 main.c
-rw-rw-r-- 1 yinheyi yinheyi     218 Oct 31 22:11 Makefile
-rw-rw-r-- 1 yinheyi yinheyi      14 Nov  1 09:52 sb.txt
-rw-rw-r-- 1 yinheyi yinheyi     214 Nov  1 10:17 sum.py
drwxrwxr-x 4 yinheyi yinheyi    4096 Sep 20 17:18 Tinyhttpd
-rw-rw-r-- 1 yinheyi yinheyi     423 Oct 31 20:13 turtle.py
-rw-rw-r-- 1 yinheyi yinheyi 1130523 Oct 31 16:43 words.txt

>>> print fp.close()

7. 编写模块:

我们可以把任何包含 pyhon 的代码的文件都可以作为模块导入。 里面定义了函数的话, 我们就可以调用它。

说明一点:为了模块内的部分没有必要的代码被执行, 通常把这部分代码写入到如下模式中去:

if __name__ == ‘__main__‘:
    print ‘hello, world!‘
    ……

__name__ 是一个内置变量,当程序启动时就会被设置, 程序作为脚本执行, __name__ 的值就是 __main__ ,此时, 下面代码会被执行。当作为模块被导入时, 这部分代码就会被跳过。

第十五章 类和对象

这本书上,这一节讲的实在太简单表面了,,没有什么可以作为笔记的;

第十六章 类和函数

1. 什么是纯函数?一个函数它坠子返回一个值之外, 并不修改作为实参传入的任何对象, 也没有任何如显示值或获得用户输入之类的副作用。

2. 什么是修改器? 有时候用函数修改传入的参数对象是很有用的。在这种情况下, 修改对调用者是可见的, 这样工作的函数称为修改器。

第十七章 类和方法

1. 对于写在类内部的函数,我们把它称为方法。

当我们调用一个方法时,直接使用主体与方法名称就可以了,比如(xiaoming 是一个主体,而h1为一个方法名称):

class hello(object):
    def h1():
        print ‘hello, world!‘
xiaoming = hello()
xiaoming.h1()

在方法中, 主体会被赋值到第一个形参上。 依惯来, 方法的互一个形参通常叫做 self。

2. 类的 init 方法

init 方法是一个特殊的方法,当对象初始化时会被调用。它的全名是 __init__。比如:

def __init__(self, hour = 0, minute = 0, second = 0):
    self.hour = hour
    self.minute = minute
    self.second = second

2. 类的 __str__方法

__init__也是一个特殊方法, 它用来返回对象的字符串的表达形式。当我们打印对象的结果时, python 会调用__str__方法。定义例如:

def __str__(self):
    return ‘%d %d %d‘ % (self.hour, self.minute, self.second)

3. 操作符重载

通过定义其它特殊方法, 我们可以为用户定义类型的各种操作符指定的行为, 比如:当我们定义一个名为 __add__ 方法时, 则可以在时间对象上使用 + 操作符。  其它的操作符都有相应的特殊名字的方法。

4. 多态问题

书中没有详细说明,等着再参考其它的学习资料吧。

第18章 继承

时间: 2024-08-02 09:01:29

读《像计算机科学家一样思考python》——笔记(2/2)的相关文章

像计算机科学家一样思考python笔记

[TOC] #1 程序之道 ##1.1 Python程序语言 - 有两种程序可以让高级语言转换为低级语言,分别是直译器和编译器. - 有两种方式使用python的直译器:shell模式和脚本模式. ##1.8 形式语言和自然语言 - 自然语言是人们所说的语言. - 形式语言是人们为特定的应用设计的语言 *<b>程序语言是设计来呈现计算的形式语言</b>* 语法规则分为两种,分别属于标记和结构.标记是程序语言的基本组件,就像字词.数字和化学元素一样; 结构是标记的排列方法. >

像计算机科学家一样思考Python (第2版)高清PDF电子版下载

本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程.贯穿全书的主体是如何思考.设计.开发的方法,而具体的编程语言,只是提供了一个具体场景方便介绍的媒介. 全书共21章,详细介绍Python语言编程的方方面面.本书从基本的编程概念开始讲起,包括语言的语法和语义,而且每个编程概念都有清晰的定义,引领读者循序渐进地学习变量.表达式.语句.函数和数据结构.书中还探讨了如何处理文件和数据库,如何理解对象.方法和面向对象编程,如何使用调试技巧来修正语法错误.运行时错误和语义错误.每一章都配

像计算机科学家一样思考Python (第2版)pdf

下载地址:网盘下载 内容简介  · · · · · · 本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程.贯穿全书的主体是如何思考.设计.开发的方法,而具体的编程语言,只是提供了一个具体场景方便介绍的媒介. 全书共21章,详细介绍Python语言编程的方方面面.本书从基本的编程概念开始讲起,包括语言的语法和语义,而且每个编程概念都有清晰的定义,引领读者循序渐进地学习变量.表达式.语句.函数和数据结构.书中还探讨了如何处理文件和数据库,如何理解对象.方法和面向对象编程,如何使用

像计算机科学家一样思考python-第3章 函数

在程序设计中,函数是指用于进行某种计算的一系列语句的有名称的组合.定义一个函数时,需要指定函数的名称并写下一系列程序语句.之后,就可以使用名称来“调用”这个函数 3.1函数调用 一个函数调用的例子 >>> type(42) <class 'int'> 这个函数的名称是type,括号中的表达式我们称之为函数的参数.这个函数调用的结果是求得参数的类型. 我们通常说函数“接收”参数,并“返回”结果.这个结果也称为返回值 3.2数学函数 Python有一个数学计算模块,提供了大多数常

《像计算机科学家一样思考Java》—— 读后总结

本书属于入门级的Java书籍,与其他的向编程思想.核心技术不同的是,这本书不是按部就班的讲解java变成知识,而是随着语言的深入慢慢增加知识点. 这本书以一个语言开发者的角度,深入浅出的讲解了Java语言的机制. 比如语言最基本的变量和方法,到后续的深入,功能的增加,逐渐的加大难度与知识点. 本书内容 程序语言 一门编程语言,在学习之前要看它是高级语言.还是低级语言.低级语言更接近计算机底层,但是不容易编写和理解,比如汇编.还要看它是解释型的还是需要编译的.比如html,css都是属于解释型的,

书都不会读,你还想成功—读书笔记

书都不会读,你还想成功-读书笔记 一.     我要改变人生 1.    要想离开相差无几的竞争环境,仅仅不停歇地奔跑是不够的,还需要付出两倍以上的努力才能够实现. 2.    跑得不够快,就无法前进.若沿逆行的滚梯往山走,即便是跑步前进,如果速度不够快,结果还是停在原地. 3.    不仅是生物界和企业,社会中的每一个个人不是一样的,都是因为不停地奔跑才存活了下来. 4.    读书就像一天三顿饭:100天读33本书.要学会掌握要领,还要有一定成功的信心. 5.    培养读书习惯的最初阶段能

总结数据科学家常用的Python库

概述 这篇文章中,我们挑选了24个用于数据科学的Python库. 这些库有着不同的数据科学功能,例如数据收集,数据清理,数据探索,建模等,接下来我们会分类介绍. 您觉得我们还应该包含哪些Python库?让我们知道! 介绍 我是Python语言的忠实粉丝,它是我在数据科学方面学到的第一门编程语言.Python有三个特点: 它的易用性和灵活性 全行业的接受度:它是业内最流行的数据科学语言 用于数据科学的庞大数量的Python库 事实上,有如此多的Python库,要跟上它们的发展速度可能会变得非常困难

玩蛇(Python)笔记之基础Part3

玩蛇(Python)笔记之基础Part1 一.集合 1.set 无序,不重复序列 {}创建,直接写元素 2.set功能 __init__()构造方法,,使用强制转换就会调用此方法 1 set1 = {'year', 'jiujiujiu'} 2 print(type(set1)) 3 # 创建集合 4 s = set() # 创建空集合 5 li = [11, 22, 11, 22] 6 s = set(li) set 3.集合的基本操作 1 # 操作集合 2 s1 = set() 3 s1.a

Python笔记(四)

在<Python笔记(三)>中,我记录关于Python中序列问题的知识.个人觉得确实比Java中的集合框架简单.之前也说了,Python是一种高级面向对象的语言,它的每一个变量都称为对象.今天我接触了面向对象的编程.下面是这篇博客的目录: 1.类与对象 2.输入输出 3.异常 类与对象: 我们都知道面向对象的语言具备四个特性:抽象,继承,封装,多态.Java,C++是这样,Python也不例外.在Python中,我们定义一个类,使用关键字class.形式如下:class classname:.