Python的流程控制语句讲座

Python的流程控制语句讲座

if语句

语法:

if 条件表达式 :

     语句块

执行流程:

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("请输入一个整数:"),有时不能输入负数,怪!】

运行结果如下图:

if-else语句

语法:

  if 条件表达式 :

      语句块1

  else :

      语句块2

执行流程:

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

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

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

例、

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

if age>=18:

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

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

else:

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

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

运行结果如下图:

条件表达式(三元运算符)

Python中的条件表达式在其他编程语言中也称之为三元运算符,格式:

条件为真的结果 if 条件 else 条件为假的结果

可以用来把 if-else块 写到一行或者一个表达式中 并进行赋值操作

例如

if x < y:

    small = x

else:

    small = y

可以改为

small = x if  x < y else y

参见下图:

if-elif-else语句

语法:

  if 条件表达式1 :

      语句块1

  elif 条件表达式2 :

      语句块

  elif 条件表达式 3:

      语句块

  ........

  else :

      语句块k

执行流程:

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:

        语句块a

    else:

        语句块b

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

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 条件表达式 :

      语句块

执行流程:

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

While-else循环语句

语法:

  while 条件表达式 :

      语句块1

  else:

      语句块2

执行流程:

在条件语句(表达式)为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 遍历对象:

语句块

执行流程:

遍历对象,如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)

for-else循环语句

语法:

for 变量 in 遍历对象:

    语句块1

else:

语句块2

执行流程:

遍历遍历对象,若无 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中没有像其他编程语言(如C、Java)中的do..while循环结构。Python中的while和for循环语句都可以有(不是必须有)else子句,else子句在循环正常结束后执行(这意味着如果循环条件一开始就为假,那么else子句将不会执行),而在循环体被break语句打断跳出循环时不执行else子句。

下面是while和for循环语句有else子句完成示例

count = 0
while count < 5:
    print(count)
    count += 1
else:
    print("Loop finished")

输出:
0
1
2
3
4
Loop finished

for i in range(5):
    print(i)
else:
    print("Loop finished")

输出:
0
1
2
3
4
Loop finished

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

学习&实践爱好者

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

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

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

打赏作者

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

抵扣说明:

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

余额充值