python程序设计-第四章控制流_第1页
python程序设计-第四章控制流_第2页
python程序设计-第四章控制流_第3页
python程序设计-第四章控制流_第4页
python程序设计-第四章控制流_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python程序设计

ProgramminginPython主讲:庞胜利2第四章控制流ifwhileforbreakcontinue控制流简介在到目前为止我们所见到的程序中,总是有一系列的语句,Python忠实地按照它们的顺序执行它们。如果想要改变语句流的执行顺序,该怎么办呢?例如,想要让程序做一些决定,根据不同的情况做不同的事情,如:根据时间打印“早上好”或者“晚上好”。这是通过控制流语句实现的,在Python中有三种控制流语句——if、for和while。ifif语句是选取要执行的操作,是Python主要的选择工具,代表Python程序所拥有的大多数逻辑。if语句是复合语句,同其他复合语句一样,if语句可以包含其他语句if通用格式if

<test1>:

<statements1>elif

<test2>:

<statements2>else:

<statements3>if的例子#coding:utf-8number

=

23guess

=int(raw_input('Enteraninteger:'))if

guess

==

number:

print

'Congratulations,youguessedit.'

#Newblockstartshere

print

"(butyoudonotwinanyprizes!)"

#Newblockendshereelif

guess

<

number:

print

'No,itisalittlehigherthanthat'

#Anotherblock

#Youcandowhateveryouwantinablock...else:

print

'No,itisalittlelowerthanthat'

#youmusthaveguess>numbertoreachhereprint

'Done'#Thislaststatementisalwaysexecuted,aftertheifstatementisexecutedifPython中没有switch、case语句可以用多个if实现,或者对字典进行索引运算或搜索列表,因为字典和列表可在运行时创建,有时会比硬编码的if逻辑更有灵活性。字典实现switchchoice

=

'ham'dic

=

{'spam':

1.25,

'ham':

1.99,

'eggs':

0.99,

'bacon':

1.10}print

dic[choice]if

choice

==

'spam':

print

1.25elif

choice

==

'ham':

print

1.99elif

choice

==

'eggs':

print

0.99elif

choice

==

'bacon':

print

1.10else:

print

'badchoice'字典适用于将值和键相关联,值也可以是函数,因此可以用于更多灵活的处理。真值测试在Python中,与大多数程序设计语言一样,整数0代表假,1代表真。不过,除此之外,Python也把任意的空数据结构视为假。更一般的,真和假的概念是Python中每个对象的固有属性:每个对象不是真就是假真值测试数字如果非零,则为真对象如果非空,则为真数字零、空对象以及特殊对象None都被认作是假比较和相等测试会递归的应用在数据结构中比较和相等测试会返回True或False布尔and和or运算符会返回真或假的操作对象真值测试>>>2<3True>>>2or32>>>0or22>>>[]or'hello''hello'>>>[]or{}{}Python会由左向右求算操作对象,然后返回第一个为真的操作对象,再者Python会在其找到的第一个真值操作数的地方停止,这通常称为短路运算。>>>2and33>>>2and[][]>>>[]and3[]>>>[]and{}[]Python会由左向右求算操作对象,然后返回第一个为假的操作对象,再者Python会在其找到的第一个假值操作数的地方停止这些最终结果都和C及其他语言相同:如果在if测试时,会得到逻辑真或假的值。然而,Python中,布尔运算返回左边或右边的对象,而不是简单的整数标志位。三元表达式A=Y?X:Zif

X:

A

=

Yelse:

A

=

ZA

=

Y

if

X

else

Z>>>a='t'if'spam'else'f'>>>a't'>>>a='t'if''else'f'>>>a'f'while、forwhile、for用于提供循环的控制功能while一般格式:while

<test>:

#Looptest

<statements1>

#Loopbodyelse:

#Optionalelse

<statements2>

#Runifdidn'texitloopwithbreaka

=

0b

=

10while

a<b:

print

a

a

=

a

+

1while例子number

=

23running

=

Truewhile

running:

guess

=int(raw_input('Enteraninteger:'))

if

guess

==

number:

print

'Congratulations,youguessedit.'

running

=

False

#thiscausesthewhilelooptostop

elif

guess

<

number:

print

'No,itisalittlelowerthanthat'

else:

print

'No,itisalittlehigherthanthat'else:

print

'Thewhileloopisover.'

#Doanythingelseyouwanttodohereprint

'Done'中断循环在循环进行中,如果满足一定条件而中断整个循环或本次循环,可以使用break或continue。break语句是用来终止循环语句的,哪怕循环条件没有称为False或序列还没有被完全递归,也停止执行循环语句。注意的是:如果从for或while循环中终止,任何对应的循环else块将不执行。break的例子while

True:

s

=

raw_input('Entersomething:')

if

s

==

'quit':

break

print

'Lengthofthestringis',

len(s)print

'Done'continuecontinue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环while

True:

s

=

raw_input('Entersomething:')

if

s

==

'quit':

break

if

len(s)

<

3:

print

'Inputisofsufficientlength'

continue

#Dootherkindsofprocessinghere...forfor循环在Python中是一个通用的序列迭代器:可以遍历任何有序的序列对象内的元素。for语句可用于字符串、列表、元组、其他内置可迭代对象,以及用户通过类创建的新对象。for一般格式for循环首行定义一个赋值目标,以及想遍历的对象;首行后面是想重复的语句块运行for循环时,会逐个将序列对象中的元素赋值给目标,然后为每个元素执行循环主体。循环主体一般使用赋值目标来引用序列中当前元素。for

<target>

in

<object>:#Assignobjectitemstotarget

<statements>

#Repeatedloopbody:usetargetelse:

<statements>

#Ifwedidn'thita'break'for完整格式for

<target>

in

<object>:#Assignobjectitemstotarget

<statements>

#Repeatedloopbody:usetarget

if

<test>:

break#Exitloopnow,skipelse

if

<test>:

continue#Gototopofloopnowelse:

<statements>

#Ifwedidn'thita'break'for例子>>>forxin['a','b','c']

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论