Python进阶三Python语法.docx
- 文档编号:6667961
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:18
- 大小:262.12KB
Python进阶三Python语法.docx
《Python进阶三Python语法.docx》由会员分享,可在线阅读,更多相关《Python进阶三Python语法.docx(18页珍藏版)》请在冰豆网上搜索。
Python进阶三Python语法
Python进阶(三)——Python语法
分类:
Python2012-08-3100:
231612人阅读评论(10)收藏举报
近几年来,随着Google、YouTube、IRobot等大公司对Python语言的广泛使用,Python公司的身影经常出现与我们的视线,Python语言也在软件质量、开发效率、程序的可移植性、标准库的支持等方面成为了一个优秀的程序开发语言,可以完成网站、游戏开发到航空航天控制等领域的各种任务。
本栏目希望通过学习《Python学习手册》和网站上的相关指导,从零学习Python,希望对大家有一些帮助。
本栏目开发环境:
Windows7+Python2.7.2+VS2008(以后集成)
Python进阶(三)—— Python语法
之前在第二章,Python对象类型时,我们已经讲过了python中基本类型,并用一些例子说明,大家应该已经对Python的语法有了基本了解,本章就不多讲赋值、表达式和打印的语法了,针对if测试、while和for循环、以及文档三部分做出具体讲解。
第一节、if测试
if测试的一般形式:
if-elif-else语法举例(Python中的多路分支):
[python]viewplaincopyprint?
1.myname='Sophia'
2.if myname=='Jane':
3. print "The is the first sister"
4.elif myname=='Ella':
5. print'This is the second sister'
6.else:
7. print 'This is Sophia'
8.
myname='Sophia'
ifmyname=='Jane':
print"Theisthefirstsister"
elifmyname=='Ella':
print'Thisisthesecondsister'
else:
print'ThisisSophia'
python的代码块分隔符:
[python]viewplaincopyprint?
1.x=1
2.if x:
3. y=2
4. if y:
5. print'block2'
6. print'block1'
7.print 'block0'
x=1
ifx:
y=2
ify:
print'block2'
print'block1'
print'block0'
以上面这段代码为例,包含三个模块:
第一个完全没有缩进,第二个缩进四格,第三个缩进八格,这里注意,python不在乎你怎么缩进代码。
只在乎缩进是否一致!
!
!
由此我们终于可以知道了,为什么if不需要C++中{}的约束,也不需要matlab中类似endif的约束了,因为它需要的知识相同缩进。
相对应的,如果你硬要在if外面加个大括号反倒有语法错误了!
∙可以横跨数行的语法:
有两种语法可以使用后横跨数行仍保持是一条语句:
一个是语法括号对()[]{},另一种是上一章中讲过的三个引号,相当于HTML中的
,想起来了吗?∙另外在做语句判定时,我们不得不讲的是逻辑真值判定,这里有三个操作:
and or not
我们来看些例子:
[python]viewplaincopyprint?
1.1 and 2
2.2
3.>>> 1 and 0
4.0
5.>>> 0 and 1
6.0
7.>>> 5 and 6
8.6
9.>>> 6 and 5
10.5
11.>>> 1<2 and 2>3
12.False
13.>>> 1<2 and 2<3
14.True
15.>>> 1<2 , 2>3
16.(True, False)
17.>>>
18.>>>
19.>>> 2 or 3, 3 or 2, 1 or 0, 0 or 0 #return left operand if true
20.(2, 3, 1, 0)
21.>>> 2 and 3, 3 and 2, 1 and 0, 0 and 1 #return left operand if false
22.(3, 2, 0, 0)
1and2
2
>>>1and0
0
>>>0and1
0
>>>5and6
6
>>>6and5
5
>>>1<2and2>3
False
>>>1<2and2<3
True
>>>1<2,2>3
(True,False)
>>>
>>>
>>>2or3,3or2,1or0,0or0#returnleftoperandiftrue
(2,3,1,0)
>>>2and3,3and2,1and0,0and1#returnleftoperandiffalse
(3,2,0,0)
最后,总结一下本小结的知识要点,答案都在上面,请大家自行练习:
第二节、while和for循环
1. while循环
while循环的一般格式:
forexample:
∙break,continue,pass,else:
break:
跳出循环;
continue:
跳到循环的首行;
pass:
什么都不做,空占位(比如现在只占个位子,以后再写内容);
else:
循环正常离开后执行;
举个例子:
[python]viewplaincopyprint?
1.def fun1():
2. print 'run fun1'
3.
4.def fun2():
5. print 'run fun2'
6.
7.
8.x='Sophia'
9.while x:
10. if len(x)%2:
11. fun1()
12. else:
13. fun2()
14. x=x[1:
]
15. if len(x)<=1:
16. break
17.
18.print'end'
19.
deffun1():
print'runfun1'
deffun2():
print'runfun2'
x='Sophia'
whilex:
iflen(x)%2:
fun1()
else:
fun2()
x=x[1:
]
iflen(x)<=1:
break
print'end'
运行结果:
[python]viewplaincopyprint?
1.run fun2
2.run fun1
3.run fun2
4.run fun1
5.run fun2
6.end
runfun2
runfun1
runfun2
runfun1
runfun2
end
2. for循环
for循环的一般语法:
example1:
[python]viewplaincopyprint?
1.sum = 0
2.for x in [1,2,3,4]:
3. sum = sum+x;
4.print sum
5.
6.
7.S=('Sophia','test','prog')
8.for x in S:
9. print x,
sum=0
forxin[1,2,3,4]:
sum=sum+x;
printsum
S=('Sophia','test','prog')
forxinS:
printx,
结果:
[python]viewplaincopyprint?
1.>>>
2.10
3.Sophia test prog
>>>
10
Sophiatestprog
example2:
[python]viewplaincopyprint?
1.a = []
2.for i in range(10):
3. a.append(i)
4.print a
5.
6.S='Sophia'
7.b=[]
8.i=0
9.while i
10. b.append(S[i])
11. i+=1
12.
13.print b
14.
15.i=0
16.for j in range(1,len(S)-1):
17. if b[j]
18. print a[i]
19. i+=1
20.
a=[]
foriinrange(10):
a.append(i)
printa
S='Sophia'
b=[]
i=0
whilei
b.append(S[i])
i+=1
printb
i=0
forjinrange(1,len(S)-1):
ifb[j]
printa[i]
i+=1
结果:
[0,1,2,3,4,5,6,7,8,9]
['S','o','p','h','i','a']
2
∙嵌套循环:
[python]viewplaincopyprint?
1.s1=[1,2]
2.s2='scam'
3.
4.res=[]
5.
6.for x in s1:
7. for x in s2:
8. res.append(x)
9.
10.
11.print res
s1=[1,2]
s2='scam'
res=[]
forxins1:
forxins2:
res.append(x)
printres
结果:
['s','c','a','m','s','c','a','m']
∙现在我们引入python中文件打开的方式,首先说下暴力方式:
原文:
t1.py
[python]viewplaincopyprint?
1.x=1
2.if x:
3. y=2
4. if y:
5. print'block2'
6. print'block1'
7.print 'block0'
x=1
ifx:
y=2
ify:
print'block2'
print'block1'
print'block0'
for循环进行文件迭代:
这就是传说中的文件迭代器,当然还存在其他的迭代器,比如字典有字典的迭代器,如上一节中所讲:
∙循环计数器:
range
range常用在for循环中产生索引,也可以用在需要整数列表的任何地方:
>>>range(5),range(2,5),range(0,10,2)
([0,1,2,3,4],[2,3,4],[0,2,4,6,8])
∙非完全遍历:
[python]viewplaincopyprint?
1.>>> S='Sophia'
2.>>> range(0,len(S),2)
3.[0, 2, 4]
4.>>> for i in range(0,len(S),2):
5. print S[i]
6.
7.
8.S
9.p
10.i
>>>S='Sophia'
>>>range(0,len(S),2)
[0,2,4]
>>>foriinrange(0,len(S),2):
printS[i]
S
p
i
∙并行遍历:
zip和map
zip创建配对后元组列表:
map与zip的唯一不同是,map用类似的方法把序列的元素配对后,为较短的序列以None补齐。
另外还可以用zip构造字典:
[python]viewplaincopyprint?
1.keys = ['a','b','c']
2.vals = [1,2,3]
3.
4.
5.Dic={}
6.for (k,v) in zip(keys,vals):
7. Dic[k]=v
8.
9.
keys=['a','b','c']
vals=[1,2,3]
Dic={}
for(k,v)inzip(keys,vals):
Dic[k]=v
结果:
>>>Dic
{'a':
1,'c':
3,'b':
2}
∙偏移元素:
enumerate
[python]viewplaincopyprint?
1.S = 'Spam'
2.offset=0
3.for item in S:
4. print item, 'appears at offset', offset
5. offset+=1
6.
7.#same function can be realized by enumerate:
8.
9.E = enumerate(S)
10.print E.next()
11.print E.next()
12.print E.next()
13.print E.next()
S='Spam'
offset=0
foriteminS:
printitem,'appearsatoffset',offset
offset+=1
#samefunctioncanberealizedbyenumerate:
E=enumerate(S)
printE.next()
printE.next()
printE.next()
printE.next()
结果:
enumerate函数返回一个生成器对象,该对象有一个next方法,每次列表遍历时,会返回一个(index,value)的元组。
第三节、文档
之前有朋友一直在问,Python的语法即便非常清晰,其预置功能数量依然惊人:
内置函数和异常、预定义对象属性和方法、标准库模块等。
我们之前只谈到了皮毛而已,那么困扰初学者的问题来了:
怎样找到这些内置工具呢?
本节提供了一些python可用的文档资源。
表1.python文档资源
#注释、dir函数和help函数之前我们已讲过,不予赘述,这里我们来看看其他几项。
∙__doc__是自动附加在对象上的文档,而且在运行时还可保存查看(类似#),从语法上来说,这类注释是写成字符串,放在模块文件、函数积累语句的顶端,在任何可执行代码前的。
python会自动封装这个字符串。
∙PyDoc:
HTML报表:
PyDoc提供的GUI接口可以将报表通过HTML网页格式来呈现。
∙标准手册集:
ActivePython27.chm(不同版本有不同名称)
最后呢,还要给大家奉送上一些常见陷阱:
∙不要忘记冒号
∙从第一行开始写程序
∙空白行在交互模式提示符下非常significant
模块文件中的空白行都会被忽略,但是交互模式下输入空白行会结束语句。
∙同一模块内缩进一致
∙不要尝试在Python中写C代码,比如if(x==1):
其实语法上没关系,但是是多余的,另外语句后不要打分号
∙推荐使用简单的for循环,而不是while和range。
因为for循环速度比较快,有时比等效的while快两倍
=====================================================
小结
本章讲述了Python语法,主要是if条件判定,while/for循环和一些帮助文档,希望大家有所收获,下一张将针对Python函数进行讲解。
后面将更加注重Python的科学计算方面。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 进阶 语法