运行python(python程序由解释器执行)
1.在命令shell中输入python启动解释器
2.启动python开发环境的工具(Jython、IronPython、IDLE、ActivePython、WingIDE、pydev等)
3.在交互式shell中,可以输入任意合法的语句或语句序列,然后立即查看结果,特殊变量“_”用于保存最后依次运算的结果
4.“#”字符表示一行都是注释
’’’注释内容’’’
5.对.py文件进行调试,在程序的首行中使用#!,如下所示
#!/usr/bin/env python
print“hello world” ’’’python2’’’
print(“helloworld”) ’’’python3’’’
变量和算数表达式
1.python是一种动态类型的语言,在程序执行过程中,可将变量名绑定到不同的值,这些值属于不同的类型。赋值运算的作用仅是在
名称和值之间创建一种关联,变量名称是无类型的
2.format()更新字符串格式化的方法,单独格式化每一个部分
条件语句
If a<b:
print(“yes”)
else:
print(“no”)
1.if和else子句的主题使用缩进表示的。else子句是可选的,创建一条空子句,可以使用pass语句
2.使用or、and和not关键字可以建立bool类型的表达式
if product ==”game” and type ==”private memory” \
andnot (age<4 or age>8)
print(“i’willtake it!”)
为了提高代码的可读性,可以在一行的结尾使用反斜杠(\),然后就可以在下一行继续书写这条语句的内容,如果这样做,正常的缩
进规则不适用于下一行,因此可随意设置后续行的格式
3.要处理多个测试用例,可以使用elif语句
4.表示真值,可以使用布尔值True和False
文件输入和打开
1.open()函数返回一个新的文件对象。调用该对象上的各种函数可以执行各种文件操作
2.readline()函数读取一行内容,包括结尾的换行符在内。读至文件结尾时将返回空子符串
3.迭代:程序在数据集(输入中的行、数字、字符串等)上进行循环
4.将程序的输出送到一个文件,如下所示
方法1:
>>>f=open("文件名“,”w")
>>>string="hello world"
>>>print>>f,"%s"%string ''' python2'''
>>>print("%s"%string,file=f) '''python3'''
>>>f.close()
方法2:
>>>f.write("%s"%string)
5.要想从交互方式读取用户输入,可以从文件sys.stdin中读取,也可以使用input()函数(python3)或raw_input()函数(python2)
要将数据输出到屏幕上,可以写入文件sys.stdout中
>>>import sys
>>>name=sys.stdin.readline()
jack '''此行等待用户输入'''
>>>sys.stdout.write("enter you name:")
jack '''输出的结果'''
5
字符串
1.字符串存储在一个以’0‘开始,使用整数索引的字符序列中。要提去其中的一个字符,可以使用索引运算符s[i],要提取一个字符串,
可以使用切片运算符s[i:j]
2.可以使用加(+)运算符连接两个字符串
3.要执行数学运算,首先要使用int()或float()函数将字符串转换为数值
使用str()、repr()或format()函数可将非字符串值转换为字符串表示形式,format()利用特定格式将值转换成字符串
例:
>>>x=1.3
>>>format(x,"0.5f")
'1.30000'
>>>
列表
1.列表是任意对象的序列,值放在[ ]中。从0开始索引,使用索引运算符可以访问和修改列表中的项
2.将新项追加到列表末尾,可使用append()方法:列表名.append(值)
3.将一项插入到列表,可使用insert()方式:列表名.insert(插入的位置,值)
4.使用切片运算符可以提取一个子列表对子列表重新赋值
5.使用加(+)运算符可以连接列表
6.创建一个空列表的方法
a=[ ]
a=list( )
7.列表中可以包含任意种类的python对象,包括其他列表在内,嵌套列表中包含的项需要使用多次索引运算才能访问到
元组
1.元素放在( )括号中(特殊:即使没有圆括号,python也能识别出元组)
创建元组:s='12',1,2,3 或 s=('12',1,2,3)
2.创建元组后不能修改它的内容(即无法替换、删除现有元组中的元素或插入新元素)。这说明最好把元组看作一个由多个部分组成
的对象
3.表示数据是通常同时使用元组和列表。下面的程序显示了如何读取包含不同数据列、且个数据列由逗号隔开的文件:
#文件格式为“id,grade,name"
filename="11"
s=[ ]
for line in open(filename):
f=line.split(",")
id=int(f[0])
grade=f[1]
name=f[2]
num=(id,grade,name)
s.append(num)
字符串的split()方法会按照指定的分隔符将一个字符串划分为一个字段列表
集合
1.集合用于包含一组无需的对象。要创建集合,可使用set()函数
s=set( [1,2,3,4] ) #创建一个数值集合 输出{1,2,3,4}
s=set("hello") #创建一个唯一字符的集合 输出{ 'o','l','e','h'}
注意:集合无法通过数字进行索引,且集合的元素不能重复
2.集合支持一系列标准操作,包括并集(|)、交集(&)、差集(-)、对称差集(^)等
3.使用add()(添加一个新项)和update()(添加多个新项)在集合中添加新项
4.使用remove()删除一项
字典
字典是一个关联数组或散列表,其中包含通过关键字索引的对象。在大括号{}中放入值
例:s={ 'id':123,'name':'jack','grade'='210'}
s=dict() #空字典 s={ } #空字典
访问字典成员,使用关键字索引:name=s['name']
插入或修改对象的方法:s['name']='galaxy' s['phonenum']='18909876567'
删除字典的元素:del s['phonenum']
获得一个字典的关键字列表:t=list(s)
函数
使用def语句可创建函数
要让函数返回多个值可使用元组 return(q,r),可以很容易的将结果放到单独的变量中:q1,r1=函数名(参数)
生成器
使用yield语句,可以让函数生成一个结果序列,而不仅仅是一个值,例如:
def c(n):
print("hello")
while n>0:
yield n #生成一个值(n)
n-=1
任何使用yield的函数都称为生成器。调用生成器函数将创建一个对象,该对项连续调用next()(python3中是__next__())方法生成
结果序列
>>>s=c(5)
>>>s.next()
hello
5
>>>s.next()
4
>>>
next()调用使生成器函数已知运行到下一条yield语句位置。此时next()将返回值传递给yield,而且使函数暂时中止
协程
把函数编写为一个任务,从而能处理发送给他的一系列输入,这类函数称为协程,可以使用yield语句,并以表达式(yield)的形式创建
协程
def pint_pp(text):
... while True:
... line=(yield) #获得一行文本
... if text in line:
... print line
要使用这个函数,首先要调用它,向前执行到第一条(yield)语句,然后是使用send()给它发送数据
>>> m=pint_pp('galaxy')
>>> m.next() #向前执行到第一条(yield)语句
hello galaxy
>>> m.send("hello world")
>>> m.send("galaxy is beatiuful")
galaxy is beatiuful
>>>m.close() #匹配器调用结束
使用send()为协程发送数据之前,协程会暂时终止,此时,协程中的(yield)表达式将返回这个值,而接下来的语句会处理它
对象和类
程序中使用的所有值都是对象。对象由内部数据和各种方法组成。例如
items=[37,42] #创建了一个列表对象
items.append(73) #调用append()方法
dir()函数可以列出对象上的可用方法
异常
使用try和except语句捕捉异常
raise语句用于手工引发一场。引发异常时,可以使用任意一个内置异常
raise RuntimeErrror("computer says no")
模块
1.python允许把定义放入一个文件中,然后在其他程序或脚本中将其作为模块导入:import sys
2.使用不同的名称导入模块:import sys as s
3.将具体的定义导入模块:from time import ctime
4.将模块的所有内容加载到当前的命名空间:from time import *