一、条件语句
1.if 语句
(1)if 语句的 expr_true_suite 代码块只有当条件表达式 express 结果为真时才执行,否则将继续执行紧跟在该代码块后面的语句
(2)单个 if 语句中的 express 条件表达式可以通过布尔操作符 and,or 和 not 实现多重条件判断
2.if-else 语句
(1)python 提供与 if 搭配使用的 else,如果 if 语句的条件表达式结果布尔值为假,那么程序将执行 else 语句后的代码
(2)if 语句支持嵌套,即在一个if 语句中嵌入另一个 if 语句,从而构成不同层次的选择结构。python 使用缩进而不是大括号来标记代码块边界,因此要特别注意 else 的悬挂问题
3.if-elif-else 语句
eilf 语句即为 else if ,用来检查多个表达式是否为真,并在为真时执行特定代码块中的代码
4.assert 关键词
(1)assert 这个关键词我们称之为断言,当这个关键词后边的条件为False时,程序自动崩溃并抛出Assertion Error 的异常
(2)在进行单元测试时,可以用来在程序中置入检查点,只有条件为True才能让程序正常工作
二、循环语句
1.while 循环
(1)while 语句最基本的形式包括一个位于顶部的布尔表达式,一个或多个属于while 代码块的缩进语句,while 循环的代码块会一直循环执行,直到布尔表达式的值为布尔假
(2)如果布尔表达式不带有<、>、==、!=、in、not in等运算符,仅仅给出数值之类的条件,也是可以的。当while后写入一个非零整数时,视为真值,执行循环体;写入0时,视为假值,不执行循环体。也可以写入str、list或任何序列,长度非零则视为真值,执行循环体;否则视为假值,不执行循环体。
2.while-else 循环
当 while 循环正常执行完的情况下,执行else 输出,如果while 循环中执行了跳出循环的语句,比如:break,将不执行else 代码块的内容
3.for 循环
for 循环是迭代循环,在python 相当于一个通用的序列迭代器,可以遍历任何有序序列,如:str、list、tuple等,也可以遍历任何可迭代对象,如:dict。每次循环,迭代变量被设置为可迭代对象的当前元素,提供给代码块使用。
4.for-else循环
当for 循环正常执行完的情况下,执行else 输出,如果for 循环中执行了跳出循环的语句,比如:break,将不执行else 代码块的内容,与while-else 语句一样
5.range() 函数
(1)这个BIF 有三个参数,其中用中括号括起来的两个表示这两个参数是可选的
(2)step=1 表示第三个参数的默认值是1
(3)range 这个BIF的作用时生成一个从start 参数的值开始到stop 参数的值结束的数字序列,该序列包含start 的值但不包含stop 的值
6.enumerate() 函数
(1)sequence :一个序列、迭代器或其他支持迭代对象
(2)start :下标起始位置
(3)返回enumerate (枚举)对象
7.break 语句
break 语句可跳出当前所在层的循环
8.continue 语句
continue 终止本轮循环并开始下一轮循环
9.pass 语句
(1)pass 语句的意思是“不做任何事”,如果你在需要有语句的地方不写任何语句,那么解释器会提示出错,而pass 的语句就是用来解决这些问题的
(2)pass 是空语句,不做任何操作,只起到占位的作用,其作用是为了保持程序结构的完整性,尽管pass 语句不做任何操作,但如果暂时不确定要在一个位置放上什么样的代码,可以先放置一个pass 语句,让代码可以正常运行。
10.推导式
(1)列表推导式: [expr for value in collection [if conditon] ]
(2)元组推导式: (expr for value in collection [if conditon] )
三、练习题
1.编写一个python 程序来查找那些可以被7和5的整除的数字,介于1500和2000之间
start=1500
end=2000
while start<end:if start%5==0 and start%7==0:start+=1print('%d'%start)continueelse:start+=1
2.龟兔赛跑游戏
v1,v2,t,s,l=map(int,input().split())
if v1<=100 and v2<=100 and t<=300 and s<=10 and l<=10000 and l%v1==0 and l%v2==0:s1,s2,i=0,0,0while s1<l and s2<l:s1,s2,i=v1+s1,v2+s2,i+1if s1==l or s2==l:breakelif s1-s2>=t:s2,i=s2+v2*s,i+sif s1>s2:print('R')if s1==s2:print('D')if s1<s2:print('T')i+=1print(i)