条件结构
单独if语句
- if语句的条件表达式用冒号结束; 用四个缩进来标记代码块边界.
- 条件语句为真则执行,否则不执行
- if 语句中的条件表达式可以和布尔运算符and, or, 和not 实现多重条件判断
if-else语句
- 如果if 语句的条件表达式为假,则执行else语句后的代码
if支持嵌套
注:else要与第二个if对齐,若如下图,else与第一个if对齐则会没有输出,因为这样else对应的是第一个条件表达式 if hi >2, 那么只有 hi >2, 所以不能输出else,要执行if hi>7,
而又因为if hi <7,不满足,则不能进行输出
if- elif - else语句
elif 是else 和 if 的缩写,可以用来检测多个表达式是否为真
assert关键词
作用:当这个关键词后的条件为False时,程序自动崩溃并抛出AssertionError的异常。
在进行单元测试时,可以用来在程序中植入检查点,只有条件为True才让程序正常工作。
循环语句
while循环
while循环是无限循环
- 以while开头,表示这是一个while循环
- 然后是要检查的条件
- while循环头部事重以冒号结束。
- 该头部后的缩进部分是while循环的主体。如果循环的条件为true,该循环的主题将被执行。每次运行循环主体时,条件将被重新评估。这个检查条件然后运行循环的流程将重复,知道该表达式变成false。
循环的缩进主题应该
for循环
for循环用来遍历可迭代的对象。可迭代对象是每次可以返回其中一个元素的对象。
for循环组成部分
- for 开头表明是for循环
- 然后是iteration_variable in iterable,iterable是正在被Iterate的对象,iteration_variable是正在被iterate的对象中的元素。
- for循环头部以冒号结尾
- for循环头部后是每次iterate时运行的缩进代码块
修改列表 – range()
- range(), range(start, stop, step),默认start=0,step=1
- range(), 若指定一个参数,即为stop的数值
for - else & while-else循环
当while/for循环正常执行完的情况下,执行else输出,如果while/for 循环中跳出循环语句,比如break,将不执行else代码块的内容
break & continue&pass
- break 停止
- continue终止本轮循环并开始下一轮循环
- pass时不做任何事,如果你在需要有语句的地方不屑任何语句,那么解释器会提示错误,而pass语句就是用来解决这些问题的。
enumerate函数推导式(选)
作业
- 编写一个Python程序来查找那些既可以被7整除又可以被5整除的数字,介于1500和2700之间。
龟兔赛跑
2、龟兔赛跑游戏
题目描述:
话说这个世界上有各种各样的兔子和乌龟,但是研究发现,所有的兔子和乌龟都有一个共同的特点——喜欢赛跑。于是世界上各个角落都不断在发生着乌龟和兔子的比赛,小华对此很感兴趣,于是决定研究不同兔 子和乌龟的赛跑。他发现,兔子虽然跑比乌龟快,但它们有众所周知的毛病——骄傲且懒惰,于是在与乌龟的比赛中,一旦任一秒结束后兔子发现自己领先t米或以 上,它们就会停下来休息s秒。对于不同的兔子,t,s的数值是不同的,但是所有的乌龟却是一致——它们不到终点决不停止。
然而有些比赛相当漫长,全程观看会耗费大量时间,而小华发现只要在每场比赛开始后记录下兔子和乌龟的数据——兔子的速度v1(表示每秒兔子能跑v1 米),乌龟的速度v2,以及兔子对应的t,s值,以及赛道的长度l——就能预测出比赛的结果。但是小华很懒,不想通过手工计算推测出比赛的结果,于是他找 到了你——清华大学计算机系的高才生——请求帮助,请你写一个程序,对于输入的一场比赛的数据v1,v2,t,s,l,预测该场比赛的结果。
输入:
输入只有一行,包含用空格隔开的五个正整数v1,v2,t,s,l,其中(v1,v2< =100;t< =300;s< =10;l< =10000且为v1,v2的公倍数)
输出:
输出包含两行,第一行输出比赛结果——一个大写字母“T”或“R”或“D”,分别表示乌龟获胜,兔子获胜,或者两者同时到达终点。
第二行输出一个正整数,表示获胜者(或者双方同时)到达终点所耗费的时间(秒数)。
样例输入:
10 5 5 2 20
样例输出
D
4