天池python训练营D2

学习目标:

回顾并巩固python知识
D2 条件与循环

学习内容:

条件语句

标准格式 if-[elif]-(else)

if expression1: expr1_true_suite
[elif] expression2: expr2_true_suite

[elif] expressionN: exprN_true_suite
(else:) expr_false_suite

  • 注意:在条件语句中亦可嵌套条件语句

assert 关键词

assert这个关键词我们称之为“断言”,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError的异常。

循环语句

while循环

while True:
expr_true_suite
else:
expr_false_suite

for循环

for i in object:
do something
else:
do something else

  • 注:else为循环结束时执行,只会执行一次
range()函数

range([start,] stop[, step=1])
这个BIF(Built-in functions)有三个参数,其中用中括号括起来的两个表示这两个参数是可选的。
step=1 表示第三个参数的默认值是1。
range 这个BIF的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列,该序列包含start的值但不包含stop的值。

  • for i in range(A):
    do something with i
enumerate()函数

enumerate(sequence, [start=0])
sequence:一个序列、迭代器或其他支持迭代对象。
start:下标起始位置。
返回 enumerate(枚举) 对象

  • 注:该函数会为序列生成对应的索引值,并且以(index,value)的形式保存
  • for i, a in enumerate(A):
    do something with a
break 语句

break语句可以跳出当前所在层的循环。

continue 语句

continue终止本轮循环并开始下一轮循环。

pass 语句

pass 语句的意思是“不做任何事”,如果你在需要有语句的地方不写任何语句,那么解释器会提示出错,而 pass 语句就是用来解决这些问题的。

推导式

列表推导式
[ 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] }

其它
next(iterator[, default])
指向对象下一位的指针
Return the next item from the iterator. If default is given and the iterator is exhausted, it is returned instead of raising StopIteration.

练习题

1. 编写一个Python程序来查找那些可以被7除以5的整数的数字,介于1500和2700之间。

x=[i for i in range(1500,2700) if (i % 7) == 5  ]
print(x)

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
your code

def competition(v1,v2,t,s,l):
    l1=v1;
    l2=v2;
    time=1
    while (l1<l and l2<l):
        if((l1-l2)>=t):
            l2=l2+v2*s
            time=time+s
        else:
            l1=l1+v1
            l2=l2+v2
            time=time+1
    if(l1>l and l2>l):
        print("D")
        print(time)
    elif l1<l:
        print("R")
        print(time)
    else:
        print("T")
        print(time)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值