2.10 代码块及缩进对齐
代码块通过缩进对齐表达代码逻辑,而不是使用大括号。
2.11 if语句
Python不支持switch/case语句。
>>> str = 'str'
>>> if str[-1] == 's':
... print 's'
... elif str[-1] == 't':
... print 't'
... else:
... print 'r'
...
r
2.12 while循环
>>> counter = 0
>>> while counter < 3:
... print "Loop %d" % counter
... counter+=1
...
Loop 0
Loop 1
Loop 2
2.13 for循环和range()内建函数
print语句默认会给每一行添加一个换行符,只要在print语句的最后添加一个逗号(,),就可以将输出输入到一行。
>>> aList = ['Tom', 'Vivian', 'Shari']
>>> print "print persons:"
print persons:
>>> for person in aList:
... print person,
...
Tom Vivian Shari
>>>
为了 输出清晰美观,带逗号的print语句输出的元素之间会自动添加一个空格,也可以将所有数据放在一处输出——只需要将数据放在格式化操作符右侧的元组或字典中。
>>> Tom = 'Tom'
>>> Jacky = 'Jacky'
>>> print Tom, 'and', Jacky, 'are my friends!'
Tom and Jacky are my friends!
>>> print 'There is an error %s' % ('.' * 2 + '.')
There is an error ...
>>>
range()生成一个递增计数的列表
>>> for i in range(5):
... print i
...
0
1
2
3
4
>>>
range()函数经常和len()函数一起用于字符串的索引。
>>> pythonStr = "Anders Fan"
>>> for i in range(len(pythonStr)):
... print pythonStr[i],
...
A n d e r s F a n
>>>
2.14 列表解析
>>> squared = [ 2 ** x for x in range(10) ]
>>> for x in squared:
... print x,
...
1 2 4 8 16 32 64 128 256 512
>>>
2.15 文件和内建函数open(),file()
file_name表示我们希望打开的文件的字符串名字,mode中'r'表示读取,'w‘表示写入,’a‘表示添加,’+‘表示读写,’b‘表示二进制访问。
>>> filename = raw_input('Input a file path:')
>>> filename
'C:\\Documents and Settings\\10170660\\Desktop\\22222.txt'
>>> fobj = open(filename, mode = 'r')
>>> for line_text in fobj:
... print line_text,
...
1
2
3
>>>
file()功能等同与open()
2.16错误和异常
通过raise语句引发一个异常。
>>> try:
... fileobj = open("C:\\111.txt", 'r')
... except IOError, e:
... print "Open file error: %s" % e
...
Open file error: [Errno 2] No such file or directory: 'C:\\111.txt'
>>>
>>> try:
... fileobj2 = open("C:\\1.txt", 'r')
... fileobj2.close()
... except IOError, e:
... raise e
...
Traceback (most recent call last):
File "<interactive input>", line 5, in <module>
IOError: [Errno 2] No such file or directory: 'C:\\1.txt'
2.17 函数
如果函数中没有return语句,就会自动返回None对象。
2.17.1 如何定义函数
>>> def plus(x):
... "number * 2"
... return x + x
2.17.2 如何调用函数
>>> plus(2)
4
2.17.3 默认函数
函数的参数可以有一个默认值。
2.18 类
类是面向对象的核心,它扮演相关数据及逻辑容器的角色。
使用class关键字定义类。可以提供一个可选的父类或者说基类;如果没有合适的基类,那就使用object作为基类。class行之后是可选的文档字符串,静态成员定义及方法定义。
>>> class MyClass(object):
... "This is my first class!"
... version
... def MyMethod(self):
... "This is my first method in class"
... print self.version
... def _init_(self, version = 1.0):
... self.version = version
...
>>> myclass1 = MyClass()
>>> myclass1.MyMethod()
1.0
>>>
所有名字开始和结束后有两个下划线的方法都是特殊方法。
当一个类实例被创建时,_init_()方法会自动执行,在类实例创建完毕后执行,类似构造器。_init_()可以被当成构造器,不过不像其他语言中的构造器,它并不创建实例——它仅仅是你的对象创建后执行的第一个方法。它的目的是执行一些对该对象的必要的初始化工作。_init_()需要一个默认的参数。所有的方法都有一个参数self,它是类实例自身的引用。其他面向对象语言通常使用一个名为this的标识符。
2.19 模块
模块是一种组织形式,它将彼此有关系的Python代码组织到一个个独立文件当中。当创建了一个Python源文件,模块的名字就是不带.py后缀的文件名。一个模块创建后,你可以从另一个模块中使用Import语句导入这个模块来使用。
>>> import sys
>>> sys.stdout.write("Hello world! \n")
Hello world!
>>>
2.20 实用函数
dir 显示对象的属性
>>> dir(myclass1)
['MyMethod', '__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__',
'_init_', 'version']
help
>>> help(myclass1)
Help on MyClass in module __main__ object:
class MyClass(__builtin__.object)
| This is my first class!
|
| Methods defined here:
|
| MyMethod(self)
| This is my first method in class
|
| ----------------------------------------------------------------------
| Data descriptors defined here:
|
| __dict__
| dictionary for instance variables (if defined)
|
| __weakref__
| list of weak references to the object (if defined)
|
| ----------------------------------------------------------------------
| Data and other attributes defined here:
|
| version = 1.0
int 讲一个对象转换为整型
>>> int("2222222")
2222222
len 返回对象的长度
>>> aList = ["111", 11, 22, "22", myclass1]
>>> len(aList)
5
open 打开文件
range 返回一个整型列表
>>> range(1,5)
[1, 2, 3, 4]
raw_input 等待用户输入一个字符串
>>> str1 = raw_input("input")
>>> str1
'213123'
>>>
str 将一个对象转换为字符串
>>> str(212)
'212'
>>>
type 返回对象的类型
>>> type(212)
<type 'int'>
>>>