零基础学Python5——流程控制(顺序执行,条件判断,循环控制)

一.顺序执行

1.原则:python代码在执行过程中,遵循下面的基本规则:

(1)普通语句,直接执行;

(2)碰到函数,将函数体载入内存,并不直接执行;

(3)碰到类,执行内部的普通语句,但是类的方法只载入不执行;

(4)碰到 if ,for 等控制语句,按相应控制流程执行;

(5)碰到@,break,continue等,按规定语法执行;

(6)碰到函数,方法调用等,转而执行函数内部代码,执行完毕后继续执行原有顺序代码。

2.程序主入口:很多时候,我们经常在python中看到这样的语句:if  __name__ ==   '__main__'   ;

这里简单解释一下。首先, __name__ 是所有模块都会有的一个内置属性,一个模块的 __name__ 值取决于你如何调用模块。假如你有一个 text.py 文件,如果在 a.py 文件中使用 import 导入这个模块  import text.py  ,那么  text.py  模块的 __name__属性的值就是 text ,不带路径或者文件扩展名。

最后,其实顺序执行,简单来说就是代码按照从上到下的顺序来执行。

二.条件判断

1.介绍:条件判断是通过一条或多条判断语句的执行结果(True或者False)来决定执行的代码块。在Python的语法中,使用 if ,elif ,else 三个关键字来进行条件判断。

if 语句的一般的形式如下:

if condition1:    # condition1为True 执行statement_block_1
    statement_block_1
elif condition2:   # condition2为True 执行statement_block_2
    statement_block_2
else:      # 都不是的话执行 statement_block_3
    statement_block_3

2.使用规则:

(1)每个条件后面都要使用冒号(:)作为判断行的结束,表示接下来是满足条件(结果为True)后面要执行的语句块;

(2)除了 if  分支必须有,elif  和  else 分支都可以根据情况省略;

(3)使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块;

(4)顺序判断每一个分支,任何一个分支首先被命中并执行,则其后面的所有分支都被忽略,直接跳过;

(5)在python中没有 switch -case 语句。

练习:实现猜数字小游戏:

number = 20
print("猜数字")
while True:
        guess = int(input("请输入你猜的数字:"))
        if guess == number:
                print("恭喜,你猜对了")
                break
        elif guess<number:
                print("猜的数字太小了")
        elif guess>number:
                print("猜的数字太大了")

注意 if/else 语句可以嵌套,也就是把 if...elif...else 结构放在另外一个 if...elif...else 结构中。形如下面的结构:

age = int(input("请输入年龄:"))
weight = int(input("请输入体重:"))
sex = input("请输入性别:")

if age > 25:
    if sex == '男':
        if weight <= 180:
            print("你的身体健康!")
            
        else:
            print("该运动了!")
            
    elif sex == '女':
        if weight <= 110:
            print("健康!")
            
        else:
            print("肉要造反了!")
            
    else:
        print("性别输入错误!")
        
else:
    print("年龄输入错误!")

三.循环控制

1.介绍:循环控制,就是让程序循环运行某一段代码直到满足退出的条件,才退出循环。

python用关键字for和while来进行循环控制,但是没有其它语言的do...while语句。

2.while循环

(1)while循环表达式

当程序从上至下执行时,遇到while循环语句,则会判断表达式是否成立,当成立时则会进入while循环体内,执行循环体内的代码块。直到判断表达式不成立时,则终止循环。

while 判断表达式:
 内部执行代码块

(2)控制流程图如下:

(3)while循环练习   1.打印3次 hello world      2.求1-100之间的和

# 定义该变量,记录循环次数
i = 1
while i<=5:
    # 满足条件时执行该代码
    print("hello world")
    # 计数器 
    i += 1  # i=i+1
num_sum = 0
n = 1
end_num = 100
while n<=end_num:
    # num_sum = num_sum + n
    num_sum += n
    n += 1

print("1到%d之和为:%d"%(end_num,num_sum))

(4)while 的 else 从句

while 循环还可以增加一个 else 从句。当while循环正常执行完毕,会执行 else 语句。注意 else 与 while 平级的缩进方式。

number = 10
i = 0
# i = 11
while i < number:
    print(i)
    i += 1
else:
    print("执行完毕!")

如果是被break等机制强制提前终止的循环,不会执行 else 语句。

number = 10
i = 0
while i < number:
    print(i)
    i += 1
    if i == 7:
        break           
else:
    print("执行完毕!")

3.for 循环

(1)for循环表达式

虽然与 while 一样都是循环的关键字,但 for循环通常用来遍历可迭代的对象,其一般格式如下:

for <variable> in <sequence>:
    <statements>

注意:for ... in ...属于固定格式。比如将列表 [1 , 2 , 3] 中的每项元素打印输出。

>>> for i in [1,2,3]:
...     print(i)
...
1
2
3

(2)循环的嵌套

if 判断可以嵌套,while 和 for 当然也可以嵌套。但是建议大家不要嵌套3层以上,那样的效率会很低。

练习:实现打印九九乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print("%d*%d=%d"%(j,i,i*j),end = "\t")
    print()

 

4.break 语句

不论是 while 循环体还是 for 循环体执行过程中想要退出循环体,就可以使用到 break 语句。

举例如下:

while循环,在输出1-100个数值时,当 n = 8 时,退出循环体

>>> n = 1
>>> while n<=100:
...     print(n)
...     n += 1
...     if n == 8:
...         break
...
1
2
3
4
5
6
7

for循环,遍历 range(1,10)过程中,当元素为7时,退出该循环体

>>> for i in range(1,10):
...     if i == 7:
...             break
...     print(i)
...
1
2
3
4
5
6

5.continue语句

continue语句与break语句不同,continue语句用于跳出当前循环体剩下的部分代码,直接开始下一轮的循环。他不会退出和终止循环。

举例如下:

while循环,在输出1-100个数值时,不打印输出8

>>> while n<=100:
...     # print(n) # 注:如果在这块打印输出,continue对整体打印并无影响
...     n+=1
...     if n == 8:
...             continue
...     print(n)
...
2
3
4
5
6
7
9
10
...
101

for循环,遍历range(1,10)过程中,不打印元素7

>>> for i in range(1,10):
...     if i == 7:
...             continue
...     print(i)
...
1
2
3
4
5
6
8
9

注意:python中的break只能跳出当前层的循环,无法全部跳出。那么如果需要提前跳出双层循环如何做?

代码如下:

flag = False            # 用于控制外层循环的标志
for i in range(10):
    if flag:            # 当flag被内层循环设置为True的时候,跳出外层循环
        break
    for j in range(10):
        if j==7:
            flag = True
            break
        print(i,j)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值