Python的流程控制语句讲座

Python的流程控制语句讲座

 

if语句

语法:

if 条件表达式 :

     语句块

执行流程:

Python的流程控制语句讲座_第1张图片

 

if语句在执行时,会先对条件表达式进行求值判断,

如果为True,则执行if后的语句块

如果为False,则不执行

 

语句块中保存着一组代码,同一个语句块中的代码,要么都执行要么都不执行,语句块以缩进开始,直到代码恢复到之前的缩进级别时结束。

 

例、

i=input("please input a number:")

i=int(i)

if i>0:

    print("你输入的整数大于0!")

    print("此if语句到此结束!")   

print("你输入一个整数是%d"%(i))

【特别提示,在Python3.7.4、3.8.3版本中测试发现,将i=input("please input a number:")改为i=input("请输入一个整数:"),有时不能输入负数,怪!】

 

运行结果如下图:

Python的流程控制语句讲座_第2张图片

 

 

if-else语句

语法:

  if 条件表达式 :

      语句块

  else :

      语句块

执行流程:

Python的流程控制语句讲座_第3张图片

 

if-else语句在执行时,先对if后的条件表达式进行求值判断

如果为True,则执行if后的语句块

如果为False,则执行else后的语句块

例、

age=int(input("请输入你的年龄(周岁):"))

if age>=18:

    print("你年满18岁了。")

    print("已是成年人呵!")

else:

    print("你未年满18岁了。")

    print("还是未成年人呵!")

 

运行结果如下图:

Python的流程控制语句讲座_第4张图片

 

if-elif-else语句

语法:

  if 条件表达式 :

      语句块

  elif 条件表达式 :

      语句块

  elif 条件表达式 :

      语句块

  ........

  else :

      语句块

执行流程:

Python的流程控制语句讲座_第5张图片

if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断,

如果表达式的结果为True,则执行当前语句块,然后语句结束

如果表达式的结果为False,则继续向下判断条件,找到True条件执行其后语句块,然后语句结束

如果所有的表达式都是False,则执行else后的语句块。

 

例、判断一个人的身材是否合理:

height = float(input("输入身高(米):"))

weight = float(input("输入体重(千克):"))

bmi = weight / (height * height)  #计算BMI指数

if bmi<18.5:

    print("BMI指数为:"+str(bmi))

    print("体重过轻")

elif bmi>=18.5 and bmi<24.9:

    print("BMI指数为:"+str(bmi))

    print("正常范围,注意保持")

elif bmi>=24.9 and bmi<29.9:

    print("BMI指数为:"+str(bmi))

    print("体重过重")

else:

    print("BMI指数为:"+str(bmi))

    print("肥胖")

 

运行结果:

输入身高(米):1.6

输入体重(千克):60.5

BMI指数为:23.632812499999996

正常范围,注意保持

 

if语句嵌套

使用if进行条件判断,如果希望在条件成立的执行语句中再增加条件判断,就可以使用if 的嵌套,注意缩进搭配。例如,在最简单的 if 语句中嵌套 if else 语句,形式如下:

if 表达式 1:

    if 表示式 2:

        语句块

    else:

        语句块

 

条件语句嵌套的例子:判断闰年

year = int(input("输入一个年份: "))

if (year % 4) == 0:

   if (year % 100) == 0:

       if (year % 400) == 0:

           print(year,"年是闰年")   # 整百年能被400整除的是闰年

       else:

           print(year,"年不是闰年")

   else:

       print(year,"年是闰年")       # 非整百年能被4整除的为闰年

else:

   print(year,"年不是闰年")

 

运行结果:

输入一个年份: 2020

2020 是闰年

 

while循环语句

语法:

  while 条件表达式 :

      语句块

 

执行流程:

Python的流程控制语句讲座_第6张图片

 

在条件语句(表达式)为True时执行其后语句块

 

While-else循环语句

语法:

  while 条件表达式 :

      语句块

  else:

      语句块  

 

执行流程:

Python的流程控制语句讲座_第7张图片

 

在条件语句(表达式)为True时执行其后语句块,为False时执行else后语句块

 

例:求1~100 中的所有奇数的和

sum = i = 0

while (2 * i + 1) <= 100:  # 循环控制条件

    sum = sum + 2 * i + 1

    i += 1  # 等同于i=i+1

else:

    print('循环结束后执行else')

print(sum)

 

break 结束循环,遇到break直接退出循环

continue 跳过当次循环,进入下一次循环

 

含break示例

i = 0

while i <= 5:  # 循环控制条件

    if i == 3:

        break  # 结束循环

    print(i)

    i += 1  # 等同于i=i+1

输出结果:

0

1

2

输出结果到3就结束了,程序运行到break就结束整个循环。

 

含continue示例

i = 0

while i <= 5:  # 循环控制条件

    i += 1

    if i == 3:

        continue  # 跳过当次循环

    print(i)

输出结果:

1

2

4

5

6

输出结果缺少了3,continue 结束了当次的循环,进入下一循环

 

while循环嵌套的例子:九九乘法表

i=1

while i<10:

    j=1

    while j<=i:

        print("%d*%d=%2d"%(j,i,j*i),end=' ')

        j+=1

    print("")

    i+=1

 

输出结果:

1*1= 1

1*2= 2 2*2= 4

1*3= 3 2*3= 6 3*3= 9

1*4= 4 2*4= 8 3*4=12 4*4=16

1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25

1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36

1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49

1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64

1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

 

for循环语句

语法:

for 变量 in 遍历对象:

语句块

 

执行流程:

Python的流程控制语句讲座_第8张图片

遍历对象,如range() 函数、列表、元组、字符串等

for 循环依次将 遍历对象 中的数据取出赋值给 <变量>,再执行语句块——循环体。

 

例1、for 循环访问列表

list = ['张小明', '李萌萌', '王兵']

for name in list:

    print(name)

 

输出结果:

张小明

李萌萌

王兵

 

说明: 这个变量是在 for 循环中定义的,意思是,依次取出 list 中的每一个元素,并把元素赋值给 name,然后执行for循环体。

 

例2、 for 循环访问字典

dict = {'张小明': 98, '李萌萌': 88, '王兵': 66}

for key, value in dict.items():

    print(key, value)

 

输出结果:

张小明 98

李萌萌 88

王兵 66

 

例3、for 循环访问字符串

for char in 'An身高160cm':

    print(char)

 

输出结果:

A

n

1

6

0

c

m

 

例4、使用range() 函数控制循环访问

range() 函数介绍

语法

range([start,] stop[, step])

参数说明:

start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);

stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5

step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

一个从1到20且相隔3的数字序列示例代码:

x = range(1, 20, 3)

for n in x:

    print(n)

 

Python的流程控制语句讲座_第9张图片

 

for-else循环语句

语法:

for 变量 in 遍历对象:

    语句块

else:

语句块

 

执行流程:

Python的流程控制语句讲座_第10张图片

 

遍历遍历对象,若无 break 结束当前循环,循环结束后执行 else后的语句块。

 

list = ['张小明', '李萌萌', '王兵']

for name in list:

    print(name)

else:

    print('循环结束后执行')

 

输出结果:

张小明

李萌萌

王兵

循环结束后执行

 

for 循环嵌套的例子:九九乘法表

for i in range(1,10):

     for j in  range(1,i+1):

        print("%d*%d=%2d"%(j,i,j*i),end=' ')

     print("")

 

输出结果:

1*1= 1

1*2= 2 2*2= 4

1*3= 3 2*3= 6 3*3= 9

1*4= 4 2*4= 8 3*4=12 4*4=16

1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25

1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36

1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49

1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64

1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

 

 

你可能感兴趣的:(Python开发)