Python零基础入门(六)

时间:2024-10-09 07:15:23

Python数据分析基础

  • 六、流程控制
    • 6.1 程序结构
    • 6.2 选择语句
      • 6.2.1 最简单的if语句
      • 6.2.2 if...else语句
      • 6.2.3 if...elif...else语句
      • 6.2.4 if语句的嵌套
    • 6.3 使用and连接条件语句
    • 6.4 使用or连接条件语句
    • 6.5 使用not语句
  • 结语

六、流程控制

6.1 程序结构

计算机在解决某个具体问题时,主要有三种情形,分别是顺序执行所有语句、选择执行部分语句和循环执行部分语句。对应程序设计中的三种基本结构是顺序结构、选择结构和循环结构。这三种结构的执行流程图如下图所示:

在这里插入图片描述

其中第一幅图是顺序结构的流程图,编写完毕的语句按照编写顺序依次被执行;第二幅图是选择结构的流程图
,它主要根据条件语句的结果选择执行不同的语句;第三幅图是循环结构的流程图,它是在一定条件下反复
执行某段程序的流程结构,其中,被反复执行的语句称为循环体,决定循环是否终止的判断条件称为循环条件。

6.2 选择语句

在生活中,我们总是要做出许多选择,程序也是一样。
比如你英语考试分数大于60分才及格,你买的彩票号码等于公布的彩票大奖号码你就算中奖了。类似这种判断,就是程序中的选择语句,也称为条件语句,即按照条件选择执行不同的代码片段。Python中的选择语句主要有三种形式,分别为if语句、if…else语句和if…elif…else多分支语句。

说明:在其他语言中(如c、c++、java等),选择语句还包括switch语句,也可以实现多重选择。但是,在python中,却没有switch语句,所以实现多重选择的功能时,只能使用if…else语句和if…elif…else多分支语句或者if语句嵌套。

6.2.1 最简单的if语句

Python中使用if保留字来组成选择语句,其最简单的语法形式如下:
if 表达式:
语句块
其中,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式(例如,a>b and a != c),
如果表达式为真,则执行“语句块”;如果表达式为假,就跳过“语句块”,继续执行后面的语句,这种形式的if
语句相当与汉语中的“如果…就…”,其流程图如下:

在这里插入图片描述

在条件语句的表达式中,经常需要的操作运算符,如下表:

在这里插入图片描述

(1)如果你购买了一张彩票,现在中奖号码公布了,号码为“432678”,那么用if语句可以判断是否中将。

number = int(input("请输入您的6位奖票号码:"))
if number == 432678:
    print(number, "您中奖了,请速来领奖!")
if number != 432678:
    print(number, "您未中本期大奖!")
  • 1
  • 2
  • 3
  • 4
  • 5
'
运行
请输入您的6位奖票号码:112345
112345 您未中本期大奖!
  • 1
  • 2

(2)在实际商品销售中,经常需要对商品价格、销量进行分类,如商品销量大于或等于100的商品,可以用A来表示。用if语句实现方法如下:

data = 105
if data >= 100:
    print(data, "此商品为A类商品!")
  • 1
  • 2
  • 3
'
运行
105 此商品为A类商品!
  • 1

如果商品日销量小于100,可以用B来表示。用if语句实现方法如下:

data = 65
if data < 100:
    print(data, "此商品为B类商品!")
  • 1
  • 2
  • 3
'
运行
65 此商品为B类商品!
  • 1

说明:使用if语句时,如果只有一条语句,语句块可以直接写到“:”的右侧,如下:
if a>b: max=a
但是为了程序代码的可读性,建议不要这么写。

6.2.2 if…else语句

Python中提供了if…else语句解决类似问题,其语法格式如下:
if 表达式:
语句块1
else:
语句块2
使用if…else语句时,表达式可以是一个单纯的布尔值或者变量,也可以是比较表达式或逻辑表达式,如果满足条件,则执行if后面的语句块,否则,执行else后面的语句块,这种形式的选择语句相当于汉语里的关联词语
“如果…否则…”,其流程图如下图所示:

在这里插入图片描述

下面继续那个彩票的例子:

number = int(input("请输入您的6位奖票号码:"))
if number == 432678:
    print(number, "您中奖了,请速来领奖!")
else:
    print(number, "您未中本期大奖!")
  • 1
  • 2
  • 3
  • 4
  • 5
'
运行
请输入您的6位奖票号码:432678
432678 您中奖了,请速来领奖!
  • 1
  • 2

商品销量的例子如下:

data = 105
if data >= 100:
    print(data, "此商品为A类商品!")
else:
    print(data, "此商品为B类商品!")
  • 1
  • 2
  • 3
  • 4
  • 5
'
运行
105 此商品为A类商品!
  • 1

技巧:if…else语句可以使用条件表达式进行简化,如下面代码:
a = -9
if a>0:
b = a
else:
b = -a
print(b)
上面代码可以简写成:
a = -9
b = a if a>0 else -a
print(b)
使用条件表达式的好处是可以使代码简洁,并且有一个返回值。

6.2.3 if…elif…else语句

if…elif…else语句的语法格式如下:
if 表达式1:
语句块1
elif 表达式2:
语句块2
elif 表达式3:
语句块3

else:
语句块n

使用if…elif…else语句时,表达式可以是一个单纯的布尔值或变量,也可以是比较表达式或逻辑表达式,如果表达式为真,执行语句;而如果表达式为假,则跳过该语句,进行下一个elif的判断,只有在所有表达式都为假的情况下,才会执行else中的语句。if…elif…else语句的流程图如下:

插入图6-6

下面看一个代码实例:

number = int(input("请输入商品7天的销量:"))
if number >= 1000:
    print("本商品7天销量为A!!")
elif number >= 500:
    print("本商品7天销量为B!!")
elif number >= 300:
    print("本商品7天销量为C!!")
else:
    print("本商品7天销量为D!!")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
'
运行
请输入商品7天的销量:200
本商品7天销量为D!!
  • 1
  • 2

注意:if和elif都需要判断表达式的真假,而else则不需要判断;另外,elif和else都必须和if一起使用,不能单独使用

6.2.4 if语句的嵌套

前面介绍了3种形式的if选择语句,这三种形式的选择语句之间都可以进行互相嵌套。
最简单的if语句中嵌套if…else语句,形式如下:
if 表达式1:
if 表达式2:
语句块1
else:
语句块2
在if…else语句中嵌套if…else语句,格式如下:
if 表达式1:
if 表达式2:
语句块1
else:
语句块2
else:
if 表达式3:
语句块3
else:
语句块1
下面看一个代码实例:

number = int(input("请输入商品7天销量:"))
if number >= 1000:
    print("本商品7天销量为A!!")
else:
    if number >= 500:
        print("本商品7天销量为B!!")
    else:
        if number >= 300:
            print("本商品7天销量为C!!")
        else:
            print("本商品7天销量为D!!")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
'
运行
请输入商品7天销量:555
本商品7天销量为B!!
  • 1
  • 2

说明:if选择语句可以有多种嵌套方式,开发程序时可以根据自身需要选择合适的嵌套方式,但一定要严格控制好不同级别代码块的缩进量。

6.3 使用and连接条件语句

在实际工作中,经常会遇到需要同时满足两个或两个以上条件才能执行if后面的语句块,如下图:

在这里插入图片描述

下面代码实例如下:

age = int(input("请输入您的年龄:"))
if age >= 18 and age <= 70:
    print("您可以申请小型汽车驾驶证!")
  • 1
  • 2
  • 3
'
运行
请输入您的年龄:20
您可以申请小型汽车驾驶证!
  • 1
  • 2
# 其实,不用and语句,只用if语句嵌套也能实现上面的效果
age = int(input("请输入您的年龄:"))
if age >= 18:
    if age <= 70:
        print("您可以申请小型汽车驾驶证!")
  • 1
  • 2
  • 3
  • 4
  • 5
'
运行
请输入您的年龄:22
您可以申请小型汽车驾驶证!
  • 1
  • 2

再看一个实例代码:

print("今有物不知其数,三三数之剩二, 五五数之剩三,七七数之剩二,问几何?")
number = int(input("请输入您认为符合条件的数:"))
if number%3 == 2 and number%5 == 3 and number%7 == 2:
    print(number, "符合条件:三三数之剩二, 五五数之剩三,七七数之剩二")
  • 1
  • 2
  • 3
  • 4
'
运行
今有物不知其数,三三数之剩二, 五五数之剩三,七七数之剩二,问几何?
请输入您认为符合条件的数:23
23 符合条件:三三数之剩二, 五五数之剩三,七七数之剩二
  • 1
  • 2
  • 3

说明:上述代码还不完善,各位可以动手完善一下试试!

6.4 使用or连接条件语句

有时,会遇到只要需要两个或两个以上条件之一,就能执行if后面的语句块,如下图:

在这里插入图片描述

or是Python的逻辑运算符,可以使用or在条件中进行多个条件内容的判断。只要满足一个条件,就可以执行if后面的语句块。如将日销量低于10的商品,高于100的商品,列为重点关注商品。使用or来实现两个条件的判断,输入日销量<10 或者输入日销量>100,使用print输出“该商品为重点关注商品”,代码如下:

sales = int(input("请输入商品日销量"))
if sales < 10 or sales > 0:
    print("该商品为重点关注商品")
  • 1
  • 2
  • 3
'
运行
请输入商品日销量1
该商品为重点关注商品
  • 1
  • 2
# 不用or语句,只用两个简单的if语句,也可以实现上面的效果,代码如下
sales = int(input("请输入商品日销量"))
if sales < 10:
    print("该商品为重点关注商品")
  • 1
  • 2
  • 3
  • 4
'
运行
请输入商品日销量1
该商品为重点关注商品
  • 1
  • 2

6.5 使用not语句

开发中使用not语句来进行程序的判断。not为逻辑判断词,用于布尔型True和False。not与逻辑判断句if连用,代表not后面的表达式为False的时候,执行冒号后面的语句。实例代码如下:

data = None
if not data:
    print("You lost!")
else:
    print("You win!")
  • 1
  • 2
  • 3
  • 4
  • 5
'
运行
You lost!
  • 1

本程序的输出结果为“You lost!”。注意:not后面的表达式为False的时候,执行冒号后面的语句,所以not后面的表达式的值尤为关键。
如果代码改为如下:
data = “a”
则输出结果为“You win!”说明:在python中False、None、空字符串、空列表、空字典、空元组都相当于False。
“if x is not None”是最好的写法,不仅清晰,而且不会出现错误,请尽量使用这种写法。使用“if not x”这种写法的前提是:必须清楚x等于None、False、空字符串、0、空列表、空字典、空元组时,对判断没有影响才行。

在python中,要判断特定的值是否存在列表中,可使用关键字in:判断特定的值不在列表中,可使用关键字not in。实例代码如下:

a = input("请输入1位数字密码")
b = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
if a not in b:
    print("非法输入")
  • 1
  • 2
  • 3
  • 4
'
运行
请输入1位数字密码00
非法输入
  • 1
  • 2

结语

今天续更一章前面的python基础内容!就继续数据分析pandas库的学习了!