最近再看"python核心编程"这本书,就顺便记下笔记,下面是前两章的笔记,主要是第二章的,安装python太简单了就不记了。
一 python的print语句
与字符串格式运算符( % )结合使用,可实现字符串替换功能,例如:
>>> print "%s is number %d!" % ("Python", 1)
Python is number 1!
%s 表示由一个字符串来替换,而%d 表示由一个整数来替换,另外一个很常用的就是%f, 它表示由一个浮点数来替换。
二 python注释
注释有两种
1 普通注释使用#符号,从#开始到一行结束都是注释
>>># one comment
… print ‘Hello’ # another comment
2 特别注释,文档字符串。可以再函数、模块、类得起始添加字符串,起到在线文档作用,可以再运行时访问,也可以用来自动生成文档。
def foo()
‘此处是文档注释’
return true
三 运算符
抄一下<<python简明教程>>里面的运算符与它们的用法,这个详细
运算符 | 名称 | 说明 | 例子 |
---|---|---|---|
+ | 加 | 两个对象相加 | 3 + 5得到8。'a' + 'b'得到'ab'。 |
- | 减 | 得到负数或是一个数减去另一个数 | -5.2得到一个负数。50 - 24得到26。 |
* | 乘 | 两个数相乘或是返回一个被重复若干次的字符串 | 2 * 3得到6。'la' * 3得到'lalala'。 |
** | 幂 | 返回x的y次幂 | 3 ** 4得到81(即3 * 3 * 3 * 3) |
/ | 除 | x除以y | 4/3得到1(整数的除法得到整数结果)。4.0/3或4/3.0得到1.3333333333333333 |
// | 取整除 | 返回商的整数部分 | 4 // 3.0得到1.0 |
% | 取模 | 返回除法的余数 | 8%3得到2。-25.5%2.25得到1.5 |
<< | 左移 | 把一个数的比特向左移一定数目(每个数在内存中都表示为比特或二进制数字,即0和1) | 2 << 2得到8。——2按比特表示为10 |
>> | 右移 | 把一个数的比特向右移一定数目 | 11 >> 1得到5。——11按比特表示为1011,向右移动1比特后得到101,即十进制的5。 |
& | 按位与 | 数的按位与 | 5 & 3得到1。 |
| | 按位或 | 数的按位或 | 5 | 3得到7。 |
^ | 按位异或 | 数的按位异或 | 5 ^ 3得到6 |
~ | 按位翻转 | x的按位翻转是-(x+1) | ~5得到6。 |
< | 小于 | 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 | 5 < 3返回0(即False)而3 < 5返回1(即True)。比较可以被任意连接:3 < 5 < 7返回True。 |
> | 大于 | 返回x是否大于y | 5 > 3返回True。如果两个操作数都是数字,它们首先被转换为一个共同的类型。否则,它总是返回False。 |
<= | 小于等于 | 返回x是否小于等于y | x = 3; y = 6; x <= y返回True。 |
>= | 大于等于 | 返回x是否大于等于y | x = 4; y = 3; x >= y返回True。 |
== | 等于 | 比较对象是否相等 | x = 2; y = 2; x == y返回True。x = 'str'; y = 'stR'; x == y返回False。x = 'str'; y = 'str'; x == y返回True。 |
!= | 不等于 | 比较两个对象是否不相等 | x = 2; y = 3; x != y返回True。 |
not | 布尔“非” | 如果x为True,返回False。如果x为False,它返回True。 | x = True; not y返回False。 |
and | 布尔“与” | 如果x为False,x and y返回False,否则它返回y的计算值。 | x = False; y = True; x and y,由于x是False,返回False。在这里,Python不会计算y,因为它知道这个表达式的值肯定是False(因为x是False)。这个现象称为短路计算。 |
or | 布尔“或” | 如果x是True,它返回True,否则它返回y的计算值。 | x = True; y = False; x or y返回True。短路计算在这里也适用。 |
四 字符串
使用索引运算符[]和切片运算符[:]可得到子字符串,第一个字符索引是0,最后一个字符索引是-1,+连接字符串,*重复字符串。
>>>pystr='python'
>>>pystr=[0]
'p'
>>>pystr=[2:5]
'tho'
>>>pystr=[:2]
'py'
>>>pystr=[3:]
'hon'
>>>pystr=[-1]
'n'
五 列表和元组
列表和元组有几处重要的区别。列表元素用中括号[ ]包裹,元素的个数及元素的值可
以改变。元组元素用小括号( )包裹,不可以更改(尽管他们的内容可以)。元组可以看成是
只读的列表。通过切片运算[ ] 和 [ : ] 可以得到子集,这一点与字符串的使用方法一样
>>> aList = [1, 2, 3, 4]
>>> aList
[1, 2, 3, 4]
>>> aList[0]
1
>>> aList[2:]
[3, 4]
>>> aList[:3]
[1, 2, 3]
>>> aList[1] = 5
>>> aList
[1, 5, 3, 4]
元组也可以进行切片运算,得到的结果也是元组(不能被修改):
>>> aTuple = ('robots', 77, 93, 'try')
>>> aTuple
('robots', 77, 93, 'try')
>>> aTuple[:3]
('robots', 77, 93)
>>> aTuple[1] = 5
Traceback (innermost last):
File "<stdin>", line 1, in ?
TypeError: object doesn't support item assignment
六 字典
字典是Python 中的映射数据类型,工作原理类似Perl 中的关联数组或者哈希表,由键-
值(key-value)对构成。几乎所有类型的Python 对象都可以用作键,以数字或者
字符串最为常用。
值可以是任意类型的Python 对象,字典元素用大括号{ }包裹。
>>> aDict = {'host': 'earth'} # create dict
>>> aDict['port'] = 80 # add to dict
>>> aDict
{'host': 'earth', 'port': 80}
>>> aDict.keys()
['host', 'port']
>>> aDict['host']
'earth'
>>> for key in aDict:
... print key, aDict[key]
...
host earth
port 80
七 打开文件的内建函数open() 、file()
handle = open(file_name, access_mode = 'r')
file_name 变量包含我们希望打开的文件的字符串名字, access_mode 中 'r' 表示读取,
'w' 表示写入, 'a' 表示添加。其它可能用到的标声还有 '+' 表示读写, 'b'表示二进制访
问. 如果未提供 access_mode , 默认值为 'r'。如果 open() 成功, 一个文件对象句柄会被
返回。所有后续的文件操作都必须通过此文件句柄进行。当一个文件对象返回之后, 我们就可
以访问它的一些方法, 比如 readlines() 和close().文件对象的方法属性也必须通过句点属
性标识法访问
# coding=utf-8
filename = raw_input(输入文件路径和文件名: ')
fobj = open(filename, 'r')
for eachLine in fobj:
print eachLine,
fobj.close()
八 错误和异常
try-except 语句给代码添加错误检测及异常处理。 try之后的代码组, 就是你打算管理的代码。 except 之后的代码组, 则是你处理错误的代码。也可以通过使用 raise 语句故意引发一个异常。
九 函数
定义函数: def function_name()
定义类: class xxx()
十 实用函数
书上列举的新手实用函数
dir([obj]) :显示对象的属性,如果没有提供参数, 则显示全局变量的名字
help([obj]) :以一种整齐美观的形式 显示对象的文档字符串, 如果没有提供任何参数, 则会进入交互式帮助。
int(obj): 将一个对象转换为整数
len(obj) :返回对象的长度
open(fn, mode) :以 mode('r' = 读, 'w'= 写)方式打开一个文件名为 fn 的文件
range([[start,]stop[,step]) :返回一个整数列表。起始值为 start, 结束值为 stop - 1; start 默认值为 0, step默 认值为1。
raw_input(str) :等待用户输入一个字符串, 可以提供一个可选的参数 str 用作提示信息。
str(obj) :将一个对象转换为字符串
type(obj) :返回对象的类型(返回值本身是一个type 对象!)