python之分支与循环

1 分支结构

  Python 的分支结构由 if 语句来实现,if 语句总共有 5 钟语法结构。
  (1)第 1 种是判断一个条件,如果这个条件成立,就执行其包含的某条语句或某个代码块。语法结构如下:

if 条件:
    某条语句或某个代码块

  (2)第 2 种同样是判断一个条件,跟第 1 种的区别是如果条件不成立,则执行另外的某条语句或某个代码块。语法结构如下:

if 条件:
    某条语句或某个代码块
else:
    某条语句或某个代码块

  (3)第 3 种是判断多个条件,如果第 1 个条件不成立,则继续判断第 2 个条件,如果第 2 个条件还不成立,则接着判断第 3 个条件……语法结构如下:

if 第1个条件:
    某条语句或某个代码块
elif 第2个条件:
    某条语句或某个代码块
elif 第3个条件:
    某条语句或某个代码块

  (4)第 4 种是在第 3 种的情况下添加一个 else,表示上面所有的条件均不成立的情况下,执行某条语句或某个代码块。语法结构如下:

if 第1个条件:
    某条语句或某个代码块
elif 第2个条件:
    某条语句或某个代码块
elif 第3个条件:
    某条语句或某个代码块
else:
    某条语句或某个代码块

  (5) if-else条件表达式,相当于将一个完整的 if-else 结构整合成一个表达式来使用。语法结构如下:

条件成立时执行的语句 if 条件 else 条件不成立时执行的语句

它把条件放正中间,然后左右紧挨着关键字 if 和 else,最左侧是条件成立时执行的语句,最右侧是条件不成立时执行的语句。

a = 3
b = 5
small = a if a < b else b
print(small)
==============================
3
score = 66
level = ('D' if 0  <= score < 60 else
         'C' if 60 <= score < 80 else
         'B' if 80 <= score < 90 else
         'A' if 90 <= score < 100 else
         'S' if score == 100 else "请输入0~100之间的分数!")
print(level)
==============================
C

2 循环结构

  Python 有两种循环语句:while 循环和 for 循环。

1)while 循环

  它的语法结构结构如下:

while 条件:
    某条语句或某个代码块

只要条件一直成立,那么其包含的某条语句或某个代码块就会一直被执行。
  在循环体内,一旦遇到 break 语句,Python 马上就会跳出循环体,即便这时候循环体内还有待执行的语句。

while True:
    answer = input("您猜我多少岁了?")
    if int(answer) == 25:
        break
==============================
您猜我多少岁了?10
您猜我多少岁了?20
您猜我多少岁了?30
您猜我多少岁了?40
您猜我多少岁了?50
您猜我多少岁了?25
>>> 
while True:
    answer = input("您猜我多少岁了?")
    if int(answer) == 25:
        break
    print("您猜错了!")
print("您猜对了")
==============================
您猜我多少岁了?10
您猜错了!
您猜我多少岁了?20
您猜错了!
您猜我多少岁了?30
您猜错了!
您猜我多少岁了?40
您猜错了!
您猜我多少岁了?50
您猜错了!
您猜我多少岁了?25
您猜对了
>>> 

  continue 语句也会跳出循环体,但是,它只是跳出本一轮循环,它还会回到循环体的条件判断位置,然后继续下一轮循环(如果条件还满足的话)。
注意continuebreak 语句两者的区别:
   ∙ \bullet continue 语句是跳出本次循环,回到循环的开头。
   ∙ \bullet break 语句则是直接跳出循环体,继续执行后面的语句。
在这里插入图片描述

  while循环结构还可以和else一起使用,当循环的条件不再为真的时候,便执行 else 语句的内容。

i = 1
while i < 5:
    print("循环内,i 的值是", i)
    i += 1
else:
     print("循环外,i 的值是", i)
==============================
循环内,i 的值是 1
循环内,i 的值是 2
循环内,i 的值是 3
循环内,i 的值是 4
循环外,i 的值是 5
>>> 

  while-else 可以非常容易地检测到循环的退出情况。

day = 1
while day <= 7:
    answer = input("今天有好好学习吗?")
    if answer != "有":
        break
    day += 1
else:
    print("非常棒,你已经坚持了7天连续学习!")
==============================
今天有好好学习吗?有
今天有好好学习吗?有
今天有好好学习吗?有
今天有好好学习吗?有
今天有好好学习吗?有
今天有好好学习吗?有
今天有好好学习吗?有
非常棒,你已经坚持了7天连续学习!
>>> 
==============================
今天有好好学习吗?有
今天有好好学习吗?有
今天有好好学习吗?有
今天有好好学习吗?没有
>>> 

  通过上述结果可以发现,只有连续输入7次“有”,当while的判断条件不再满足时,最后才会执行else里面的语句块;如果使用break跳出while循环,则不再执行else里面的语句块。

2)for 循环

  它的语法结构如下:

for 变量 in 可迭代对象:
    某条语句或某个代码块

  所谓可迭代对象,就是指那些元素能够被单独提取出来的对象。比如字符串,它就是一个可迭代对象。

for each in "HelloWorld":
    print(each)
==============================
H
e
l
l
o
W
o
r
l
d
>>> 
for n in range(10):
    print(n)
 ==============================
 0
1
2
3
4
5
6
7
8
9
>>> 
for n in range(5, 10):
    print(n)
==============================
5
6
7
8
9
>>> 
for n in range(1, 10, 2):
    print(n)
==============================
1
3
5
7
9
>>> 
for n in range(10, 1, -2):
    print(n)
==============================
10
8
6
4
2
>>> 

  for 循环和 while 循环一样,都是可以支持嵌套的,同样它也可以搭配 break 和 continue 语句。

for n in range(2, 10):
    for x in range(2, n):
        if n % x == 0:
            print(n, "=", x, "*", n // x)
            break
    else:
        print(n, "是一个素数")
==============================
2 是一个素数
3 是一个素数
4 = 2 * 2
5 是一个素数
6 = 2 * 3
7 是一个素数
8 = 2 * 4
9 = 3 * 3
>>> 

注意】对于while循环和for循环的嵌套,break语句和continue语句都只是跳出当前的循环体,并不会跳出所有的循环体。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Roar冷颜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值