Python学习手札(二)条件语句&循环语句

1.条件语句

(1)if 语句

格式是这样子的:

if expression:
   expr_ture_suite

当条件表达式expression成立时,执行if语句 expr_pure_suite,否则执行if语句后面的代码。
举个例子哈

if 1 < 2 or 1 == 3print("Right")
#Right

(2)if-else语句

格式是这样子:

if expression:
  expr_true_suite
else:
  expr_false_suite

if语句中,条件语句若成立,执行if后面语句,否则执行else后面语句。
举个具体例子:

a = input("Is baishao a handsome boy?") #对的打1,错的打0
guess = int(a)
if guess == 1print("you are right!")
else:
   print("you are wrong!")
print("time is up, so game over")
#Is baishao a handsome boy? 1
#you are right!
#time is up, so game over

注意:if语句支持嵌套;以及else的缩进,不同位置对应不同的if

(3)if-elif-else语句

解释一下,elif就是else if
所以这种语句结构如下:

if expression1:
    expr1_ture_suite
elif expression2:
    expr2_ture_suite
    .
    .
    .
elif expressionN
    exprN_ture_suite
else:
    expr_false_suite

(4)assert关键词

assert这个词翻译过来就是断言。当assert后面的条件不成立时,程序自动崩溃,并且弹出AssertionError的异常。
在这里插入图片描述
注:只有条件为true时,程序才可正常运行。

2.循环语句

(1)while循环

当布尔表达式成立时,代码块一直执行,直到布尔表达式不成立为止。

while 布尔表达式:
    代码块

举个例子:

i =0
while i < 5:
   print(i)
   i = i + 1
print("game over!")
'''
0
1
2
3
4
game over!
'''

(2)while-else循环

while 布尔表达式:
     代码块1
else:
     代码块2

当while后布尔表达式成立时,执行代码块1;否则执行代码块2,与上大致同,不再赘述。

(3)for循环

for循环是一个迭代循环,在python中相当于一个通用序列迭代器,可以遍历任何有序序列,包括str、list、tuple等;也可以遍历任何迭代对象,如dict。

for 迭代变量 in 可迭代对象:
    代码块

其中,每次循环时,迭代变量被设置成可迭代对象的当前元素,提供给代码块使用。

来个简单小例子:

for i in 'ILoveTHU':
    print(i, end=' ')
#I L o v e T H U

(4)for-else循环

for 迭代变量 in 可迭代对象:
    代码块
else:
    代码块

当for循环顺利执行完,则执行else代码块。
如果for循环中执行了跳出循环的语句,比如break,将不执行else代码块。

(5)range()函数

其具体形式是这样子的:

range([start,] stop [,step=1])

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

for i in range1,10):   #不包括10
    print(i)
#1
#2
#3
#4
#5
#6
#7
#8
#9

(6)numerate()函数

表达式如下:

enumerate(sequence, [start=0])

解释一下哈,这个sequence指的是一个序列、迭代器或其他支持迭代对象,start指的是下标起始位置。
返回enumerate(枚举)对象

引用一个例子在这里插入图片描述
注:enumerate()与for循环可结合使用

for i, a in enumerate(A)
    do something with a

用enumerate(A)不仅返回A的元素,还给了该元素一个索引值,默认为0。
在这里插入图片描述

(7)break语句

break语句表示中断,跳出当前所在层的循环。

(8)continue语句

终止本轮循环并开始下一轮循环。
这一段代码不理解
在这里插入图片描述

(9)pass语句

pass语句是空语句,不作任何操作,只起到了占位的作用
在这里插入图片描述

(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] }
好的,你的问题是关于Python函数第次运行报错和retry的简单用法。 首先,如果一个Python函数在第次运行时出现了错误,可能是由于函数内部的变量状态发生了变化,导致程序出错。为了解决这个问题,可以使用retry功能来多次尝试运行该函数,直到它成功为止。 使用retry功能可以在函数出现错误时自动重试,可以避免手动重复运行该函数,从而提高效率。 下面是一个简单的示例代码,演示了如何使用retry功能: ```python import time from retry import retry @retry(delay=1, backoff=2, max_delay=4) def my_func(): print("Running my_func...") # 模拟函数出错 if time.time() % 2 == 0: raise ValueError("Oops! Something went wrong...") else: print("Success!") my_func() ``` 在这个示例代码中,我们使用了retry库中的retry装饰器来装饰my_func函数,该函数会运行多次,直到成功为止。在retry装饰器中,我们设置了最大延迟时间为4秒,每次重试前等待1秒,重试间隔时间呈指数级增长,即第一次重试后等待1秒,第次重试后等待2秒,第三次重试后等待4秒,以此类推,直到达到最大延迟时间为止。 当my_func函数第一次运行时,它会输出“Running my_func...”和“Success!”,并正常结束。当函数第次运行时,它会抛出一个ValueError异常,并重试多次,直到成功为止。 希望这个简单的示例可以帮助你理解如何使用retry功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值