https://shimo.im/docs/chGwcKVGcjcykChh/ 《Python组队学习》
理论部分
1. 掌握基本的条件,循环语句的使用。
2. 掌握assert断言break,continue,pass,等语句的使用。
3. 熟悉推导式的用法。
练习部分
1. 课后思考题
2. 龟兔赛跑游戏
1、条件语句
1.1 if语句
|
if expression: |
|
expr_true_suite |
1)条件为真时,执行下面语句块
2)可以使用and/or/not进行多重条件判断
1.2 if-else语句
|
if expression: |
|
expr_true_suite |
|
else: |
|
expr_false_suite |
1) 条件为真,执行if下面语句块;条件为假,执行else下面语句块
2)if支持条件嵌套,但要注意else悬挂问题
1.3 if-elif-if语句
|
if expression1: |
|
expr1_true_suite |
|
elif expression2: |
|
expr2_true_suite |
|
...... |
|
else: |
|
expr_false_suite |
elif既else if,用于检查多份表达式是否为为真,为真时执行相应语句块
1.4 assert关键字
assert即断言,当断言后条件为假时,程序会自动崩溃,并返回AssertionError
2、循环语句
2.1 while循环
|
while 布尔表达式: |
|
代码块 |
- 一直执行,直到 布尔表达式 为假
2.2 while-else循环
|
while 布尔表达式: |
|
代码块 |
|
else : |
|
代码块 |
- while 正常执行完,在执行 else
while 中有跳出循环语句(如,break),不执行 else
2.3 for 循环
|
for 迭代变量 in 可迭代对象: |
|
代码块 |
- 可遍历任何 有序序列 和 可迭代对象,如str,list,tuple等
2.4 for-else循环
|
for 迭代变量 in 可迭代对象: |
|
代码块 |
|
else : |
|
代码块 |
- for 正常执行完,在执行 else
for 中有跳出循环语句(如,break),不执行 else
2.5 range() 函数
|
rang([start],stop[,step=1]) |
|
1、range() 为BIF,start、step为可选项 |
|
2、step=1,step默认为1 |
|
3、作用:生成一个从 start 开始,到 stop 为止的数字序列,包括start,不包括stop |
2.6 enumerate() 函数
|
enumerate(sequence,[start=0]) |
|
1、sequence 支持迭代对象,可为序列、迭代器等 |
|
2、start 下标起始位置 |
|
3、返回 enumerate(枚举) 对象 |
|
4、enumerate 与 for 配合使用 |
|
for i,a in enumerate(A): |
|
do something with a |
2.7 break语句
跳出本层循环
2.8 continue语句
结束本次循环,并开始下一次循环
2.9 pass 语句
不做任何操作
空语句,占位作用,保持程序的完整性
2.10 推导式
|
列表推导式 |
[ expr for value in collection [if condition] ] |
|
元组推导式 |
( expr for value in collection [if condition] ) |
|
字典推导式 |
{ key_expr: value_expr for value in collection [if condition] } |
|
集合推导式 |
{ expr for value in collection [if condition] } |
|
其他 |
d = 'i for i in "I Love Lsgogroup"' |
|
e = (i for i in range(10)) |
|
|
s = sum([i for i in range(101)]) |
练习题
1、编写一个Python程序来查找那些可以被7除余5的整数的数字,介于1500和2700之间。
2、编写一个Python程序来查找那些可以被7和5整除的整数的数字,介于1500和2700之间。
3、龟兔赛跑游戏
题目描述:
在与乌龟的比赛中,一旦任一秒结束后兔子发现自己领先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”,分别表示乌龟获胜,兔子获胜,或者两者同时到达终点。
第二行输出一个正整数,表示获胜者(或者双方同时)到达终点所耗费的时间(秒数)。