Python教程--条件判断和循环

一、前言

我们现在能够熟练使用单一变量,列表,元组和字典,但仅限于赋值,打印输出这些操作,在实际应用中,我们要进行更为复杂的运算,比如两个值大小的比较,或者依次获取列表中的元素,要是还用之前那种方法,一个个的去操作,那可太麻烦了,所以在这一章我们给大家介绍条件判断和循环的操作。

二、条件语句

条件语句基本格式为:

if 判断条件1:
	执行语句1
elif 判断条件2:
	执行语句2
elif 判断条件3:
	执行语句3
...
else :
	执行语句4

首先,代码会先执行判断条件1,若条件通过,则跳到执行语句1并跳出。若不符合,则执行判断条件2,条件通过,跳到执行语句2并跳出,若仍然不符合,则执行判断条件3… …以此类推,若以上不都符合,则执行else中的执行语句4并跳出。具体举例代码如下:

a = 1
b = 2
c = 'a'
d = 'b'

if a > 2: #  条件不符合,进入下一个判断
    print('a 比 2 大')
elif b > 3: #  条件不符合,进入下一个判断
    print('b 比 3 大')
else:  #  以上条件都不符合,直接进入else
    print('以上条件都不符合')

if b > a: #  条件符合,执行并跳出,不会再执行后面的elif和else语句
    print('b 比 a 大')
elif b > 3:
    print('b 比 3 大')
else:
    print('以上条件都不符合')

if d == 2: #  条件不符合,进入下一个判断
    print('\'d\' 等于 2')
elif d > c: #  条件符合(条件判断也可以直接判断字符串的大小),执行并跳出,不会再执行后面的elif和else语句
    print('\'d\' 比 \'c\' 大')
elif c == 2:
    print('\'c\' 等于 2')
else:
    print('以上条件都不符合')



结果:	以上条件都不符合
		b 比 a 大
		'd''c'

若判断条件较少,可以直接省略中间的elif部分,形成如下格式:

if 判断条件:
	执行语句1
else :
	执行语句2

首先代码会执行判断条件,若符合则进入执行语句1,若不符合,进入执行语句2,举例代码如下:

a = 1
if a > 1:
    print('a 比 1 大')
else:
    print('不符合条件')
    
if a > 0:
    print('a 比 0 大')
else:
    print('不符合条件')



结果:	不符合条件
		a 比 0 大

或者,我们有时候并不需要else里面的执行语句,那我们只用一个if也可以完成

a = 1
if a > 1:
    print('a 比 1 大')

if a > 0:
    print('a 比 0 大')


结果:	a 比 0 大

这是条件语句最基本的用法,那我们可以结合我们第二章讲的比较运算和逻辑运算,写出相对复杂的条件判断代码

a = True
b = False
c = 1
d = 2

if (a and b) or (d > c): #  若a 与 b 均为True,或者 d 大于 c,两者满足任意一个,则进入执行语句
    print('a 与 b 均为True,或者 d 大于 c')
if (a and b) and (d > c): #  若a 与 b 均为True,并且 d 大于 c,两者均要满足,才能进入执行语句
    print('a 与 b 均为True,并且 d 大于 c')
if (a is not False) and (d != c): #  若a 不为False,并且 d 不等于 c,两者均要满足,才能进入执行语句
    print('a 不为False,并且 d 不等于 c')



结果:	a 与 b 均为True,或者 d 大于 c
		a 不为False,并且 d 不等于 c

三、循环语句

循环语句,顾名思义,就是当满足一定条件时,代码在指定的空间里面循环执行,常用的循环语句有以下两种:
while 循环
for 循环

1、while循环

while循环就是当满足设置的条件时,代码语句会一直在while中循环执行,直到不满足条件或者人为跳出,举例如下:

a = 1
while a < 10: #  当a小于10时,一直执行while里面的语句
    print(a)  # 打印a当前的值
    a += 1 #  a自增1

结果:	1
		2
		3
		4
		5
		6
		7
		8
		9

上面代码可以看出,a的初始值为1,while循环的条件是a < 10,所以1 < 10,符合条件所以进入循环执行语句,首先是打印a当前的值,则为1,然后a自增1,这时a变成2,再回到开头判断a < 10这个条件是否成立,发现成立,则继续执行,直到a等于9的时候,先打印9出来,然后a自增1,由9变成了10,这时候10 < 10这个条件不成立了,则循环结束。

2、break语句

上面这个是有条件的循环,有人说我想做一个无限循环怎么办,那我们可以直接使用下面这种格式

while True: 
	执行语句

但是不是死循环就无法退出了呢?当然不是了,这时我们的break就派上用场了,当循环语句遇到break的时候,就会跳出当前的循环

a = 1
while True:
    print(a)
    a += 1
    print(a)
    break
    print(1)

结果:	1
		2

我们可以看到,在死循环里,只执行了前两个print,然后遇到了break,代码直接跳出循环,不会再执行第三个print。

3、continue语句

除了break语句之外,循环当中还有一个比较重要的语句,是continue语句,与break跳出循环不同的是,continue语句是跳过本轮循环而去执行下一轮的循环,是不是听起来有点绕,没事,给大家举一个例子就明白了

#  首先是break,a的初始值为1,每一个循环打印a的值,并自增1,当a大于5时,break,循环结束
a = 1
while True:
    print(a)
    a += 1
    if a > 5:
        break


结果:	1
		2
		3
		4
		5
#  下来是continue,a的初始值为1,每一个循环打印a的值,并自增1,当a等于3时,先执行a += 1语句,这时a的值为4,然后跳过下面的所有语句,再进入下一个循环,即if a == 3这条语句上来
a = 1

while True:
    if a == 3:
        a += 1
        continue #  当执行到continue语句的时候,continue后面的语句就不会再执行了,而是进入到下一轮的循环当中,即循环语句的开头
    print(a)
    a += 1
    if a > 5:
        break

结果:	1
		2
		4
		5

4、for 循环

除了while循环之外,我们还有一种循环是for循环,这种循环比较适合我们之前学习到的列表,字典的遍历,他的基本格式如下:

for 变量 in 要遍历的元素集合

我们可以使用for循环来写出刚才我们while循环的的一个代码

for a in range(1, 10): #  range返回的是一个大于等于1,小于10的对象
	print(a)
	
结果:	1
		2
		3
		4
		5
		6
		7
		8
		9

也可以遍历字符串中的每一个字符

for a in "Donnie":
    print(a)
    
结果:	D
		o
		n
		n
		i
		e

可以获取列表中的每一个值:

a = [1, 2, 3, 4, 5, 6]
for i in a:
    print(i)
    
结果:	1
		2
		3
		4
		5
		6

也可以获取字典中的每一个key和value

a = {'name': 'Donnie', 'age': 22, 'height': 180}
for key, value in a.items(): #  items以列表返回当前字典可遍历的(键, 值) 元组数组。
    print(key, value)
    
结果:	name Donnie
		age 22
		height 180

当然,break和continue也适用于for循环中

for a in range(1, 10):
    print(a)
    if a > 5:
        break
        
print('-------------')

for a in range(1, 10):
    print(a)
    if a == 5:
        continue

结果:	1
		2
		3
		4
		5
		6
		-------------
		1
		2
		3
		4
		5
		6
		7
		8
		9

5、循环的嵌套

我们介绍了简单循环语句,在实际应用场景中,我们的语句、逻辑可能是一层套一层,拿Python也为我们提供了循环的嵌套,即循环中套循环,while可以嵌套while,for可以嵌套for,或者while与for互相嵌套,都是可以的

#  while嵌套while
a = 1
while a < 3:
    b = 1
    print('a = %d' % a)
    a += 1
    while b < 3:
        if b == 2:
            break #  break会跳出当前的while b < 3的循环,不会跳出外面的循环
        print('b = %d' % b)
        b += 1

结果:	a = 1
		b = 1
		a = 2
		b = 1

#  for嵌套for
for i in range(0, 2):
    print("i == %d" % i)
    for j in range(0, 2):
        print("j == %d" % j)
        
结果:	i == 0
		j == 0
		j == 1
		i == 1
		j == 0
		j == 1
		
#  for、while互相嵌套
for i in range(0, 2):
    print("i == %d" % i)
    j = 0
    while j < 2:
        print("j == %d" % j)
        j += 1

结果:	i == 0
		j == 0
		j == 1
		i == 1
		j == 0
		j == 1

四、总结

条件语句和循环语句结束了,大家通过这些,已经可以写出相对复杂的代码了,但是大家慢慢发现,这样类似流水账似的写代码,不仅文件特别大,而且特别的混乱,甚至改一行代码是动一发而牵全身。为了让我们的代码更加优美,更加模块化,我们需要把一些代码进行封装,那就要用到类和方法,一切皆对象,下一节就让我们来看看,这门动态语言是如何运用对象的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值