大模型开发入门v3.0
🐍第 3 章/大模型 Python 语言入门

3.1 Python基础语法与条件判断

📑 本页目录

3.1 Python基础语法与条件判断#

学习目标#

  • 知道Python语言的优缺点
  • 掌握Python环境搭建
  • 掌握Python基础语法
  • 熟悉Python判断结构

一、【熟悉】Python概述与安装#

学习目标#

知道Python创始时间和创始人 知道Python的优缺点

1 为什么要学习Python#

① 技术趋势 Python自带明星属性,热度稳居编程语言界前三 image-20210306090039676 https://www.tiobe.com/tiobe-index/ https://pypl.github.io/PYPL.html ② 简单易学 开发代码少,精确表达需求逻辑;33个关键字,7种基本数据类型;语法规则简单,接近自然语言。 image-20210306090337310 ③ 应用广泛 Python语言涉及IT行业70%以上的技术领域 image-20210306090727147

2 Python语言的诞生#

1989年,为了打发圣诞节假期,龟叔(吉多·范·罗苏姆)开始写Python语言的编译器 ; 1991年,第一个Python编译器诞生 Python这个名字,来自龟叔所挚爱的电视剧Monty Python's Flying Circus (蒙蒂·蟒蛇的飞行马戏团) image-20220223001443177

3 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解释器#

学习目标#

知道Python解释器的作用 知道Python解释器的版本 清楚Anaconda, Miniconda 和 Conda 的关系与区别

1 Python解析器的作用#

demo.py

    print('Hello World')
    

由于Python属于高级语言,其并不能直接在计算机中运行,因为缺少Python语言的运行环境:Python解析器 image-20210306092814499 Python解析器的作用:就是把Python代码转换为计算机底层可以识别的机器语言,如0101...

2 Python解析器的种类#

① CPython,C语言开发的解释器[官方],应⽤广泛的解释器。 ② IPython,基于CPython的一种交互式解释器。 ③ 其他解释器 PyPy,基于Python语言开发的解释器。 JPython,运⾏在Java平台的解释器,直接把Python代码编译成Java字节码执⾏。 IronPython,运⾏在微软.Net平台上的Python解释器,可直接把Python代码编译成.Net的字节码。

3 Python解释器版本#

在生产环境中,我们⼀般不会选择最新版本的Python,因为可能会存在未知Bug,所以⼀般强烈建议大家在选择软件版本时,选择市场常用的软件版本 Python3.8及以上 ​ ... Python3.8、Python3.9、Python3.10、Python3.11 、Python3.12、Python3.13 ... 原生版本下载地址:https://www.python.org/downloads

4 Anaconda安装Python解析器#

4.1 Anaconda介绍#

Anaconda 是一个开源的 Python/R 数据科学平台 ,它极大地简化了包管理和环境管理。你可以把它理解为一个“超级工具箱”,里面不仅包含了Python本身,还预装了超过1500个用于数据科学(如数据分析、机器学习、可视化)的流行库和工具。 此外,大家要清楚Anaconda, Miniconda 和 Conda 的关系与区别

  • Conda: 是底层的包管理和环境管理工具本身 。它是一个独立的命令行工具。
  • Anaconda: 是一个“全家桶”发行版。它包含了Conda、Python、1500+个数据科学库以及Navigator等图形化工具 。体积较大(约500MB-1GB)。
  • Miniconda: 是一个“迷你版”的Anaconda。它只包含Conda、Python和少量核心依赖 。体积非常小。

如何选择?

  • 初学者/希望快速上手的用户: 推荐直接安装 Anaconda 。省时省力,无需担心初始配置。
  • 高级用户/磁盘空间有限/追求定制化: 推荐安装 Miniconda 。你可以从一个干净的基础开始,只安装你需要的包,从而保持环境的精简。

4.2 Anaconda安装#

1740668600059 1740668629646 1740668667912 1740668753327 1740668982175 1740670257930 1740670281760 1740670324881

4.3 Anaconda测试#

打开开始菜单点击Anaconda Powershell Prompt, 分别输入 conda -Vpython -V , 能出现版本号, 即为安装成功. 1740670596381 1740670645915

三、【掌握】PyCharm开发工具#

学习目标#

完成PyCharm软件安装 实现PyCharm软件与Anaconda整合

1 为什么要安装PyCharm#

工欲善其事必先利其器 在Python的开发领域,其开发工具非常非常多,EditPlus、Notepad++、Sublime Text3、Visual Studio Code、PyCharm(目前功能最强大的IDE) image-20210306102520443

2 PyCharm的主要作用#

PyCharm是⼀种Python IDE (集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的⼯具,内部集成的功能如下: Project管理 智能提示 语法高亮 代码跳转 调试代码 解释代码(解释器) 框架和库 ......

3 PyCharm的分类#

PyCharm一共有两个版本:专业版(收费) 与 社区版(免费、开源) image-20210306102803654 在基础班,PyCharm社区版足够我们使用,绰绰有余。

4 下载PyCharm#

下载地址:https://www.jetbrains.com/pycharm/download/#section=windows image-20210306103210207

5 PyCharm安装#

第一步:双击PyCharm软件安装包,进行软件安装 image-20210306104505660 第二步:设置软件的安装路径,理论上没有任何要求,但是建议放在除C盘以外的盘符 image-20210306105046370 第三步:PyCharm基本设置,创建桌面图标与.py文件关联 image-20210306105223088

6 PyCharm软件的使用#

6.1☆ 创建Python项目#

什么是项目?其实我们在实际开发中,每次参与一个工作的开发都是一个项目的开发过程。所以使用PyCharm的第一件事就是学习Python项目的创建过程。 第一步:创建项目 1740669584662 第二步:设置项目路径,必须放在C盘以外的盘符(非常重要!!!) 1740671399407 配置完成后,单机Create创建Python项目。

6.2☆ 新建文件与代码书写#

1740671502874

编写Hello World

    print('Hello World')
    

6.3☆ 运行代码#

1740671569004 运行结果: 1740671588897

6.4☆ 设置或更换Python解析器#

打开File文件,找到Settings设置,如下图所示:更换Python解析器 1740671620828

6.5☆ PyCharm软件本身设置#

① 软件主题(软件未来的样式) ② 编码字体的设置 ③ 代码字号的设置(文字大小) 打开File文件 => Settings设置,找到界面设置: image-20210306115108007 主题设置: image-20210306115322452 字体与字号设置: image-20210306115516870 字体设置: image-20210306115611339 字号设置: image-20210306115735435

6.6☆ 打开项目与关闭项目#

打开项目:本身项目已经存在了,我们直接打开。 image-20210306120615122 选择项目目录(文件夹)即可,如下图所示: image-20210306120712306 ① This Window => 覆盖当前项⽬,从⽽打开目标项目 ② New Window => 在新窗⼝打开,则打开两次PyCharm,每个PyCharm负责一个项⽬ ③ Attach => 把两个项目合并在一起,放在同一个窗口中 关闭项目:对已经运行项目进行关闭操作。 image-20210306120425927

四、【熟悉】Python注释与快捷键#

学习目标#

了解Python注释作用 掌握常见的注释格式 熟练使用常见的快捷键

1 注释的作用#

首先强调一件事:Python代码 => Python解析器 => 机器语言,但是注释经过了Python的解释器并不会解析与执行。因为其主要就是进行代码的注释。 注释作用:提高代码的阅读性 image-20210306143714495 在我们编写Python程序时,为了了提高程序的可读性,强烈建议大家为核心代码添加注释信息。

2 Python注释语法#

2.1☆ 单行注释#

单行注释,以"#"(Shift + 3)号开头,只能注释一行内容

    # 注释内容
    

示例代码: 第一种:代码行的上面

    # 输出Hello World字符串
    print('Hello World')
    

第二种:放在代码的后面(代码后面保留2个空格)

    print('Hello World')  # 输出Hello World字符串
    

2.2☆ 多行注释#

多行注释:可以同时注释多行代码或程序,常用于代码块的注释 基本语法:

    """
    注释内容
    第一行
    第二行
    第三行
    """
    

    '''
    注释内容
    第一行
    第二行
    第三行
    '''
    

示例代码:

    """
    Hi, 大家好
    我是黑马程序员的小伙伴
    从今天开始,我们将一起学习Python这门语言
    """
    
    '''
    Hi, 大家好
    我是黑马程序员的小伙伴
    从今天开始,我们将一起学习Python这门语言
    '''
    print('Hi, 大家好')
    print('我是黑马程序员的小伙伴')
    print('从今天开始,我们将一起学习Python这门语言')
    

2.3☆ PyCharm注释小技巧(快捷键)#

在PyCharm中,我们可以使用Ctrl + /斜杠来对代码或程序进行快速注释。

3 代码提示#

在PyCharm中,当我们输入Python关键字中的前2~3个字符,其会自动进行代码提示。这个时候,我们只需要按回车即可以快速的输入某个内容。 image-20210306150352389

4 代码保存#

编写代码时,一定要养成一个好的习惯,使用Ctrl + S快速对代码进行保存操作。 当然现在开发工具很多都已经有自动保存功能~

5 撤销与恢复#

如果不小心删除了某行代码,这个时候我们可以快速按Ctrl + Z就可以快速进行恢复。每按一次就撤销一次,如果撤销多了,怎么办? 答:还可以通过Ctrl + Y进行恢复操作

6 格式代码#

如果写的代码,很乱,不方便阅读,那就有事没事儿就按Ctrl + ALT + L 格式化代码

7 快速复制代码#

如果光标所在行代码,下面要使用多次,可以按 Ctrl + D 快速复制光标所在行代码

小结#

Q1:为什么要给程序写注释?

  • 提高代码的阅读性

Q2:Python中注释有几种常见格式,特点是什么

  • 单行注释,以"#"号开头,只能注释一行内容
  • 多行注释:可以同时注释多行代码或程序,常用于代码块的注释

五、【掌握】Python中的变量#

学习目标#

理解变量的定义与使用 熟悉变量的命名规则和数据类型

1 引入变量的概念#

那什么是变量呢? ① 变量是存储数据的容器 ② 变量在程序运行过程中是可以发生改变的量 ③ 变量存储的数据是临时的

2 变量的定义#

基本语法:

    变量名称 = 变量的值
    注:等号的两边都要保留一个空格,其实Python中建议符号的两边尽量都要保留一个空格
    

说明:在Python程序中,这个等号和日常生活中的等号不太一样,其有一个专业名词:赋值运算符,其读法:要从右向左读,把变量的值通过 = 赋值给左边的变量。

3 变量的命名规则#

标识符命名规则是Python中定义变量名称时一种命名规范,具体如下: ① 由数字、字母、下划线(_)组成 ② 不能数字开头 ③ 严格区分⼤小写 ④ 不能使⽤内置关键字作为变量名称 image-20210306155908564 举个栗子: ① abc、abc123、_abc、hello(合理) ② 123abc、@abc、abc-123(不合理) ③ _(下划线) => 请问这可以是一个变量名称么?答:可以

    for _ in range(10):
        ...
    

注意:在Python变量命名时,不建议使用_开头,因为其与后面要学习的私有属性想冲突 ④ 变量abc和变量ABC是同一个变量么?答:不一样,这是两个完全不同的变量 ⑤ 记不住Python关键字怎么办?答:借助于help()方法

    >>> help('keywords')
    

4 推荐变量的命名规则#

① 变量命名一定要做到见名知义。 ② 大驼峰:即每个单词首字母都大写,例如: MyName 。 ③ 小驼峰:第二个(含)以后的单词首字母大写,例如: myName 。 ④ 下划线:例如: my_name 。

5 变量的定义与调用#

在Python中,记住:变量一定要先定义,后使用,否则会报错。 定义:

    name = 'itheima'
    address = '北京市顺义区京顺路99号'
    

调用:

    print(name)
    print(address)
    或
    print(name, address)
    

6 变量的定义与使用常见问题#

① 变量与字符串如何区别: 在Python中,如果要赋值的内容添加了单引号或者双引号,其就是Python中的一种数据类型:叫做字符串(日常生活中的文本信息) ② print打印变量时,喜欢为其添加引号

    print(name)  # 输出变量name对应的值
    与
    print('name')  # 输出'name'这个字符串
    

③ PyCharm快捷键 => Ctrl + Alt + L => 代码格式化

7 变量的数据类型#

变量的定义非常的简单,但是很多小伙伴可能会想:变量除了存储这种字符类型的数据以外,还能存储其他类型的数据么?其实,在 Python中,我们为了应对不同的业务需求,也会把数据分为不同的类型,如下图所示: image-20210306162601034 面试题:请手写出Python中的7种数据类型? 答:数值类型、布尔类型、字符串类型、列表类型、元组类型、集合类型、字典类型 今天我们只需要了解前3种即可。 问题:如何判断一个变量到底是什么类型? 答:① 使用type(变量名称)方法,返回变量的数据类型 ② isinstance(变量名称,数据类型),只能返回True或False(真的还是假的)

7.1 数值类型#

数值类型就是我们日常生活中的数字,数字又分为两种形式:整数 与 小数(带小数点) 整数类型:int类型 小数类型:float类型 案例1:定义一个人的信息,姓名:Tom、年龄18岁

    name = 'Tom'
    age = 18
    print(type(age))
    

案例2:定义一个超市收银系统,写入一个名称:大白菜,价格:3.5

    name = '大白菜'
    price = 3.5
    print(type(price))
    

7.2 布尔类型#

布尔类型是与逻辑相关一种数据类型,只有两个值:True(真)与False(假) 案例1:手工定义一个flag变量,其值为True

    flag = True
    print(flag)
    print(type(flag))
    

7.3 字符串类型#

在Python变量定义中,如果其赋值的内容是通过单引号或双引号引起来的内容就是字符串str类型。

    msg = '这家伙很懒,什么都没有留下...'
    print(type(msg))
    

7.4 其他类型(后续学习)#

    # 1、list列表类型
    list1 = [10, 20, 30, 40]
    print(type(list1))
    
    # 2、tuple元组类型
    tuple1 = (10, 20, 30, 40)
    print(type(tuple1))
    
    # 3、set集合类型:去重
    set1 = {10, 20, 30}
    print(type(set1))
    
    # 4、dict字典类型:查询、搜索
    dict1 = {'name':'itheima', 'age':18}
    print(type(dict1))
    

小结#

Q1:Python变量命名规则是什么?

  • 由数字、字母、下划线(_)组成
  • 不能数字开头
  • 严格区分⼤小写
  • 使⽤内置关键字作为变量名称

Q2:Python变量有哪些数据类型?

  • 数值型、布尔型、字符串、列表、元组、集合、字典

六、【掌握】Python的输入与输出#

学习目标#

掌握Python中的格式化输出方法,百分号格式化、format方法和f格式化 理解转义字符的使用 掌握Python中的输入方法,理解input()函数的使用及其返回值的类型

1 格式化输出#

目前为止,我们所有的输出都是直接通过print(变量名称)形式直接打印的。但是实际工作中,我们可能需要对变量的输出进行格式化操作(按照一定格式进行输出)。 变量的格式化

2 百分号格式化输出#

基本语法:

    ...
    print(变量名称)
    print('字符串%格式' % (变量名称))
    print('字符串%格式 %格式 %格式' % (变量名称1, 变量名称2,     变量名称3))
    

%格式常见形式如下:

格式符号 转换
%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岁了。
image-20210306175326815
案例:定义两个变量title='大白菜',price=3.5,按照如下格式进行输出:今天蔬菜特价了,大白菜只要3.5元/斤。
    title = '大白菜'
    price = 3.5
    # 格式化输出“今天蔬菜特价了,大白菜只要3.5元/斤。"
    print("今天蔬菜特价了,%s只要%.2f元/斤。" % (title, price))
    

其实除了%f可以设置小数点位数以外,%d也可以填充序号。 案例:定义两个变量id=1,name='itheima',按照如下格式进行输出:姓名itheima,学号000001

    id = 1
    name = 'itheima'
    print("姓名%s,学号%06d" % (name, id))
    

3 format方法格式化输出#

基本语法:

    ...
    print('字符串{}'.format(变量名称1))
    print('{}字符串{}'.format(变量名称1, 变量名称2))
    

案例:定义两个变量,name='孙悟空',mobile='18878569090',按照以下格式进行输出"姓名:孙悟空,联系方式:18878569090"

    name = '孙悟空'
    mobile = '18878569090'
    print("姓名:{},联系方式:{}".format(name, mobile))
    

4 format方法简写形式格式化输出(推荐)#

在Python3.6以后版本,为了简化format输出操作,引入了一个简写形式:

    name = '孙悟空'
    mobile = '18878569090'
    print(f'姓名:{name},联系方式:{mobile}')
    

5 格式化输出中的转义符号#

在字符串中,如果出现了\t和\n,其代表的含义就是两个转义字符

    \t :制表符,一个tab键(4个空格)的距离
    \n :换行符
    

案例:

    print('*\t*\t*')
    print('hello\nworld')
    

特别说明:默认情况下,每个print()方法执行完毕后,都会输出一个\n换行符。如果不想让print()方法换行,可以添加一个end参数

    print('*', end='')
    

6 为什么需要输入#

到目前为止,我们所有的程序都只能把数据输出给用户。但是实际工作中,我们经常输入获取用户的输入信息,如银行系统中的密码输入、淘宝中的用户登录验证。 image-20210306182224429

7 input()输入方法#

在Python中,如果想让Python程序接受用户的输入信息,可以使用input()方法 基本语法:

    input()
    

但是往往只有input()方法,其意义不大,我们还应该使用一个变量来临时接受用户的输入,已方便后期的操作。

    变量名称 = input('提示信息:')
    

案例:银行系统中的,输入密码的过程

    password = input('请输入您的银行卡密码:')
    print(f'您输入的银行卡密码为:{password}')
    

8 input()方法重要事项#

记住:所有由input()方法获取的数据都是==“字符串”==类型

    name = input('请输入您的姓名:')
    age = input('请输入您的年龄:')
    
    print(type(name))  # <class 'str'>
    print(type(age))  # <class 'str'>
    

总结: ① input()可以用于接收由外部设备输入的信息,但是如果用户没有输入任何内容,则input()函数会中止当前代码的继续执行,处于等待状态,直到用户输入结束。 ② 所有由input()方法获取的数据都是==“字符串”==类型

小结#

Q1:Python有几种格式化输出方式?

  • 百分比格式化
  • format格式化
  • f格式化

Q2:input方式输入特点是什么?

  • 用户不输入任何内容,input函数会中止代码继续执行
  • input函数获取的数据都是字符串类型

七、【掌握】Python数据类型转换#

学习目标#

掌握常见的Python数据类型转换

1 使用Python实现超市的收银系统#

image-20210307095839494 Python:

    name = input('请输入您要购买商品名称:')
    id = input('请输入您要购买商品编号:')
    price = input('请输入您要购买的商品价格:')
    
    print(f'您购买了{name},商品编号为{id},商品价格为{price},欢迎下次光临!')
    

以上程序虽然可以按照上图完成程序的正常输出,但是遗留了一个非常严重的问题:这个价格price变量无法参与数学运算(如买了两个奥利奥,应该是18.5 * 2),原因在于input()方法返回的所有的结果都是str字符串类型。 怎么解决以上问题呢? 答:使用==数据类型转换==

2 了解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:把用户输入的幸运数字,转换为整型
    num = input('请输入您的幸运数字:')
    print(type(num))
    
    # 数据类型转换,把str字符串类型转换为int类型
    print('-' * 20)
    
    num = int(num)
    print(type(num))
    

以上代码还可以简写为:

    num = int(input('请输入您的幸运数字:'))
    print(type(num))
    

案例2:多种数据类型转换

    # 1、整型转浮点类型 int => float
    num1 = 10
    print(float(num1))
    print(type(float(num1)))
    
    print('-' * 20)
    
    # 2、浮点类型转换为整型 float => int,浮点转整型,其小数点后的数据会丢失!!!
    num2 = 18.88
    print(int(num2))
    
    print('-' * 20)
    
    # 3、把字符串类型转换为整型或浮点类型
    str1 = '20'
    str2 = '10.88'
    print(type(int(str1)))
    print(type(float(str2)))
    

案例3:eval()方法的使用,把字符串中的数字转换为原数据类型

    price = input('请输入您购买商品的价格:')
    print(eval(price))
    print(type(eval(price)))
    

str1 = '10' 经过eval(str1) 转换为int类型 str2 = '10.88' 经过eval(str1) 转换为float类型

小结#

Q1:Python数据类型转换方法一共学了几种方式?

  • int() :转整型
  • float() :转浮点类型
  • str() :转字符串类型
  • eval() :把字符串转换为原数据类型

记住:① 如果一个字符串 * 数字,代表对这个字符串进行复制操作

     ② 当float浮点类型转换为int整型时,其小数点后面的数据会丢失,一定要记住这个特性。
     ③ 字符串转数值类型,字符串中的数据必须是有意义的数值
    

八、【掌握】Python运算符#

学习目标#

掌握Python算术运算符 熟练使用逻辑运算符与赋值运算符 了解短路运算符

1 算术运算符#

所谓的算数运算符就是我们日常生活中的加减乘除等待。

运算符 描述 实例
  • | 加 | 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:了解一下算术运算符
    num1 = 10
    num2 = 2
    
    # 四则运算 + - * /
    print(f'加:{num1 + num2}')
    print(f'减:{num1 - num2}')
    print(f'乘:{num1 * num2}')
    print(f'除:{num1 / num2}')
    

案例2:和其他编程语言不太相同的几个算术运算符

    num1 = 20
    num2 = 6
    num3 = 5
    
    # 1、整除
    print(f'整除:{num1 // num2}')
    # 2、求余数
    print(f'余数:{num1 % num2}')
    # 3、幂指数
    print(f'幂指数:{num2 ** 3}')
    # 4、圆括号
    print(f'优先级:{(num1 + num2) * num3}')
    

2 赋值运算符#

运算符 描述 实例
= 赋值 将=右侧的结果赋值给等号左侧的变量
案例1:把某个值赋值给某个变量
    num = 10
    

案例2:多个变量同时进行赋值操作

    n = 5
    f = 10.88
    s = 'hello world'
    

简写为:

    n, f, s = 5, 10.88, 'hello world'
    print(n)
    print(f)
    print(s)
    

案例3:多个变量赋予相同的值

    a = 10
    b = 10
    

简写为:

    a = b = 10
    

3 复合赋值运算符#

复合赋值运算符 = 算术运算符 结合 赋值运算符 image-20210307115314520

复合赋值运算符的计算顺序 = 先执行算术运算符,执行完毕后,把结果在赋值给左边的变量。 案例:AA制餐厅 需求: 假设你是一位很棒的AA制餐厅的服务员,你的任务是计算每位顾客的应付金额。 输入顾客人数,并赋值给total_friends变量。 输入总账单数值,并赋值配给 total_bill 变量。 在账单费用上加上20%的税,并计算最终账单总额均摊给顾客金额,然后打印

    需求分析:
    #第一步:获取用户输入顾客人数
    #第二步:输入总账单数值
    #第三步:计算加上20%税后的总账单
    #第四步:计算每位顾客的应付金额
    #第五步:打印每位顾客的应付金额
    
    
    
    # 1.输入顾客人数
    total_friends = int(input("请输入顾客人数: "))
    
    # 2.输入总账单数值
    total_bill = float(input("请输入总账单数值: "))
    
    # 3.计算加上20%税后的总账单
    total_bill_with_tax = total_bill * 1.20
    
    # 4.计算每位顾客的应付金额
    amount_per_person = total_bill_with_tax / total_friends
    
    # 5.打印每位顾客的应付金额
    print(f"每位顾客的应付金额是: {amount_per_person:.2f}元")
    

4 比较运算符#

image-20210307120855222

特别注意:当我们使用比较运算符对两个变量进行比较时,其返回一个布尔类型的值。 案例:两个数大小的比较

    num1 = 10
    num2 = 20
    
    print(num1 > num2)  # False
    print(num1 < num2)  # True
    print(num1 >= num2) # False
    print(num1 <= num2) # True
    print(num1 == num2) # False
    print(num1 != num2) # True
    

5 逻辑运算符#

image-20210307144233542

not就是取反,只有一个表达式not 表达式,如果表达式为True,则not以后就返回False。反之,则返回True。 and :逻辑与,只有当两边的表达式全部为真,则最终结果返回为真,否则返回为假。 x :False y :False result = x and y or :逻辑或,只要有一方为真,则整个表达式的返回结果就为真。除非两边的表达式都为假,则整个结果返回为假。 result = x or y 讲个非诚勿扰的小故事: ① 女孩子要求比较高,要求男孩子必须要有房且有车

    表达式1 and 表达式2
    当表达式1True且表达式2True时,则整个表达式返回结果为True
    当表达式1或表达式2中有一个表达式为假,则整个表达式返回结果为False
    
    
    有房 and 有车  则  牵手成功
    有房 and 没车  则  牵手失败
    没房 and 有车  则  牵手失败
    

② 女孩子要求一般,要求男孩子有房或者有车即可

    表达式1 or 表达式2
    当表达式1True或表达式2True时,则整个表达式返回结果为True
    当表达式1与表达式2都为False时,则整个表达式才会返回False
    
    
    有房 or 有车  则  牵手成功
    有房 or 没车  则  牵手成功
    没房 or 有车  则  牵手成功
    没房 or 没车  则  牵手失败
    

逻辑与、或、非,其最终的返回结果也是一个布尔类型的值,True或False。另外在实际工作中,逻辑运算符也主要和if分支结构相结合。 案例:

    a = 1
    b = 2
    c = 3
    
    print((a > b) and (b > c))  # False
    print((a > b) or (b > c))   # False
    print((a < b) or (b > c))   # True
    print(not (a > b))          # True
    

6 运算符_综合案例#

案例需求#

假设你是一位很棒的AA制餐厅的服务员,你的任务是计算每位顾客的应付金额。输入顾客人数,并赋值给total_friends变量。输入总账单数值,并赋值配给 total_bill 变量。在账单费用上加上20%的税,并计算最终账单总额均摊给顾客金额,然后打印。

实现思路#

①输入顾客人数,输入总账单数值 ②计算加上20%税后的总账单 ③计算每位顾客的应付金额 ④最后打印每位顾客的应付金额

实现代码#

    # 1.输入顾客人数
    total_friends = int(input("请输入顾客人数: "))
    
    # 2.输入总账单数值
    total_bill = float(input("请输入总账单数值: "))
    
    # 3.计算加上20%税后的总账单
    total_bill_with_tax = total_bill * 1.20
    
    # 4.计算每位顾客的应付金额
    amount_per_person = total_bill_with_tax / total_friends
    
    # 5.打印每位顾客的应付金额
    print(f"每位顾客的应付金额是: {amount_per_person:.2f}元")
    

小结#

Q1:Python有几种运算符? ​ 算术运算符 ​ 赋值运算符 ​ 复合赋值运算符 ​ 比较运算符 ​ 逻辑运算符 ​

九、【掌握】if选择判断结构#

学习目标#

掌握使用if条件判断语法,完成Python中条件判断相关需求

1 if选择判断结构作用#

在日常开发中,只要有需要进行条件判断的语句基本上都是选择判断结构。 应用场景: 如果年龄大于等于18岁,则可以正常上网。 如果升级考试成绩大于60分,则可以顺利升级就业班。

2 if基础结构#

if基本语法:

    if 条件判断:
        则执行某段代码... 
    
    print()
    

案例代码:

    if True:
        print('条件成立执行的代码1')
        print('条件成立执行的代码2')
    
    # 下方的代码没有缩进到if语句块,所以和if条件无关
    print('我是无论条件是否成立都要执行的代码')
    

需求:定义一个变量age = 18,判断这个变量是否大于等于18岁,如果满足条件,则可以上网。 案例1:直接定义判断,进行条件判断

    age = 18
    if age >= 18:
        print('满足18岁要求,可以正常上网')
    

案例2:上网吧案例升级版

    age = int(input('请输入您的年龄:'))
    if age >= 18:
        print('满足18岁要求,可以正常上网')
    

if选择原理图:学编程除了会写代码还不行,还要回画图(流程图) image-20210307161204181

3 if...else...结构#

基本语法:

    if 条件判断:
        当条件判断为True时,则执行这个语句段
    else:
        当条件判断为False时,则执行这个语句段
    

案例3:上网吧案例升级升级版,引入else

    age = int(input('请输入您的年龄:'))
    if age >= 18:
        print('满足18岁要求,可以正常上网')
    else:
        print('不满足18岁要求,回家好好学习,天天向上')
    

if...else...结构原理图: image-20210307162555060

4 if...elif...else结构#

如果条件1成立,则执行语句段1 如果条件2成立,则执行语句段2 ... 当所有条件都不成立时,则执行else语句段中的内容

    if 条件判断1:
        如果此条件为True,则执行这个语句段
    elif 条件判断2:
        如果此条件为True,则执行这个语句段
    elif ...:
        ...
    else:
        如果以上所有条件判断都不满足时,则执行这个语句段
    

if多重条件判断原理图: image-20210307165907589

案例需求#

编写一个Python程序,根据用户输入的月份(1-12),判断该月份属于哪个季节(春季、夏季、秋季、冬季),并输出结果。如果用户输入的月份不在1-12范围内,程序应提示用户输入无效。

实现思路#

①接受用户通过键盘输入任意一个合法月份 ②使用if...elif 对用户输入月份进行判断 ③匹配输出对应月份季节,如果匹配失败提示,无效月份

代码实现#

    # 1.获取用户输入的月份
    month = int(input("请输入月份 (1-12): "))
    
    # 2.判断季节
    if 3 <= month <= 5:
        season = "春季"
    elif 6 <= month <= 8:
        season = "夏季"
    elif 9 <= month <= 11:
        season = "秋季"
    elif month in [1, 2, 12]:
        season = "冬季"
    else:
        season = "无效的月份"
    
    # 3.输出季节
    print(f"该月份属于: {season}")
    

5 if嵌套结构(难点)#

基本语法:

    if 外层条件判断:
        # 如果条件为True,则执行以下语句段
        if 内层条件判断:
            # 如果内层条件为True,则执行以下语句段
    else:
        # 如果条件为False,则执行以下语句段
    

嵌套结构看起来异常复杂,但是我们在编写时要遵循一个原则:先编写外层判断,所有语句编写完成后,在编写内层条件判断结构。 案例:法律规定,车辆驾驶员的血液酒精含量小于 20mg/100ml 不构成酒驾;酒精含量大于或等于 20mg/100ml 为酒驾;酒精含量大于或等于 80mg/100ml 为醉驾。编写 Python 程序判断是否为酒后驾车。

    proof = int(input('请输入驾驶员100ml血液中的酒精含量:'))
    # 判断proof酒精含量是否小于20mg
    if proof < 20:
        print('驾驶员不构成酒驾')
    else:
        # 已经构成酒驾 => 两种类型(酒驾与醉驾)
        if proof >= 80:
            print('驾驶员已构成醉驾')
        else:
            print('驾驶员已构成酒驾')
    

小结#

Q1:Python有几种if结构

  • if..结构
  • if…else结构
  • if…elif..else结构

十、【实操】综合案例:猜数字游戏#

需求分析#

随机生成1个 1 ~ 100之间的数字, 让用户来猜.判断用户是否猜对了, 并提示. 猜对, 猜大, 猜小.

未知知识点:如何让计算机随机生成数字=> 补充random模块 思考: 如何完成多次猜的机会? 方案1:今天学习的if嵌套 方案2:后续学习的循环

代码实现#

确认:if...elif...else多条件分支结构

    import random
    
    # 1. 随机生成1个 1 ~ 100之间的数字, 让用户来猜.
    guess_num = random.randint(1, 100)      # 包左包右.
    print(guess_num)
    
    # 2. 因为只给1次机会, 后续学完循环结构, 再优化.
    input_num = int(input('请录入您要猜的整数: '))
    # 3. 判断用户是否猜对了, 并提示. 猜对, 猜大, 猜小.
    if input_num == guess_num:
        print('恭喜您, 猜对了, 请找老师领取奖品, 练习题一套!')
    elif input_num > guess_num:
        print('哎呀, 您猜大了!')
    else:
        print('哎呀, 您猜小了!')