Python语句的分支结构和循环结构(一)

本文介绍了Python中的流程控制语句,包括顺序结构、分支结构(单分支、双分支、多分支)和循环结构(while循环、for循环),并展示了各种结构的代码示例和执行过程,详细讲解了循环的退出策略和循环嵌套的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

流程控制语句

程序是由语句构成,而流程控制语句 是用来控制程序中每条语句执行顺序的语句。可以通过控制语句实现更丰富的逻辑以及更强大的功能。几乎所有编程语言都有流程控制语句,功能也都基本相似。

其流程控制方式有

  • 顺序结构
  • 分支结构
  • 循环结构

这里最简单最常用的就是顺序结构,即语句从上至下一一执行。

image-20210318154636648

1、分支语句

顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。

1.1、单分支语句

if 表达式:

代码块

代码展示:

if 3 > 2:

    print("yes")

    print("no")

 

说明:

1、“表达式”可以是一个单一的值或者复杂语句,形式不限,但解释器最后会通过bool获取一个true或者false的布尔值

2、“代码块”由:与具由相同缩进标识的若干条语句组成(一般是四个缩进)。

image-20210318160112965

1.2、双分支语句

双分支语句顾名思义,二条分支二选一执行!

if 表达式:
   代码块
else:
   代码块

执行过程:首先执行判断条件,当判断条件成立【结果为真的时候】会执行语句块1,若条件不成立,则执行语句块2。

代码展示:

age = 19
  if age > 18:
      print("成年人")
  else:
      print("未成年人")

image-20210318171626403

5.1.3、多分支语句

多分支即从比双分支更多的分支选择一支执行。

语法格式:

if 表达式:
    代码块
elif 表达式:
    代码块
elif 表达式:
    代码块
elif 表达式:
    代码块
else:
    代码块

执行过程:首先执行判断条件1,若条件1成立则执行语句块1,语句块1执行完毕则跳出分支语句;若条件1不成立,则执行判断条件2,若条件2成立,则执行语句块2;若条件2不成立,则继续往下执行直到判断条件成立为止;若判断条件都不成立,则执行else下面的语句块。

代码展示:

(1)

user = "roots"
 pwd = 123

if user == "root" and pwd == 123:
     print("登陆成功!")
else:
     pass #python中的pass语句代表空语句,也就是占位符,为的就是使程序结构完整性。
print("end")

image-20210318173151614

(2)分支嵌套

core_str = input("请输入一个成绩:")

 if score_str.isdigit():  #.isdigit() 所有字符都是数字,此处是判断所输入值是否为数字
     score = int(score_str)
     if score > 90:
         print("成绩优秀")
     elif score > 80:
         print("成绩良好")
     elif score > 60:
         print("成绩及格")
     else:
         print("成绩不及格")
 else:
     print("非法输入!")

执行过程:首先执行判断条件1,条件1成立,则执行判断条件2;若条件2成立,则执行语句块2-1,否则执行语句块2-2;条件1不成立,则执行语句块1-2。

注意:else与if的配套与缩进有关,if下面的else是对齐的(对应具有相同的缩进量),嵌套的分支语句较上一级整体少4个空格缩进。

(3)

#分支语句的表达式  通过bool()计算布尔值

state = True  # "0"   0 -1 此处赋值要是非零值
if state:
    print("OK")
else:
    print("not OK")

2、循环语句

在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。

Python语言中的循环语句支持 while循环(条件循环)和for循环(遍历循环)。

2.1、while循环

语法:

while 表达式:
    循环体

image-20210319125002230

count = 1 # 初始变量
# while count <= 100: # 条件判断
#  # print("OK")
#  print(count)
#  count += 1 # count = count+1  步进语句
#  print("end")

执行语句可以是单个语句或语句块,判断条件可以是任何表达式,任何非零,或非空(null)的值均为True,当判断条件为False时,结束循环。

while循环之死循环

死循环:当表达式永远为真的时候,会出现死循环,例如

while 1:

print("I am very good!")

whlie循环之else

while 判断条件:
    循环体
else:
    语句块
执行过程:首先执行判断条件,若条件成立则执行循环体;当循环正常执行结束的时候,会执行else下面的语句块;若循环非正常执行结束[使用break跳出循环体的时候]则不会执行else下面的语句块。

count = 0
while count < 5:
    print("%d is less than 5"%count)
    count += 1
else:
    print("%d  is not less than 5"%count)

代码(计算1到100的和)

count: int = 0
result: int = 0
while count <= 100:
    result = result + count
    count += 1
print(result)

运行结果

5050

 

2.2、for循环

for 循环的语法格式如下:

for 迭代变量 in 字符串|列表|元组|字典|集合:
  代码块

格式中,迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值;代码块指的是具有相同缩进格式的多行代码(和 while 一样),由于和循环结构联用,因此代码块又称为循环体。

例如:

for i in "hello world":
    print(i)

死循环
1、何为死循环:在编程中,一个无法靠自身的控制终止的循环被称为死循环

2、在Python中while循环的执行条件为:While关键字后的条件语句为True
    ⑴因此当条件为"while True或while 1"时,如果没有特殊处理,那么就会一直执行执行while循环,这种就被称为死循环(不会出现条件为False的情况,无法跳出循环)

3、因为死循环无法终止,会一直运行下去,所以我们要尽量避免出现死循环

4、当然,我们也可以使用break或continue关键字来终止某一循环
    ⑴break:某一条件满足时,退出循环,不再执行后续重复的代码(跳出整个循环)
    ⑵continue:某一条件满足时,不执行后续重复的代码(跳出当前循环)
    ⑶break和continue只针对当前所在循环有效
    ⑷break和continue关键字都可以用在while循环或for循环中

 

2.3、退出循环

如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用break或continue关键字。

  • break

当 break 关键字用于 for 循环时,会终止循环而执行整个循环语句后面的代码。break 关键字通常和 if 语句一起使用,即满足某个条件时便跳出循环,继续执行循环语句下面的代码。

例如:

count = 0
while count < 10:
    count+=1
    if count == 8:
        break
    print(count)
  • continue

不同于break退出整个循环,continue指的是退出当次循环。

例如:

count = 0
while count < 10:
    count+=1
    if count == 8:
        continue
    print(count)

5.2.4、循环嵌套

在一个循环体语句中又包含另一个循环语句,称为循环嵌套

  • 独立嵌套

在控制台上打印一个如下图所示的正方形

*****
*****
*****
*****
*****
for i in range(5):
    for j in range(5):
        print("*",end="")
    print("")

 

 

  • 关联嵌套

在控制台上打印一个如下图所示的三角形

*
**
***
****
*****
for i in range(5):
    for j in range(i+1):
        print("*",end="")
    print("")

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值