Python学习笔记 01 快速入门
1、Python有两种提示符(>>>)和次提示符(…)。主提示符是解释器告诉你它在等待你输入下一个语句,次提示符告诉你解释器正在等待你输入当前语句的其他部分。
2、Python有两种主要的方式来完成你的要求:语句和表达式(函数、算术表达式等)。语句使用关键字来组成命令,类似告诉解释器一个命令。语句可以有输出,也可以没有输出。经典的编程实例,Hello World。
>>> print 'Hello World!'
Hello World!
3、把一个字符串赋值给变量myString,先用print来显示变量的内容,之后用变量名称来显示。
>>> myString = 'Hello World!'
>>> print myString
Hello World!
>>> myString
'Hello World!'
在仅使用变量名时,输出的字符串是用单引号括起来的。这是为了让非字符串对象也能以字符串的方式显示。即它显示的是该对象的字符串表示,而不仅仅是字符串本身。Python用print打印变量,实质为调用str()函数显示对象值,直接输入变量是调用对象的repr()显示对象。
4、下划线(_)在解释器中表示最后一个表达式的值。
>>> _
'Hello World!'
5、print语句与字符串格式操作符(%)结合,实现字符串替换功能。
>>> print "%s is number %s !" % ("python",1)
python is number 1 !
%s:字符串,%d:整数 %f:浮点数。
6、python 支持输出重定向到文件,符号>>用来重定向输出。
import sys
print >>sys.stderr ,'Fatal Error:invalid input'
下面这个例子将输出重定向到日志文件mylog.txt
logfile= open('mylog.txt','a')
print >>logfile,'Fatal Error'
logfile.close()
7、使用raw_input()内建函数可以得到用户的输入数据。
>>> num = raw_input("input you number:")
input you number:1024
>>> print 'Doubling you num: %d' % (int(num) *2)
Doubling you num: 2048
int()将数值字符串转换为整型值,
内建函数help()可以得到生疏函数的帮助。如help(raw_input)
8、Python使用#符号表示注释。
'''与'''文档注释,可以在运行时访问,可以自动生成文档。
9、+、-、*、/、%都是传统标准操作符的用法。
//用作浮点除法,**表示乘方。优先级跟数学运算一样。
<、<=、>、>=、==、!=、<>也都是标准比较操作符。<>是不等操作符。
Python提供了逻辑操作符:and or not
Python中支持的特殊用法:
>>> 3<4<5
True
与下面的写法等效,优雅的Python~~
>>> 3<4 and 4<5
True
10、Python中变量名是一些字母或下划线开头的标识符,其它字符可以是数字、字母或下划线。Python大小写敏感。Python是动态类型语言,也就是说不需要预先声明变量的类型。变量的类型和值在赋值的那一刻被初始化。Python支持复合赋值,不支持自增或自减。
11、Python支持五种基本数字类型,其中有三种是整型。
有符号整型、长整型、布尔值、浮点值、复数。
Complex(复数)6.23+1.5j
第六种数字类型,即decimal,用于十进制浮点型。需要导入decimal模块。
12、Python中字符串被定义为引号之间的字符集合。使用索引操作符[]或者切片操作符[:]可以得到子字符串。索引规则:第一个字符的索引是0,最后一个索引是-1。(*)用于字符串重复。
>>> pystr = 'Python'
>>> pystr[0]
'P'
>>> pystr[2:5]
'tho'
>>> pystr[:2]
'Py'
>>> pystr[3:]
'hon'
>>> '-'*20
'--------------------'
13、列表元素用[]包裹,元素的个数及元素的值可以改变,元组元素用()包裹,不可以更改。元组可以看成只读的列表,切片运算可以得到子集。
>>> aList = [1,2,3,4]
>>> aList
[1, 2, 3, 4]
>>> aList[2:]
[3, 4]
14、字典是Python中的映射数据类型,由键值对构成。用大括号{}包裹。
>>> adict={'host':'earth'}
>>> adict['port']=80
>>> adict
{'host': 'earth', 'port': 80}
>>> for key in adict:
print key,adict[key]
host earth
port 80
15、标准的if条件语句的语法如下。Python使用缩进表示代码块。
if expression:
if_suite
else:
else_suite
Python还支持elif(else-if)语句。
16、while语句
while expression:
while_siote
17、Python中的for循环类似于shell里的foreach迭代。
>>> for item in['e-mail', 'net-surfing', 'homework', 'chat']:
print item
net-surfing
homework
chat
print语句最后添加一个逗号(,),就可以使其不自动换行。
>>> for eachNum in [0,1,2]:
print eachNum,
0 1 2
>>> for eachNum in range(3):
print eachNum,
0 1 2
>>> foo ='abc'
>>> for c in foo:
print c,
a b c
>>> foo ='abc'
>>> for i,ch in enumerate(foo):
print ch,'(%d)' %i,
a (0) b (1) c (2)
18、列表解析
>>> sd= [x**2 for x in range(4) if not x%2]
>>> print sd
[0, 4]
19、访问文件
handle = open(file_name, access_mode='r')
access_mode: r,w,a,+,b:读,写,添加,读写,二进制访问。
filename = raw_input(‘Enter file name: ’)
fobj = open(filename, ‘r’)
for eachLine in fobj:
print eachLine,
fobj.close()
file()函数等同于open(),它是一个工厂函数。
20、错误和异常try…except…
try:
filename = raw_input('fileName:')
fobj = open(filename,'r')
for eachline in fobj:
print eacheline,
fbj.close()
except IOError,e:
print 'file open Error:',e
21、Python函数调用是通过引用进行的。这意味着函数对参数的改变会影响到原始对象。不过事实上只有可变对象会受此影响,对不可变对象来说,它的行为类似按值调用。没有返回值的函数,自动返回None对象。
默认函数,如果不传值,用默认值,如果传值,用此值。
def foo(debug = True):
if debug:
print ‘in debug mode’
print ‘done’
22、Python类使用class关键字定义。可以选择一个基类,如果没有合适的基类,则用object作为基类。
class FooClass(object):
versiont ='0.1'
def __init__(self, nm=’John’):
self.name = nm
def showname(self):
print ‘My name is’, self.__class__.__name__
__init__()类似于构造函数,但并不创建实例,仅仅是对象创建后执行的第一个方法。如果没有自己定义,那么系统会自己定义一个__init__()函数。self是类自身实例的引用。类似于其他语言中的this。
创建类实例:
foo1 = FooClass()
23、导入模块
import module_name
module.function()
module.variable
>>> import sys
>>> sys.stdout.write('Hello World!')
Hello World!
>>> sys.platform
'win32'
>>> sys.version
'2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)]'
write()函数不会自动添加换行符。
24、常用实用函数
dir([obj]) 显示对象的属性,如果没有提供参数则显示全局变量。2012/3/8
help([obj]) 美观的形式显示对象的文档字符串,没有提供参数,则进入交互模式
int(obj) 转为整数
len(obj)返回对象长度
open(fn,mod)以mode形式打开文件
range([start,]stop[,step]) 返回整数列表,以start开始,以stop-1结束,以step为步长。默认start为0,step为1
raw_input(str):等等输入,str为提示符
str(obj):将对象转换成字符串
type(obj):返回对象类型,返回值也是个对象