逻辑分支和循环

Boolean变量

开始分支和逻辑循环的时候不得不提的是boolean变量(布尔),boolean变量的值只有两种取值:0 和 1,0代表假 1代表真,在python中无需声明一个布尔变量,如果是在函数中 return 1或者 return 0的时候 不加说明的话,比如下面的情况:

def fun(num):
if num>0 :
return 0
else:
return 1
#函数只有两个返回值 0 和 1,在下面的 不加说明的话 0 和1 会被当作int类型
#但是在下面的情况:
if fun(1):
'''
..code.....
'''

此时在if条件中 fun(num)的返回值会被当作boolean变量进行对待

逻辑分支语句和循环

1.逻辑分支语句

if条件语句是如下的格式:

if (True):

'''

code

'''

else:

'''

code

'''

如果上面的括号中的表达式 函数返回值 逻辑判断(大于 小于 等于 或者组合判断) 为真的时候就执行下面的code,如果为Fasle的时候就执行else中的code,如果要写成多分支的语句的时候就采用 if+else的情形,如下所示:

if (condition 1):
elif (condition 2):
elif (condition 3):

要是写成多分支的时候就采用上面的形式进行判断,多分支的情况会逐个扫描每一个 condition 如果这个condition为真的话那就执行这个代码块下的内容,其余代码块的条件都不会发生执行

逻辑连词是用来连接两个逻辑条件之间的关系,如果这两个逻辑条件为真或者为假会让整个逻辑条件的真假发生改变,从而可以设置复杂的逻辑判断条件,也就是if 或者 elif 的condition 部分

and

or

in

not in

数字关系运算符

5.1 >
5.2 ==
5.3 <
#and 是字面意思且的意思,也就是说如果有多个连接的逻辑表达式比如
a=10
if a>0 and a<100:
print("OK")

在上面的语句中 a>0 和 a<100都是为真的那么整个表达是(a>0 and a<100)都是为真的 也就是 and连接的逻辑关系 只要一个假就是假的 全是真的才是真的

or 是或的运算符 对于or和and的区别在于 or连接的逻辑关系只要一个是真的,那整个表达式就是真的,全部是假的时候才是假的

a=100
if a<0 or a>0:
print("OK")

上面的if条件也是真的,因为a<0虽然为假但是 a>0为真 由于or的连接 整个condition表达是(a<0 or a>0)就是真的

# in 判断 一个变量是否在一个对象中常被和list连用比如
L=[1,2,3,5,5]
if 1 in L:
print("OK")
#1在L里面所以返回的是真
#not in 是不在的意思 和in的返回值恰好相反

补充一种3.8的新特性在if条件语句的使用场景内的玩法:海象表达式":="运算符

L=[1,2,3,4]
if (n:=len(L)) >2:
print(n)
#这句话的意思就是用len(L)给n赋值,但是n的作用域只有if条件里面的部分,这样避免的len()函数多次调用带来的不必要的开销

注:在if条件中的()可写可不写都没有关系,不会影响代码的执行

循环

for循环

1.基于范围的for循环

基于范围的for循环最简单的一个例子:

L=[1,2,3,4,5]
for i in range(len(L)):
print(L[i])

分析上面的代码每一次拿到的都是i,而i是列表的数据的下标,并且一定不会越界,说明一下range函数,range()函数有两个参数,range(start,end)返回一个[start,end)的数组,从start开始,也可以只传一个参数,就像我们上面的那样,默认从0开始: [0,len(L)) 左闭右开的区间

2.基于内容的for循环

照样从一个例子开始:

L=[1,2,3,4]
for d in L:
print(d)

在上面的for循环中每一次拿到的是L中的元素从第一个元素开始到最后一个元素,所以相比于第一个拿到的下标而言称为基于内容的for循环

3.基于内容和范围的for循环

L=[1,2,3,4]
for index,data in enumerate(L):
print(index,data)

采用了enumerate之后 每一次for循环返回的是两个值,一个是元素的下标,一个是元素的值,也可以理解为1和2的结合体[暂时这样理解即可]

while 循环

while循环类似于if语句 不同于for循环 while循环有循环的起始条件,这个起始条件为真的时候才开始循环,条件变成假的时候终止循环 每一次循环结束后都会检验条件是否为真

i=10
while(i>0)
{
i=i-1
}

上面的代码在i>0的时候开始进入到while循环,每次进入之后i=i-1被执行,紧接着(i>0)条件判断是否为真为真继续执行,否则跳出.....重复上述过程就是while循环