您的位置:首页 > 程序相关 > Python核心编程读书笔记:第二章,快速入门

Python核心编程读书笔记:第二章,快速入门

第二章学习笔记
【2.1 使用print输出】
print调用str()函数显示对象
print默认在输出的内容后面添加回车,如果不想输出回车,在输出内容后面添加逗号,如果要输出多个内容,使用逗号连接,不过如果带逗号的print语句会在输出的元素之间自动添加一个空格
print与字符串格式操作符(%)结合使用,可实现字符串操作功能(这一点和C语言的printf()函数非常相似)

【2.2 程序输入和raw_input()内建函数】
raw_input读取标准输入,并将读取到的数据赋值给指定的变量,如:

1
2
3
user = raw_input('please input name')
print user
help(raw_input)

Help on built-in function raw_input in module __builtin__:

raw_input(…)
raw_input([prompt]) -> string
raw_input从标准输入读取一个字符串并自动删除串尾的换行字符

【2.3 注释】
单行注释: Python使用#符号标示注释,从#开始,直到一行结束的内容都是注释
多行注释:使用三个单引号或双引号
文档注释:
函数内部的第一行开始的字符串为 DocStrings
DocStrings 一般为多行
DocString 为三引号扩起来的多行字符串
第一行为概述
第二行为空行
第三行开始是详细描述
DocStrings 的存在证明了函数也是对象
函数的 __doc__ 属性为该 DocStrings
例如 print printTest.__doc__ 为打印 printTest 函数的 DocStrings
如下所示代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/python
# -*- coding: utf-8 -*-
u"""文档注释 文档字符串"""
 
import sys
__author__ = "phppan"
__date__ = "$2010-8-1 17:54:58$"
 
def printTest(string):
    u'''
        printTest 函数注释 文档字符串
        注释第二行
    '''
    print string
 
if __name__ == "__main__":
 
    printTest('hello world')
    printTest(__doc__)  #单行注释
    '''
多行注释
    '''
    printTest(printTest.__doc__)
    print __date__
    print __author__

中文注释问题:
Python里有两种字符串,一种是Unicode字符串,一种是一般的字符串。
Python里字符串的encode函数负责将unicode字符串转化为另外一种Unicode编码形式。
decode函数负责将一般的字符串进行解码,结果为unicode编码。还有一点是unicode()负责将一般的字符串解码为指定格式的unicode字符串。
如果字符串是这样定义:s=’中文’
如果是在utf8的文件中,该字符串就是utf8编码,如果是在gb2312的文件中,则其编码为gb2312。
如果字符串是这样定义:s=u’中文’
则该字符串的编码就被指定为unicode了,即python的内部编码
isinstance(s, unicode) #用来判断是否为unicode

print会对输出的文本做自动的编码转换, print转换的目的编码和环境变量有关,Windows XP是转换为gbk的。可以使用用locale模块的getdefaultlocale方法获得当前环境的编码。而print在输出时会把字符串自动转换为这种编码。

【2.4 操作符】
对于一些数据类型,有些操作符是被重载了的,比如字符串和列表
对于不等于操作符,python支持两种 != 和 <>,建议使用 !=
合理使用括号,增强代码的可读性

【2.5 变量和赋值】
类C语言
以字母开头,可以是数字、字母或下划线
大小写敏感
不需要预先声明变量的类型,变量的类型和值在赋值那一刻被初始化
不支持自增1和自减1操作符

【2.6 数字】
Python支持5种数字类型:有符号整形、长整型、布尔、浮点和复数
其中长整型类似于java中的BigInteger类型,它仅受限于用户计算机的虚拟内存总数
decimal类型需要先导入decimal模块才可以使用

【2.7 字符串】
Python中字符串被定义为引号之间的字符集合。Python支持成对的单引号、双引号和三引号
使用索引操作符({[])和切片操作符([:])可以得到子串
字符串有其我有的索引规则:第一个字符的索引是0(和C语言类似),最后一个字符的索引是-1
加号(+)用于字符串连接运算 星号(*)用于字符串重复

【2.8 列表和元组】
从0开始索引,可以存储不同类型的对象
列表元素使用中括号([])包裹,元素的个数和元素的值都可以改变
元组元素使用小括号(())包裹,不可以更改,可以看成是只读的列表

【2.9 字典】
字典是Python中的映射数据类型,工作原理类似于Hash表,可以将其作为PHP的数组使用
字典由键值对构成,几乎所有对象都可以用作键,不过一般使用数字或字符串

【2.10 代码块及缩进对齐】
Python通过缩进对齐表达代码逻辑

【2.11 if语句】
if expression:
if_suite
elif expression2:
elif_suite
else:
else_suite

【2.12 while循环】
while expresion:
while_suite

【2.13 for循环和range()内建函数】
for循环与传统的for循环不同,更像是PHP中的foreach

for eachNum in range(3):
print eachNum

【2.14 列表解析】
[x ** 2 for x in range(4)]
[x ** 2 for x in range(4) if x ** 2 > 1]

【2.15 文件和内建函数file(),open()】
handle = open(filenaem, mode = ‘r’) 返回一个文件句柄

1
2
3
4
5
    filename = raw_input('Enter file name:')
    fobj = open(filename, 'r')
    for eachLine in fobj:
        print eachLine,
    fobj.close()

【2.16 错误和异常】
将代码“封装”在try-except语句当中,就可以增加错误检测及异常处理

【2.17 函数】
一个函数的语法由def关键字及紧随其后的函数名,再加上该函数所需要的参数组成
def function_name([arguments]):
“optional documentation string”
function_suite

函数的参数可以有一个默认值

【2.18 类】
类是面向对象核心,它扮演相关数据及逻辑容器的角色。
定义类:
class ClassName(base_class[es]):
“optional documentation string”
static_memeber_declarations
method_declarations

所有名字开始和结束都有两个下划线的方法都是特殊方法
self是类实例自身的引用
当一个类的实例被创建时,__init__()就会被自动调用

【2.19 模块】
模块是一种组织形式,它将彼此有关系的python代码组织到一个个独立文件当中。模块可以包含可执行代码、函数和类,或者这些东西的组合。
导入模块:import module_name
访问模块函数或模块变量:

1
2
3
    import sys
    sys.stdout.write('hello')
    print sys.platform

【2.20 实用函数】
dir([obj]) 显示对象的属性,如果没有提供参数,则显示全局变量的名字
help([obj]) 以一种整齐美观的形式,,显示对象的文档字符串,如果没有提供任何参数,则会进入交互帮助
int(obj) 将一个对象转化成整形
len(obj) 返回对象的长度
open(fn, mode) 以mode方式打开一个文件名为fn的文件
range([start,]stop[,step]) 返回一个整形列表,起始值为start,结束值为stop -1,start默认值为0,step默认值为1
str(obj) 将一个对象转换为字符串
type(obj) 返回对象的类型(返回值本身是一个type对象)

本文地址:Python核心编程读书笔记:第二章,快速入门    文章出处:PHP源码阅读,PHP设计模式,PHP学习笔记,项目管理-胖胖的空间

转载请以链接形式注明原始出处和作者,谢绝不尊重版权者抄袭!

3 条留言我要留言

  •   1 - 排头兵  |  2010-08-17 at 8:02 pm  

    你学习速度真快,follow you

  •   2 - 胖子  |  2010-08-17 at 8:06 pm  

    有好几天没写东西,惭愧中,
    因为这几天搬家啥的,再加上两个项目并行,忙得。。。。

  •   3 - 《草根》编辑  |  2010-08-25 at 11:43 am  

    可爱的Python这本书还不错 稍微有点python基础就可以跟着它使用python了

必填

必填,绝不公开

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word