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)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值