Python编程_基础语法与条件判断
大纲介绍
Python环境搭建
Python基础语法与变量
Python判断结构之if结构
【了解】Python概述与安装
学习目标
了解Python语言特点
掌握Python环境搭建与基础语法
为什么要学习Python
① 技术趋势
Python自带明星属性,热度稳居编程语言界前三
https://www.tiobe.com/tiobe-index/
https://pypl.github.io/PYPL.html
② 简单易学
开发代码少,精确表达需求逻辑;==33个关键字,7种基本数据类型==;语法规则简单,接近自然语言。
③ 应用广泛
Python语言涉及IT行业70%以上的技术领域
Python语言的诞生
1989年,为了打发圣诞节假期,龟叔(吉多·范·罗苏姆)开始写Python语言的编译器 ;
1991年,第一个Python编译器诞生
Python这个名字,来自龟叔所挚爱的电视剧Monty Python’s Flying Circus (蒙蒂·蟒蛇的飞行马戏团)
Python语言的优缺点
优点
简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样,Python的这种代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。
易学:就如同你即将看到的一样,Python极其容易上手。前面已经提到了,Python有极其简单的语法。
免费、开源:Python开源的。简单地说,你可以自由地阅读它的源代码、对它做改动、这是为什么Python如此优秀的原因之一,它是由一群希望看到一个更加优秀的Python的人创造并经常改进着的。
可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就可以在下述任何平台上面运行。
丰富的库:Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。
缺点
Python语言非常完善,没有明显的短板和缺点,唯一的缺点就是执行效率慢,这个是解释型语言所通有的,同时这个缺点也将被计算机越来越强大的性能所弥补。
Python版本的选择
Python3.x
Python3.6、==Python3.7==、Python3.8、Python3.9…
在生产环境中,我们⼀般不会选择最新版本的Python,因为可能会存在未知Bug,所以⼀般强烈建议大家在选择软件版本时,向前推1 ~ 2个版本。所以咱们课程主要讲解Python3.12版本。
Python解析器的作用
demo.py
1 | print('Hello World') |
由于Python属于高级语言,其并不能直接在计算机中运行,因为缺少Python语言的运行环境:Python解析器
Python解析器的作用:==就是把Python代码转换为计算机底层可以识别的机器语言==,如0101…
Python解析器的种类
==① CPython,C语言开发的解释器[官方],应⽤广泛的解释器。==
② IPython,基于CPython的一种交互式解释器。
③ 其他解释器
PyPy,基于Python语言开发的解释器。
JPython,运⾏在Java平台的解释器,直接把Python代码编译成Java字节码执⾏。
IronPython,运⾏在微软.Net平台上的Python解释器,可直接把Python代码编译成.Net的字节码。
下载Python解析器
下载地址:https://www.python.org/downloads/release/python-379/
[单击上述链接] – 查找目标文件:Windows x86-64 executable installer – 单击即可下载。
Anaconda安装Python解析器
简介
Anaconda 是一个开源的 Python 和 R 语言发行版,专注于简化数据科学、机器学习和科学计算的开发环境管理,旨在为用户提供一套“开箱即用”的工具和库,帮助快速搭建科学计算所需的开发环境。
安装
测试
打开开始菜单点击Anaconda Powershell Prompt, 分别输入 conda -V 和 python -V, 能出现版本号, 即为安装成功.
小结
Q1:计算机中软件和硬件区别是什么 ?
- 看得见,摸不着
- 看得见,摸得着
Q2:Python语言的优点是什么 ?
- 简单、易学、免费开源、可移植性好、具有丰富的系统库
【实操】Python开发利器之PyCharm
学习目标
完成PyCharm软件安装
实现PyCharm软件与Anaconda整合
为什么要安装PyCharm
工欲善其事必先利其器
在Python的开发领域,其开发工具非常非常多,EditPlus、Notepad++、Sublime Text3、Visual Studio Code、PyCharm(目前功能强大的IDE )
PyCharm的主要作用
PyCharm是⼀种Python IDE (集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的⼯具,内部集成的功能如下:
Project管理
智能提示
语法高亮
代码跳转
调试代码
解释代码(解释器)
框架和库
……
PyCharm的分类
PyCharm一共有两个版本:专业版(收费) 与 社区版(免费、开源)
在基础班,PyCharm社区版足够我们使用,绰绰有余。
下载PyCharm
下载地址:https://www.jetbrains.com/pycharm/download/#section=windows
PyCharm安装
第一步:双击PyCharm软件安装包,进行软件安装
第二步:设置软件的安装路径,理论上没有任何要求,但是建议放在除C盘以外的盘符
第三步:PyCharm基本设置,创建桌面图标与.py文件关联
【!!!!千万别汉化】
PyCharm软件的使用(更改)
☆ 创建Python项目
什么是项目?其实我们在实际开发中,每次参与一个工作的开发都是一个项目的开发过程。所以使用PyCharm的第一件事就是学习Python项目的创建过程。
第一步:创建项目
第二步:设置项目路径,必须放在C盘以外的盘符(非常重要!!!)
配置完成后,单机Create创建Python项目。
☆ 新建文件与代码书写
编写Hello World
1 | print('Hello World') |
☆ 运行代码
运行结果:
☆ 设置或更换Python解析器
打开File文件,找到Settings设置,如下图所示:更换Python解析器
☆ PyCharm软件本身设置
① 软件主题(软件未来的样式)
② 编码字体的设置
③ 代码字号的设置(文字大小)
打开File文件 => Settings设置,找到界面设置:
主题设置:
字体与字号设置:
字体设置:
字号设置:
☆ 打开项目与关闭项目
打开项目:本身项目已经存在了,我们直接打开。
选择项目目录(文件夹)即可,如下图所示:
① This Window => 覆盖当前项⽬,从⽽打开目标项目
② New Window => 在新窗⼝打开,则打开两次PyCharm,每个PyCharm负责一个项⽬
③ Attach => 把两个项目合并在一起,放在同一个窗口中
关闭项目:对已经运行项目进行关闭操作。
【熟悉】Python注释与快捷键
学习目标
了解Python注释作用
掌握常见的注释格式
熟练使用常见的快捷键
注释的作用
首先强调一件事:Python代码 => Python解析器 => 机器语言,但是注释经过了Python的解释器并不会解析与执行。因为其主要就是进行代码的注释。
注释作用:==提高代码的阅读性==
在我们编写Python程序时,为了了提高程序的可读性,强烈建议大家为核心代码添加注释信息。
Python注释的基本语法
☆ 单行注释
单行注释,以”#”(Shift + 3)号开头,只能注释一行内容
1 | # 注释内容 |
示例代码:
第一种:代码行的上面
1 | # 输出Hello World字符串 |
第二种:放在代码的后面(代码后面保留2个空格)
1 | print('Hello World') # 输出Hello World字符串 |
☆ 多行注释
多行注释:可以同时注释多行代码或程序,常用于代码块的注释
基本语法:
1 | """ |
或
1 | ''' |
示例代码:
1 | """ |
☆ PyCharm注释小技巧(快捷键)
在PyCharm中,我们可以使用Ctrl + /斜杠
来对代码或程序进行快速注释。
代码提示
在PyCharm中,当我们输入Python关键字中的前2~3个字符,其会自动进行代码提示。这个时候,我们只需要按回车即可以快速的输入某个内容。
代码保存
编写代码时,一定要养成一个好的习惯,使用Ctrl + S
快速对代码进行保存操作。
个人建议,当写完一行代码时,就按一次。
撤销与恢复
如果不小心删除了某行代码,这个时候我们可以快速按Ctrl + Z
就可以快速进行恢复。每按一次就撤销一次,如果撤销多了,怎么办?
答:还可以通过Ctrl + Y
进行恢复操作
学习目标
Q1:为什么要给程序写注释?
- 提高代码的阅读性
Q2:Python中注释有几种常见格式,特点是什么
- 单行注释,以”#”号开头,只能注释一行内容
- 多行注释:可以同时注释多行代码或程序,常用于代码块的注释
【掌握】Python中的变量
学习目标
理解变量的定义与使用
熟悉变量的命名规则和数据类型
引入变量的概念
那什么是变量呢?
==① 变量是存储数据的容器==
==② 变量在程序运行过程中是可以发生改变的量==
==③ 变量存储的数据是临时的==
变量的定义
基本语法:
1 | 变量名称 = 变量的值 |
说明:在Python程序中,这个等号和日常生活中的等号不太一样,其有一个专业名词:赋值运算符,其读法:要从右向左读,把变量的值通过 = 赋值给左边的变量。
变量的命名规则
标识符命名规则是Python中定义变量名称时一种命名规范,具体如下:
==① 由数字、字母、下划线(_)组成==
==② 不能数字开头==
==③ 严格区分⼤小写==
==④ 不能使⽤内置关键字作为变量名称==
举个栗子:
① abc、abc123、_abc、hello(合理)
② 123abc、@abc、abc-123(不合理)
③ _(下划线) => 请问这可以是一个变量名称么?答:可以
1 | for _ in range(10): |
注意:在Python变量命名时,不建议使用_开头,因为其与后面要学习的私有属性想冲突
④ 变量abc和变量ABC是同一个变量么?答:不一样,这是两个完全不同的变量
⑤ 记不住Python关键字怎么办?答:借助于help()方法
1 | help('keywords') |
推荐变量的命名规则
① 变量命名一定要做到见名知义。
② 大驼峰:即每个单词首字母都大写,例如: MyName 。
③ 小驼峰:第二个(含)以后的单词首字母大写,例如: myName 。
④ 下划线:例如: my_name 。
变量的定义与调用
在Python中,记住:变量一定要先定义,后使用,否则会报错。
定义:
1 | name = 'itheima' |
调用:
1 | print(name) |
变量的定义与使用常见问题
① 变量与字符串如何区别:
==在Python中,如果要赋值的内容添加了单引号或者双引号,其就是Python中的一种数据类型:叫做字符串(日常生活中的文本信息)==
② print打印变量时,喜欢为其添加引号
1 | print(name) # 输出变量name对应的值 |
③ PyCharm快捷键 => Ctrl + Alt + L
=> 代码格式化
变量的数据类型
变量的定义非常的简单,但是很多小伙伴可能会想:变量除了存储这种字符类型的数据以外,还能存储其他类型的数据么?其实,在 Python中,我们为了应对不同的业务需求,也会把数据分为不同的类型,如下图所示:
面试题:请手写出Python中的7种数据类型?
答:数值类型、布尔类型、字符串类型、列表类型、元组类型、集合类型、字典类型
今天我们只需要了解前3种即可。
问题:如何判断一个变量到底是什么类型?
答:① 使用type(变量名称)方法,返回变量的数据类型 ② isinstance(变量名称,数据类型),只能返回True或False(真的还是假的)
数值类型
数值类型就是我们日常生活中的数字,数字又分为两种形式:整数 与 小数(带小数点)
整数类型:int类型
小数类型:float类型
案例1:定义一个人的信息,姓名:Tom、年龄18岁
1 | name = 'Tom' |
案例2:定义一个超市收银系统,写入一个名称:大白菜,价格:3.5
1 | name = '大白菜' |
布尔类型
布尔类型是与逻辑相关一种数据类型,只有两个值:True(真)与False(假)
案例1:手工定义一个flag变量,其值为True
1 | flag = True |
字符串类型
在Python变量定义中,如果其赋值的内容是通过单引号或双引号引起来的内容就是字符串str类型。
1 | msg = '这家伙很懒,什么都没有留下...' |
其他类型(了解)
1 | # 1、list列表类型 |
小结
Q1:Python变量命名规则是什么?
- 由数字、字母、下划线(_)组成
- 不能数字开头
- 严格区分⼤小写
- 使⽤内置关键字作为变量名称
Q2:Python变量有哪些数据类型?
- 数值型、布尔型、字符串、列表、元组、集合、字典
【掌握】Python的输入与输出
学习目标
掌握Python中的格式化输出方法,百分号格式化、format方法和f格式化
理解转义字符的使用
掌握Python中的输入方法,理解input()函数的使用及其返回值的类型
格式化输出
目前为止,我们所有的输出都是直接通过print(变量名称)形式直接打印的。但是实际工作中,我们可能需要对变量的输出进行格式化操作(==按照一定格式进行输出==)。
(张三,20,北京昌平
变量的格式化
百分号格式化输出
基本语法:
1 | ... |
%格式常见形式如下:
格式符号 | 转换 |
---|---|
==%s== | 字符串 |
==%d== | 有符号的十进制整数 |
==%f== | 浮点数 |
%c | 字符 |
%u | 无符号十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数(小写ox) |
%X | 十六进制整数(大写OX) |
%e | 科学计数法(小写’e’) |
%E | 科学计数法(大写’E’) |
%g | %f和%e的简写 |
%G | %f和%E的简写 |
案例:定义两个变量name=’itheima’, age=18,按照如下格式进行输出:我的名字是itheima,今年18岁了。
案例:定义两个变量title=’大白菜’,price=3.5,按照如下格式进行输出:今天蔬菜特价了,大白菜只要3.5元/斤。
1 | title = '大白菜' |
其实除了%f可以设置小数点位数以外,%d也可以填充序号。
案例:定义两个变量id=1,name=’itheima’,按照如下格式进行输出:姓名itheima,学号000001
1 | id = 1 |
format方法格式化输出
基本语法:
1 | ... |
案例:定义两个变量,name=’孙悟空’,mobile=’18878569090’,按照以下格式进行输出”姓名:孙悟空,联系方式:18878569090”
1 | name = '孙悟空' |
format方法简写形式格式化输出(推荐)
在Python3.6以后版本,为了简化format输出操作,引入了一个简写形式:
1 | name = '孙悟空' |
格式化输出中的转义符号
在字符串中,如果出现了\t和\n,其代表的含义就是两个转义字符
1 | \t :制表符,一个tab键(4个空格)的距离 |
案例:
1 | print('*\t*\t*') |
特别说明:==默认情况下,每个print()方法执行完毕后,都会输出一个\n换行符。如果不想让print()方法换行,可以添加一个end参数==
1 | print('*', end='') |
为什么需要输入
到目前为止,我们所有的程序都只能把数据输出给用户。但是实际工作中,我们经常输入获取用户的输入信息,如银行系统中的密码输入、淘宝中的用户登录验证。
input()输入方法
在Python中,如果想让Python程序接受用户的输入信息,可以使用input()方法
基本语法:
1 | input() |
但是往往只有input()方法,其意义不大,我们还应该使用一个变量来临时接受用户的输入,已方便后期的操作。
1 | 变量名称 = input('提示信息:') |
案例:银行系统中的,输入密码的过程
1 | password = input('请输入您的银行卡密码:') |
input()方法重要事项
记住:所有由input()方法获取的数据都是==“字符串”==类型
1 | name = input('请输入您的姓名:') |
总结:
① input()可以用于接收由外部设备输入的信息,但是如果用户没有输入任何内容,则input()函数会中止当前代码的继续执行,处于等待状态,直到用户输入结束。
② 所有由input()方法获取的数据都是==“字符串”==类型
小结
Q1:Python有几种格式化输出方式?
- 百分比格式化
- format格式化
- f格式化
Q2:input方式输入特点是什么?
- 用户不输入任何内容,input函数会中止代码继续执行
- input函数获取的数据都是字符串类型
【掌握】Python数据类型转换
学习目标
掌握常见的Python数据类型转换
使用Python实现超市的收银系统
Python:
1 | name = input('请输入您要购买商品名称:') |
以上程序虽然可以按照上图完成程序的正常输出,但是遗留了一个非常严重的问题:这个价格price变量无法参与数学运算(如买了两个奥利奥,应该是18.5 * 2),原因在于input()方法返回的所有的结果都是str字符串类型。
怎么解决以上问题呢? 答:使用==数据类型转换==
了解Python数据类型的转换方法
函数 | 说明 |
---|---|
==int(x)== | 将x转换为一个整数 |
==float(x)== | 将x转换为一个浮点数 |
complex(real [,imag ]) | 创建一个复数,real为实部,imag为虚部 |
==str(x)== | 将对象 x 转换为字符串 |
repr(x) | 将对象 x 转换为表达式字符串 |
==eval(str)== | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s) | 将序列 s 转换为一个元组 |
list(s) | 将序列 s 转换为一个列表 |
chr(x) | 将一个整数转换为一个Unicode字符 |
ord(x) | 将一个字符转换为它的ASCII整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
bin(x) | 将一个整数转换为一个二进制字符串 |
案例1:把用户输入的幸运数字,转换为整型
1 | num = input('请输入您的幸运数字:') |
以上代码还可以简写为:
1 | num = int(input('请输入您的幸运数字:')) |
案例2:多种数据类型转换
1 | # 1、整型转浮点类型 int => float |
案例3:eval()方法的使用,把字符串中的数字转换为原数据类型
1 | price = input('请输入您购买商品的价格:') |
str1 = ‘10’ 经过eval(str1) 转换为int类型
str2 = ‘10.88’ 经过eval(str1) 转换为float类型
总结
Q1:Python数据类型转换方法一共学了几种方式?
int() :转整型
float() :转浮点类型
str() :转字符串类型
eval() :把字符串转换为原数据类型
记住:① 如果一个字符串 * 数字,代表对这个字符串进行复制操作
1
2② 当float浮点类型转换为int整型时,其小数点后面的数据会丢失,一定要记住这个特性。
③ 字符串转数值类型,字符串中的数据必须是有意义的数值
【掌握】Python运算符
学习目标
掌握Python算术运算符
熟练使用逻辑运算符与赋值运算符
了解短路运算符
运算入门案例
需求:用户手工输入梯形的上底、下底以及高,能直接通过Python打印出梯形的面积为多少。
算术运算符
所谓的算数运算符就是我们日常生活中的加减乘除等待。
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 1 + 1 输出结果为 2 |
- | 减 | 1 - 1 输出结果为 0 |
* | 乘 | 2 * 2 输出结果为 4 |
/ | 除 | 10 / 2 输出结果为 5 |
// | 整除 | 9 // 4 输出结果为 2 |
% | 取余(取模) | 9 % 4 输出结果为 1 |
** | 幂指数 | 2 ** 4 输出结果为 16,即2的4次方,2 * 2 * 2 * 2 |
() | 小括号 | 小括号用来提高运算优先级,即 (1 + 2) * 3 输出结果为 9 |
案例1:了解一下算术运算符
1 | num1 = 10 |
案例2:和其他编程语言不太相同的几个算术运算符
1 | num1 = 20 |
算术运算符案例:求梯形的面积
知识点:用户输入、数据类型转换以及算术运算符
1 | a = float(input('请输入上底:')) |
赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 赋值 | 将=右侧的结果赋值给等号左侧的变量 |
变量名 = 变量值
== 等于号
案例1:把某个值赋值给某个变量
1 | num = 10 |
案例2:多个变量同时进行赋值操作
1 | n = 5 |
简写为:
1 | n, f, s = 5, 10.88, 'hello world' |
案例3:多个变量赋予相同的值
1 | a = 10 |
简写为:
1 | a = b = 10 |
复合赋值运算符
复合赋值运算符 = 算术运算符 结合 赋值运算符
复合赋值运算符的计算顺序 = 先执行算术运算符,执行完毕后,把结果在赋值给左边的变量。
案例:AA制餐厅
需求: 假设你是一位很棒的AA制餐厅的服务员,你的任务是计算每位顾客的应付金额。
输入顾客人数,并赋值给total_friends变量。
输入总账单数值,并赋值配给 total_bill 变量。
在账单费用上加上20%的税,并计算最终账单总额均摊给顾客金额,然后打印
1 | 需求分析: |
练习:均分巧克力
需求: 编写一个程序:将N个巧克力均分给M个儿童。
从输入获取一个整数:巧克力数量,并将其分配给 chocolates 变量。
从输入获取一个整数:孩子数量,并将其分配给 children 变量。
计算每个孩子在除法后得到的巧克力数量并打印出来。
计算剩余巧克力的数量并打印出来。
假设:巧克力的数量总是大于孩子的数量。
1 | 需求分析: |
比较运算符
特别注意:当我们使用比较运算符对两个变量进行比较时,其返回一个布尔类型的值。
案例:两个数大小的比较
1 | num1 = 10 |
练习题
1 | r = float(input('请输入要计算圆的半径:')) |
练习题2:赋值运算 => 输入身高,体重,求BMI = 体重(kg)/身高(m)的平方。
逻辑运算符
not就是取反,只有一个表达式
not 表达式
,如果表达式为True,则not以后就返回False。反之,则返回True。
and :逻辑与,只有当两边的表达式全部为真,则最终结果返回为真,否则返回为假。
x :False
y :False
result = x and y
or :逻辑或,只要有一方为真,则整个表达式的返回结果就为真。除非两边的表达式都为假,则整个结果返回为假。
result = x or y
讲个非诚勿扰的小故事:
① 女孩子要求比较高,要求男孩子必须要有房且有车
1 | 表达式1 and 表达式2 |
② 女孩子要求一般,要求男孩子有房或者有车即可
1 | 表达式1 or 表达式2 |
逻辑与、或、非,其最终的返回结果也是一个布尔类型的值,True或False。另外在实际工作中,逻辑运算符也主要和if分支结构相结合。
案例:
1 | a = 1 |
运算符_案例
案例需求
假设你是一位很棒的AA制餐厅的服务员,你的任务是计算每位顾客的应付金额。输入顾客人数,并赋值给total_friends变量。输入总账单数值,并赋值配给 total_bill 变量。在账单费用上加上20%的税,并计算最终账单总额均摊给顾客金额,然后打印。
实现思路
①输入顾客人数,输入总账单数值
②计算加上20%税后的总账单
③计算每位顾客的应付金额
④最后打印每位顾客的应付金额
实现代码
1 | # 1.输入顾客人数 |
巩固练习
需求: 编写一个程序:将N个巧克力均分给M个儿童。从输入获取一个整数:巧克力数量,并将其分配给 chocolates 变量。从输入获取一个整数:孩子数量,并将其分配给 children 变量。计算每个孩子在除法后得到的巧克力数量并打印出来。计算剩余巧克力的数量并打印出来。假设:巧克力的数量总是大于孩子的数量。
1 | # 1. 从输入获取一个整数:巧克力数量,并将其分配给 chocolates 变量 |
总结
Q1:Python有几种逻辑运算符?特点是什么?
- and 逻辑与,只有当两边的表达式全部为真,则最终结果返回为真,否则返回为假
- or 逻辑或,只要有一方为真,则整个表达式的返回结果就为真。除非两边的表达式都为假,则整个结果返回为假。
- not 就是取反,只有一个表达式
not 表达式
,如果表达式为True,则not以后就返回False。反之,则返回True。
【掌握】if选择判断结构
学习目标
掌握使用if条件判断语法,完成Python中条件判断相关需求
if选择判断结构作用
在日常开发中,只要有需要进行条件判断的语句基本上都是选择判断结构。
应用场景:
如果年龄大于等于18岁,则可以正常上网。
如果升级考试成绩大于60分,则可以顺利升级就业班。
if选择判断结构的基本语法
if基本语法:
1 | if 条件判断: |
案例代码:
1 | if True: |
if选择结构案例
需求:定义一个变量age = 18,判断这个变量是否大于等于18岁,如果满足条件,则可以上网。
案例1:直接定义判断,进行条件判断
1 | age = 18 |
案例2:上网吧案例升级版
1 | age = int(input('请输入您的年龄:')) |
if选择原理图:学编程除了会写代码还不行,还要回画图(流程图)
if…else…结构
基本语法:
1 | if 条件判断: |
案例3:上网吧案例升级升级版,引入else
1 | age = int(input('请输入您的年龄:')) |
if…else…结构原理图:
if…elif…else多条件判断结构
如果条件1成立,则执行语句段1
如果条件2成立,则执行语句段2
…
当所有条件都不成立时,则执行else语句段中的内容
1 | if 条件判断1: |
if多重条件判断原理图:
if_elif_else案例
案例需求
编写一个Python程序,根据用户输入的月份(1-12),判断该月份属于哪个季节(春季、夏季、秋季、冬季),并输出结果。如果用户输入的月份不在1-12范围内,程序应提示用户输入无效。
实现思路
①接受用户通过键盘输入任意一个合法月份
②使用if…elif 对用户输入月份进行判断
③匹配输出对应月份季节,如果匹配失败提示,无效月份
代码实现
1 | # 1.获取用户输入的月份 |
巩固练习
需求: 编写一个程序,找出三个数字中最小的一个。取三个整数输入,并将它们存储在number1, number2, 和number2中。使用 “if…elif…else “语句打印它们之间最小的数字。
代码实现
1 | """ |
if嵌套结构(难点)
基本语法:
1 | if 外层条件判断: |
嵌套结构看起来异常复杂,但是我们在编写时要遵循一个原则:==先编写外层判断,所有语句编写完成后,在编写内层条件判断结构。==
案例:法律规定,车辆驾驶员的血液酒精含量小于 20mg/100ml 不构成酒驾;酒精含量大于或等于 20mg/100ml 为酒驾;酒精含量大于或等于 80mg/100ml 为醉驾。编写 Python 程序判断是否为酒后驾车。
1 | proof = int(input('请输入驾驶员100ml血液中的酒精含量:')) |
小结
Q1:Python有几种if结构
- if..结构
- if…else结构
- if…elif..else结构
【实操】综合案例:石头剪刀布
需求分析
参与游戏的角色有两个(玩家 与 电脑),玩家手工出拳,电脑随机出拳,根据石头剪刀布判断输赢。
玩家:player(玩家手工输入石头0、剪刀1、布2)
电脑:computer(随机出拳)
输赢结果很重要,有三种情况:
① 玩家赢
☆ player:石头 赢 computer:剪刀
☆ player:剪刀 赢 computer:布
☆ player:布 赢 computer:石头
② 平局
只要player 与 computer出拳相等,就代表平局
③ 电脑赢
如果不满足以上两个条件,则电脑获胜!
未知知识点:如何让计算机随机出拳 => 随机
代码实现
确认:if…elif…else多条件分支结构
1 | # 第一步:提示输入输入石头剪刀布,0-代表石头,1代表剪刀,2代表布 |
遗留问题:计算机没办法随机出拳
作业
作业一:根据考试成绩, 发放奖励
需求:根据考试成绩发放奖励,键盘录入小明的考试成绩并接收, 根据考试成绩发放奖励.
作业二:进阶版: 猜拳游戏
需求:上述猜拳案例无法实现计算机自动随机出拳。在原有的功能基础上,实现计算机随机出拳。增加游戏趣味性