Task2 条件循环结构
条件语句
if语句
在同一个代码块当中,每条语句的缩进量是相同的。
①如果条件成立,就执行其包含的某条语句或某个代码块。
if condition:
print("我在里面")
print("我也在里面") #上面一行和这一行是同一个代码块,具有相同的缩进量
print("我在外面") #这句话不包含在if条件成立执行的语句里
②如果条件不成立,就执行另外的某条语句或某个代码块。
if condition:
print("条件成立")
else
print("条件不成立")
③判断多个条件,如果第一个条件不成立,则继续判断第二个条件,如果第二个条件不成立,则接着判断第三个条件,以此类推。
elif语句就是else if语句(el是else的缩写):
if condition1:
print("条件1成立")
elif condition2:
print("条件2成立")
elif condition3:
print("条件3成立")
... #以此类推
④判断多个条件,并在最后添加一个else,表示上面所有条件均不成立的情况下,执行某条语句或某个代码块。
if condition1:
print("条件1成立")
elif condition2:
print("条件2成立")
elif condition3:
print("条件3成立")
else
print("上面条件均不成立")
注意:python使用缩进而不是大括号来标记代码块边界
assert关键词
断言assert的用法:
当assert后面的条件为false时,程序自动崩溃并抛出Assertion Error的异常
assery 5>110
#输出结果为Assertion Error
循环语句
while循环
while condition:
statement(s)
只要条件一成立,其包含的某条语句或某个语句块就会一直被执行。
for循环
for 变量 in 可迭代对象:
statement(s)
可迭代对象:指元素能够被单独提取出来的对象,比如字符串。
迭代:比如从字符串里依次拿出每个字符,这个过程叫做迭代。
for each in "Hello":
print(each)
'''
输出结果为:
H
e
l
l
l
'''
for循环每次从字符串Hello里面取出一个字符并赋值给变量each,循环体内只有一个语句就是将each变量的值输出。结果就是将Hello里的五个字符逐个输出。
嵌套循环
range()函数
range() 函数可创建一个整数列表
用法:
①range(stop)
②range(start,stop)
③range(start,stop,step)
start: 计数从 start 开始。默认是从 0 开始。
例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。
例如:range(0, 5) 输出是0, 1, 2, 3, 4没有5
step:步长,默认为1。
例如:range(0, 5) 等价于 range(0, 5, 1)
for i in range(2,6):
print i
'''
输出结果为:
2
3
4
5
'''
for i in range(1,6,2):
print i
'''
输出结果为:
1
3
5
'''
enumerate()函数
enumerate(sequence, [start=0])
sequence是一个序列、迭代器或其他支持迭代对象。
start是下标起始位置。
返回值是返回 enumerate(枚举) 对象。
enumerate()函数用于将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标。相当于既可以返回某个数据对象中的元素,还可以提供该元素的索引值(默认从0开始)
for i, a in enumerate(A)
do something with a
循环控制语句
break
break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。
continue
continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。
pass
pass 不做任何事情,一般用做占位语句。
练习题
1、编写一个程序来查找那些可以被7和5整除的整数,介于1500和2700之间:
答案如下:
x = 1500
num = []
while x <= 2700:
if x % 7 == 0 and x % 5 == 0:
num.append(x)
x = x+1
print("请输入您要查找的整数,在1500-2700之间")
y = input()
i = 0
while i < len(num):
if y == num[i]:
print("您查找的整数在1500-2700之间且能被7或5同时整除")
i = i+1
else:
print("您查找的整数不符合要求或不能被7或5同时整除")
2、龟兔赛跑游戏
输入:
输入只有一行,包含用空格隔开的五个正整数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
答案如下:
v1,v2,t,s,l=input().split(" ")
v1 = int(v1)
v2 = int(v2)
t = int(t)
s = int(s)
l = int(l)
time = 1
l1 = v1
l2 = v2
while l1 < l and l2 < l:
if l1 - l2 >= t:
time += s
l2 = l2 + v2 * s
else:
time += 1
l1 = l1 + v1
l2 = l2 + v2
if l1 >l2:
print("R")
print(time)
elif l1 == l2:
print("D")
print(time)
else:
print("T")
print(time)