python task02. 条件与循环语句

1.条件语句

条件语句结构定义
if 语句在这里插入图片描述只有当条件表达式 expression 结果为真时才执行,否则将继续执行紧跟在该代码块后面的语句。
if - else 语句在这里插入图片描述如果 if 语句的条件表达式结果布尔值为真,执行if语句后的expr_true_suite代码;布尔值为假,那么程序将执行 else 语句后的expr_false_suite代码。
if - elif - else 语句在这里插入图片描述elif 语句即为 else if,用来检查多个表达式是否为真,并在为真时执行特定代码块中的代码。

注意

  • if 语句中的 expression 条件表达式可以通过布尔操作符 andornot 实现多重条件判断。

  • if语句支持嵌套,即在一个if语句中嵌入另一个if语句,从而构成不同层次的选择结构。Python 使用缩进而不是大括号来标记代码块边界,因此要特别注意else`的悬挂问题。

2.循环语句

循环语句结构定义
while 循环在这里插入图片描述while循环的代码块会一直循环执行,直到布尔表达式的值为布尔假。
while - else 循环在这里插入图片描述while循环正常执行完的情况下,执行else输出,如果while循环中执行了跳出循环的语句,比如 break,将不执行else代码块的内容。
for 循环在这里插入图片描述for循环是迭代循环,在Python中相当于一个通用的序列迭代器,可以遍历任何有序序列,如str、list、tuple等,也可以遍历任何可迭代对象,如dict。每次循环,迭代变量被设置为可迭代对象的当前元素,提供给代码块使用。
for - else 循环在这里插入图片描述for循环正常执行完的情况下,执行else输出,如果for循环中执行了跳出循环的语句,比如 break,将不执行else代码块的内容,与while - else语句一样。
  • 不带有<、>、==、!=、in、not in等运算符,仅仅给出数值之类的条件,也是可以的。当while后写入一个非零整数时,视为真值,执行循环体;写入0时,视为假值,不执行循环体。也可以写入str、list或任何序列,长度非零则视为真值,执行循环体;否则视为假值,不执行循环体.

3.assert 关键词

  • assert这个关键词我们称之为“断言”,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError的异常。
  • 在进行单元测试时,可以用来在程序中置入检查点,只有条件为 True 才能让程序正常工作。

【例1】

my_list = ['lsgogroup']
my_list.pop(0)
assert len(my_list) > 0

# AssertionError

【例2】

assert 3 > 7

# AssertionError

4.相关函数

函数结构参数定义
range() 函数range([start,] stop[, step=1])step=1 表示第三个参数的默认值是1。 range 这个BIF的作用是生成一个从start参数的值开始到stop参数的值结束的数字序列,该序列包含start的值但不包含stop的值。
enumerate()函数enumerate(sequence, [start=0])sequence一个序列、迭代器或其他支持迭代对象。start 表示下标起始位置。返回 enumerate(枚举) 对象
break 语句break()break`语句可以跳出当前所在层的循环。
continue 语句continue ()continue 语句终止本轮循环并开始下一轮循环。
pass 语句pass()pass 语句的意思是“不做任何事”,如果你在需要有语句的地方不写任何语句,那么解释器会提示出错,而 pass 语句就是用来解决这些问题的。

5.推导式

推导式结构例子
列表推导式[ 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] }在这里插入图片描述
其他

6.练习

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

for i in range(1500,2700):
    if i%7==0 and i%5==0:
        print(i)
        i=i+1

(2)

v1,v2, t, s, l = list(map(int,input('请输入比赛数据:兔子速度v1、乌龟速度v2,兔子t和s,赛道长度l:').split(" ")))
s1 = 0   #兔子行走距离
s2 = 0   #乌龟行走距离
m = 0    #时间
while (s1 < l) and (s2 < l):
    if (s1 - s2) < t:
        s1 +=v1
        s2 +=v2
        m += 1
    else:
        n = 0
        while (s2 < l) and (n < s):
            s2 += v2
            m += 1
            n += 1
if s1 == s2:
    print("D")
    print(m)
elif s1 > s2:
    print("R")
    print(m)
else:
    print("T")
    print(m)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值