条件判断语句
- if 语句
if expression:
code
条件表达式expression是一个布尔表达式,为True时,执行code
expression可以通过逻辑运算(and/or/not)实现多重判断
- if-else语句
if expression:
code1
else:
code2
if与else搭配使用,当expression为True时,执行code1;当expression为False时,执行code2
note:
a. if语句内部的code部分可嵌套if,继续进行条件判断;
b. python使用缩进标记代码边界块,if语句需要注意
- if-elif-else语句
if expression1:
code1
elif expression2:
code2
...
elif expressionN;
codeN
else:
code0
elif即为else if
- assert关键词
assert expression
当expression为False时,程序抛错终止
可用于测试程序运行结果的对错,出错即终止程序
循环语句
python中的循环语句包括while和for
- while循环
while expression:
code1
expression也是一个为布尔表达式,expression==True时,程序循环执行,直到出现False;
expression可省略,则相当于expression == True,程序一直循环执行,可通过内部控制终止,如break
expression为0时,expression=False;为非零整数时,expression=True
expression可以是字符串、列表或其他序列,为空时,expression=False,否则为True
- while-else循环
while expression:
code1
else:
code2
正常执行完while循环体后执行else;若code1内有跳出循环的语句,如break,则不再执行else
- for循环
for循环是迭代循环,可遍历任何有序序列或可迭代对象,如str, list, tuple, dict
for 迭代变量 in 可迭代对象:
code
- for-else循环
for 迭代变量 in 可迭代对象:
code1
else:
code2
类似于while-else,正常执行完for循环后,执行else
- range()函数
range([start=0, ]end[, step=1])
用于生成一个从start到stop,间隔为1的数据序列,一般与for循环结合使用;包含start,但不包含end;其中,start和step是可选参数,默认值为start=0,step=1 - enumerate()函数
enumerate(sequence, [start=0])
sequence是一个序列、迭代器或其他支持迭代对象,可指定下标的起始位置;返回一个枚举对象,包括索引值和当前迭代元素,一般与for循环使用 - break语句
用于跳出当前最近一层循环,即使循环条件依然成立 - continue语句
用于终止本次循环的执行,直接进入下一次循环
与break不同,continue并不会终止循环的执行,只是放弃本轮而直接进入下一轮循环 - pass语句
相当于一个占位符,是一个空语句,可用于暂时不确定要执行何种代码的位置,保证代码结构的完整性 - 推导式
列表表达式
[expression for value in collection (if condition)]
等价于
for value in colletion:
if condition:
expression
其中,if可省略,且不能使用else
类似的还有元组表达式、字典表达式、集合表达式等
练习题
- 查找那些既可以被7整除又可以被5整除的数字,介于1500和2700之间。
# 循环
nums = []
for num in range(1500, 2700):
if num % 5 == 0 and num % 7 == 0:
nums.append(num)
# 列表表达式
nums = [num for num in range(1500, 2700) if num % 5 == 0 and num % 7 == 0]
- 龟兔赛跑游戏
问题描述
v1 = int(input('Please input the speed of rabbit:'))
v2 = int(input('Please input the speed of tortoise:'))
t = int(input('Please input the distance between them:'))
s = int(input('Please input the time rabbit wastes for tortoise:'))
l = int(input('Please input the distance of track:'))
l1, l2 = 0, 0
while l1 < l and l2 < l:
if l1-l2 < t:
l1 += v1
l2 += v2
else:
l2 += v2 * s
if l1 > l2:
print('R')
elif l1 < l2:
print('T')
else:
print('D')
print(int(l/v2))