Learn Python The Hard Way 学习笔记(1)

本篇日志简单回顾一下决定写日志记录之前我过掉的17+1个练习的主要内容。

1.

安装。Mac我没有,Windows现在不撞墙也能直接下载2.7版本了,不过我的win上安装的还是2.5,基本没用过,就先那么留着;Linux是系统自带的,Ubuntu中目前是2.6.6,相传Fedora已经2.7了,还有更激进的,Archlinux上面已经3.1了……Orz。

往下几个例子,主要是print语句、培养type的感觉、#注释符、数学计算、变量名称、字符串、格式化输出,模块导入、文件读写

2.

这里记一下格式化输出,是我之前不会的。

formatter = "%r %r %r %r"
print formatter % (1, 2, 3, 4)

(发现google syntax highlighter好像失效了……)

这里,先用一个固定的formatter来定义好一种格式,以后只要在打印输出的时候,填写需要输出的内容即可。相比我之前在每个print语句中定义输出格式,效率高些。

3.

反斜杠跟以r方式print结合的时候,有一些特别的效果。

4.

使用raw_input()可以获得输入,同时,在raw_input()的括号中填入提示文字,成为prompt,例如:

name = raw_input(“Your name, please?”)

脚本中等待用户输入时,可以用箭头提示符,就这么做:
name = raw_input(“>>>”)

运行时效果就像启动了python解释器一样:)

注意raw_input()获取的输入都作为字符串,所以如果想获得数字,可以使用“强制类型转换”,例如:

age = int(raw_input(“Your age?”))

5.

参数展开(unpacking)
通过 from sys import argv 就可以在执行脚本的时候将脚本后面带的参数都存入 列表 argv 中,然后在下面再决定将列表中的内容赋给哪些变量:

from sys import argv
script, first, second, third = argv

注意上面,之所以第一个变量是 script ,是因为列表argv的第一项是argv[0],与shell中类似,第一个参数总是脚本文件本身的文件名;

在执行脚本时,如果输入的参数数量如第二行描述的不符,则出现错误,成为展开做出(显而易见,因为参数与变量无法完全匹配了)

6.

文件读写

这个之前都没怎么尝试。现在试了一下发现最基本的东西也挺简单的。

通过 txt = open(filename) 即可将打开一个文件,然后执行read()方法可以显示文件内容:
print txt.read()
注意要有print才能“打印”出来。

当然,更安全地打开文件的方法是使用 txt = open(filename, ‘w’),’w’表示的文件模式

还注意到有个truncate()方法,简单说,truncate()方法用于清空文件内容。

Shell中就有truncate方法哦,这是我GR上面读到的:其实,文件也可以truncate

txt.close() ——关闭文件

7.

模块导入

其实模块导入没有什么特别要说的,有两种方式:

from * import **

import

(好像还有个import * as **)

在ex17中,可以看到从os.path中导入了一个 exists ,这个exists的作用就是检查对象是否存在,然后返回一个True/False


8.

学会查看帮助文件

在解释器中,我们可以执行help(…)来查看某一个方法/函数的作用,在shell中还可以使用pydoc来直接查看(Java是不是有个javadoc也是类似作用的?)

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

OK,这次到此为之~

-EOF-

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s