3、流程控制语句



1、if 语句

基本语法:

if <条件判断1>:
    <执行1>
elif <条件判断2>:
    <执行2>
elif <条件判断3>:
    <执行3>
else:
    <执行4>
  • Python 中用 elif 代替了 else if,所以if语句的关键字为:if—elif—else
  • 每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块
  • 使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块
  • 在Python中没有switch—case语句

例1:小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:

区间 评价
低于18.5 过轻
18.5-25 正常
25-28 过重
28-32 肥胖
高于32 严重肥胖
In:     height=1.75
        weight=80.5
        BMI=round(weight/(height**2),2)
        print("BMI为:",BMI)

Out:    BMI为: 26.29

In:     if BMI<18.5:
            print("过轻")
        elif 18.5<=BMI<25:
            print("正常")
        elif 25<=BMI<28:
            print("过重")
        elif 28<=BMI<32:
            print("肥胖")
        else:
            print("严重肥胖")
            
Out:    过重

例2:分析下面的例子为何会出错

In:     birth = input('birth: ')
        if birth < 2000:
            print('00前')
        else:
            print('00后')

Out:    birth: 1999
        ---------------------------------------------------------------------------
        TypeError                                 Traceback (most recent call last)
        <ipython-input-3-786392a83547> in <module>
              1 birth = input('birth: ')
        ----> 2 if birth < 2000:
              3     print('00前')
              4 else:
              5     print('00后')
        
        TypeError: '<' not supported between instances of 'str' and 'int'

分析:

      因为input()返回的数据类型是strstr不能直接和整数比较,必须先把str转换成整数。Python提供了int()函数来完成这件事情:

In:     birth = int(input('birth: '))
        if birth < 2000:
            print('00前')
        else:
            print('00后')

Out:    birth: 1999
        00前

例3: if 嵌套判断是否能被2跟3整除

In:     num=int(input("输入一个数字:"))
        if num%2==0: # num除以2的余数等于0
            if num%3==0: # num除以3的余数等于0
                print ("你输入的数字可以整除 2 和 3")
            else:
                print ("你输入的数字可以整除 2,但不能整除 3")
        else:
            if num%3==0:
                print ("你输入的数字可以整除 3,但不能整除 2")
            else:
                print  ("你输入的数字不能整除 2 和 3")

Out:    输入一个数字:9
        你输入的数字可以整除 3,但不能整除 2

2、While 语句

基本语法

  • 条件内循环执行语句,不满足条件则退出
while 判断条件:
    语句
  • 条件内循环执行语句1,不满足条件则执行语句2
while 判断条件:
    语句1
else:
    语句2
  • 需要注意冒号和缩进。另外,在 Python 中没有do..while 循环。
# 计算 1 到 100 的总和
num=1
sum=0
        
while num<=100: #条件内循环,不满足条件则退出
  sum=sum+num
  num=num+1

print(sum)  

# 5050

无限循环

var = 1
while var == 1 :  # 表达式永远为 true,可以使用 CTRL+C 来退出当前的无限循环
    num = int(input("输入一个数字  :"))
    print ("你输入的数字是: ", num)

3、For 语句

基本语法

for 变量 in 序列:
    语句1
else:
    语句2
In:     a=['c','c++','python','mysql']
        for x in a:
            print(x)
        else:
            print('循环结束')

Out:    c
        c++
        python
        mysql
        循环结束

4、break 语句

break 语句用于跳出当前循环体

In:     lan=['c','c++','python','mysql']
        for x in a:
            if x=='python':
                print("python,正好跳出")
                break
                print("看看有没有跳出") # break已跳出,故此句不会打印出来
            else:
                print(x)
        else:
            print("完成循环")

Out:    c
        c++
        python,正好跳出

5、range()函数

range()函数,用于遍历数字序列

In:     for i in range(5): #从0开始(含0),截止到5(不含5)
            print(i)
Out:    0
        1
        2
        3
        4

In:     for i in range(5,9): #从5开始(含5),截止到9(不含9)
            print(i)
Out:    5
        6
        7
        8

In:     for i in range(0, 10, 3): # 从0(含)到10(不含),步长为3
            print(i)
Out:    0
        3
        6
        9

In:     for i in range(-10, -100, -30): # 从-10(含)到-100(不含),步长为-30
            print(i)
Out:    -10
        -40
        -70

In:     a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']
        for i in range(len(a)): # i=range(4)
            print(i, a[i])
Out:    0 Google
        1 Baidu
        2 Runoob
        3 Taobao
        4 QQ

In:     # 使用range()函数来创建一个列表:
        a=list(range(5))
        print(a)
Out:    [0, 1, 2, 3, 4]

6、continue语句

  • break语句可以在循环过程中直接退出循环,
  • continue语句可以提前结束本轮循环,并直接开始下一轮循环。
  • 这两个语句通常都必须配合if语句使用。

要特别注意,不要滥用breakcontinue语句。breakcontinue会造成代码执行逻辑分叉过多,容易出错。大多数循环并不需要用到breakcontinue语句。

如:打印出1~10的奇数

In:     n=0
        while n < 10:
            n = n + 1
            if n % 2 == 0: # 如果n是偶数,执行continue语句
                continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行
            print(n)

Out:    1
        3
        5
        7
        9

7、pass 语句

  • pass是空语句,是为了保持程序结构的完整性。
  • pass 不做任何事情,一般用做占位语句,如下实例
while True:
    pass  # 等待键盘中断 (Ctrl+C)




posted @ 2022-03-23 11:00  taoshushu  阅读(80)  评论(0编辑  收藏  举报