Python从入门到精通

一、Python基础语法

1、字面量

  • 掌握字面量的含义
  • 了解常见的字面量类型
  • 基于print语句完成各类字面量的输出

什么是字面量?

字面量:在代码中,被写下来的的固定的值,称之为字面量

常用的值类型

Python中常用的有6种值(数据)的类型

字符串

字符串(string),又称文本,是由任意数量的字符如中文、英文、各类符号、数字等组成。所以叫做字符的串

Python中,字符串需要用双引号(")包围起来。

被引号包围起来的,都是字符串。

如何在代码中写它们

我们目前要学习的这些类型,如何在代码中表达呢?

总结:

  1. 掌握字面量的含义

代码中,被写在代码中的固定的值,称之为字面量

  1. 常见的字面量类型

我们目前了解:整数、浮点数、字符串这三类即可

  1. 如何基于print语句完成各类字面量的输出

print(字面量),如:

print(10),输出整数10

print(13.14),输出浮点数13.14

2、注释

  • 了解注释的作用
  • 能够使用单行注释和多行注释

注释的作用

注释:在程序代码中对程序代码进行解释说明的文字。

作用:注释不是程序,不能被执行,只是对程序代码进行解释说明,让别人可以看懂程序代码的作用,能够

大大增强程序的可读性。

注释的分类

单行注释:以 #开头,#右边 的所有文字当作说明,而不是真正要执行的程序,起辅助说明作用

注意,#号和注释内容一般建议以一个空格隔开

多行注释: 以 一对三个双引号 引起来 ( )来解释说明一段代码的作用使用方法

注释实战

按照如图所示,对代码添加

  • 单行注释以及
  • 多行注释

添加完成注释后,执行程序

验证注释是否对程序产生影响

总结:
  1. 注释的作用是?

注释是代码中的解释型语句,用来对代码内容进行注解

注释不是代码,不会被程序执行

  1. 单行注释如何定义?

通过 # 号定义,在#号右侧的所有内容均作为注释

建议在#号和注释内容之间,间隔一个空格

单行注释一般用于对一行或一小部分代码进行解释

  1. 多行注释如何定义?

通过一对三个引号来定义("""注释内容"""),引号内部均是注释,可以换行

多行注释一般对:Python文件、类或方法进行解释

3、变量

  • 理解变量的作用及特征
  • 掌握变量的定义方式

什么是变量

变量:在程序运行时,能储存计算结果或能表示值的抽象概念。

简单的说,变量就是在程序运行时,记录数据用的

变量的特征

变量,从名字中可以看出,表示"量"是可变的。

所以,变量的特征就是,变量存储的数据,是可以发生改变的。

思考

为什么必须要使用变量?

都是输出内容,直接输出不行吗?

变量的目的是存储运行过程的数据

存储的目的是为了:重复使用

总结:

1、变量是什么,有什么作用?

变量就是在程序运行时,记录数据用的

  1. 变量的定义格式是?

变量名 = 变量值

  1. 变量的特征是?

变量的值可以改变

  1. print语句如何输出多份内容?

print(内容1, 内容2, ......, 内容N)

  1. Python中如何做减法?

使用符号 - 即可完成减法运算

拓展:加(+)、减(-)、乘(*)、除(/)

4、数据类型:

  • 掌握使用type()语句查看数据的类型
  • 理解变量无类型而数据有类型的概念

在学习字面量的时候,我们了解到:数据是有类型的。

目前在入门阶段,我们主要接触如下三类数据类型:

string、int、float这三个英文单词,就是类型的标准名称。

type()语句

那么,问题来了,如何验证数据的类型呢?

我们可以通过type()语句来得到数据的类型:

语法:

type(被查看类型的数据)

type()语句的使用方式

  1. 在print语句中,直接输出类型信息:
  1. 用变量存储type()的结果(返回值)

查看的都是<字面量>的类型,能查看变量中存储的数据类型吗?

那当然:可以

变量有类型吗?

我们通过type(变量)可以输出类型,这是查看变量的类型还是数据的类型?

查看的是:变量存储的数据的类型。因为,变量无类型,但是它存储的数据有。

总结:
  1. 使用什么语句可以查看数据的类型?

type()

  1. 如下代码,name_type变量可以存储变量name的类型信息,是因为?

因为type()语句会给出结果(返回值)

  1. 变量有没有类型?

没有,字符串变量表示变量存储了字符串而不是表示变量就是字符串

字符串类型的不同定义方式

字符串有3种不同的定义方式:

三引号定义法,表示在一堆三个双引号的范围内,均是字符串,如下:

5、数据类型转换

  • 掌握如何在字符串、整数、浮点数之间进行相互转换
  • 了解转换的注意事项

为什么要转换类型

数据类型之间,在特定的场景下,是可以相互转换的,如字符串转数字、数字转字符串等

那么,我们为什么要转换它们呢?

数据类型转换,将会是我们以后经常使用的功能。

如:

  • 从文件中读取的数字,默认是字符串,我们需要转换成数字类型
  • 后续学习的input()语句,默认结果是字符串,若需要数字也需要转换
  • 将数字转换成字符串用以写出到外部系统
  • 等等

用途很多,那么让我们来学习一下如何转换吧。

常见的转换语句

同前面学习的type()语句一样,这三个语句,都是带有结果的(返回值),我们可以用print直接输出,或用变量存储结果值。

类型转换注意事项

类型转换不是万能的,毕竟强扭的瓜不会甜,我们需要注意:

  1. 任何类型,都可以通过str(),转换成字符串
  2. 字符串内必须真的是数字,才可以将字符串转换为数字
总结:

1、字符串、整数、浮点数类型转换的语句是?

2、任何类型都可以转换成字符串,对不对?

正确

  1. 字符串可以随意转换成数字,对不对?

错误,字符串内必须只有数字才可以

  1. 浮点数转整数会丢失什么?

丢失精度,也就是小数部分

6、标识符

  • 理解什么是标识符
  • 掌握标识符的命名规则
  • 掌握变量的命名规范

什么是标识符

在Python程序中,我们可以给很多东西起名字,比如:

  • 变量的名字
  • 方法的名字
  • 类的名字,等等

这些名字,我们把它统一的称之为标识符,用来做内容的标识。

所以,标识符:

是用户在编程的时候所使用的一系列名字,用于给变量、类、方法等命名。

标识符命名规则

Python中,标识符命名的规则主要有3类:

  • 内容限定
  • 大小写敏感
  • 不可使用关键字

标识符命名规则 - 内容限定

标识符命名中,只允许出现:

  • 英文
  • 中文
  • 数字
  • 下划线(_)

这四类元素。

其余任何内容都不被允许。

标识符命名规则 - 大小写敏感

以定义变量为例:

Andy = "安迪1"

andy = "安迪2"

字母a的大写和小写,是完全能够区分的。

标识符命名规则 - 不可使用关键字

Python中有一系列单词,称之为关键字

关键字在Python中都有特定用途

我们不可以使用它们作为标识符

变量命名规范

学完了标识符(变量、类、方法)的命名规则后,我们在来学习标识符的命名规范。

  • 变量名
  • 类名
  • 方法名

不同的标识符,有不同的规范。

我们目前只接触到了:变量。所以,目前学习:变量的命名规范。

  • 见名知意
  • 下划线命名法
  • 英文字母全小写

变量命名规范 - 见名知意

变量的命名要做到:

明了:尽量做到,看到名字,就知道是什么意思

简洁:尽量在确保"明了"的前提下,减少名字的长度

变量命名规范 - 下划线命名法

多个单词组合变量名,要使用下划线做分隔。

变量命名规范 - 英文字母全小写

命名变量中的英文字母,应全部小写:

总结:
  1. 什么是标识符?

用户编写代码时,对变量、类、方法等编写的名字,叫做标识符。

  1. 标识符的命名规则?
  • 内容限定:(中文、英文、数字、下划线)
  • 大小写敏感
  • 不可使用关键字
  1. 变量的命名规范?
  • 见名知意
  • 下划线命名法
  • 英文字母全小写

7、运算符

了解Python中常见算术(数学)运算符、赋值运算符

算术(数学)运算符

算术运算符的演示

加减乘除和求平方,我们在前面已经使用过啦。

现在在带上:整除以及求余数,一起试一试吧。

赋值运算符
复合赋值运算符

总结:

1、常见的算术(数学)运算符有: 加(+)、减(-)、乘(*)、除(/)、整除(//)、取余(%)、求平方(**)

2、赋值运算符有:

  • 标准赋值: =
  • 复合赋值:+=、-=、*=、/=、//=、%=、**=

8、字符串扩展

  • 字符串的三种定义方式
  • 字符串拼接
  • 字符串格式化
  • 格式化的精度控制
  • 字符串格式化方式2
  • 对表达式进行格式化

字符串的三种定义方式

字符串在Python中有多种定义形式:

单引号定义法:

双引号定义法:

三引号定义法:

三引号定义法,和多行注释的写法一样,同样支持换行操作。

使用变量接收它,它就是字符串

不使用变量接收它,就可以作为多行注释使用。

字符串的引号嵌套

思考:如果我想要定义的字符串本身,是包含:单引号、双引号自身呢?如何写?

  • 单引号定义法,可以内含双引号
  • 双引号定义法,可以内含单引号
  • 可以使用转移字符(\)来将引号解除效用,变成普通字符串
总结:

字符串的三种定义方式:

  • 单引号方式
  • 双引号方式
  • 三引号方式

引号的嵌套

  • 可以使用:\来进行转义
  • 单引号内可以写双引号或双引号内可以写单引号

字符串拼接

  • 掌握如何拼接字符串

如果我们有两个字符串(文本)字面量,可以将其拼接成一个字符串,通过+号即可完成。

不过一般,单纯的2个字符串字面量进行拼接显得很呆,一般,字面量和变量或变量和变量之间会使用拼接。

既然可以和字符串变量完成拼接,那么,是否可以和其它变量类型如数字类型完成拼接呢?

让我们试一试。

总结:

1、如何完成字符串拼接?

使用"+"号连接字符串变量或字符串字面量即可

  1. 有哪些注意事项?

无法和非字符串类型进行拼接

字符串格式化

  • 掌握通过占位的形式拼接字符串(字符串格式化)

我们会发现,这个拼接字符串也不好用啊

变量过多,拼接起来实在是太麻烦了

字符串无法和数字或其它类型完成拼接。

我们可以通过如下语法,完成字符串和变量的快速拼接。

其中的,%s

% 表示:我要占位

s 表示:将变量变成字符串放入占位的地方

所以,综合起来的意思就是:我先占个位置,等一会有个变量过来,我把它变成字符串放到占位的位置。

那,数字类型呢?可以不可以占位?

那必须可以,我们来尝试如下代码:

多个变量占位,变量要用括号括起来,并按照占位的顺序填入。

数字也能用%s占位吗?

可以的哦,这里是将数字 转换成了 字符串哦

也就是数字57,变成了字符串"57"被放入占位的地方

数字类型,也太没有地位了吧,竟然要被转成字符串拼接。

有没有体面一点的方式,让数字以其原本的面貌拼接进去呢?

安排。

Python中,其实支持非常多的数据类型占位

最常用的是如下三类

如下代码,完成字符串、整数、浮点数,三种不同类型变量的占位。

总结:

1、字符串格式化的语法?

"%占位符" % 变量

  1. 常用占位符有哪3个?

字符串:%s

整数:%d

浮点数:%f

格式化的精度控制

  • 掌握格式化字符串的过程中做数字的精度控制

如下代码,完成字符串、整数、浮点数,三种不同类型变量的占位

细心的同学可能会发现:

浮点数19.99,变成了19.990000输出

这里我们就要讲解一下,字符串格式化之"数字精度控制"

我们可以使用辅助符号"m.n"来控制数据的宽度和精度

  • m,控制宽度,要求是数字(很少使用),设置的宽度小于数字自身,不生效
  • .n,控制小数点精度,要求是数字,会进行小数的四舍五入

示例:

  • %5d:表示将整数的宽度控制在5位,如数字11,被设置为5d,就会变成:空格空格空格11,用三个空格补足宽度。
  • %5.2f:表示将宽度控制为5,将小数点精度设置为2,小数点和小数部分也算入宽度计算。如,对11.345设置了%7.2f 后,结果是:空格空格11.35。2个空格补足宽度,小数部分限制2位精度后,四舍五入为 .35
  • %.2f:表示不限制宽度,只设置小数点精度为2,如11.345设置%.2f后,结果是11.35

体验一下如下代码的快乐吧。

总结:
  1. 精度控制的语法是:

m.n的形式控制,如%5d、%5.2f、%.2f

m和.n均可省略

  1. 如果m比数字本身宽度还小,会发生什么事?

m不生效

  1. .n会对小数部分做精度限制,同时:?

会对小数部分做四舍五入

字符串格式化方式2

  • 掌握快速字符串格式化的方式

目前通过%符号占位已经很方便了,还能进行精度控制。

可是追求效率和优雅的Python,是否有更加优雅的方式解决问题呢?

那当然:有

通过语法:f"内容{变量}"的格式来快速格式化

看如下代码

这种写法不做精度控制

也不理会类型

适用于快速格式化字符串

总结:

1、可以通过

f"{变量} {变量}"的方式进行快速格式化

  1. 这种方式:
  • 不理会类型
  • 不做精度控制

适合对精度没有要求的时候快速使用

对表达式进行格式化

  • 了解什么是表达式
  • 掌握对表达式进行字符串格式化

刚刚的演示,都是基于变量的。

可是,我想更加优雅些,少写点代码,直接对"表达式"进行格式化是否可行呢?

那么,我们先了解一下什么是表达式。

表达式:一条具有明确执行结果的代码语句

如:

1 + 1、5 * 2,就是表达式,因为有具体的结果,结果是一个数字

又或者,常见的变量定义:

name = "张三" age = 11 + 11

等号右侧的都是表达式呢,因为它们有具体的结果,结果赋值给了等号左侧的变量。

那么,对于字符串格式化,能否直接格式化一个表达式呢?

可以,上代码:

在无需使用变量进行数据存储的时候,可以直接格式化表达式,简化代码哦

总结:
  1. 表达式是什么?

表达式就是一个具有明确结果的代码语句,如 1 + 1、type("字符串")、3 * 5等

在变量定义的时候,如 age = 11 + 11,等号右侧的就是表达式,也就是有具体的结果,将结果赋值给了等号左侧的变量

  1. 如何格式化表达式?

f"{表达式}"

"%s\%d\%f" % (表达式、表达式、表达式)

练习:

股价计算小程序

定义如下变量:

  • name,公司名
  • stock_price,当前股价
  • stock_code,股票代码
  • stock_price_daily_growth_factor,股票每日增长系数,浮点数类型,比如1.2
  • growth_days,增长天数

计算,经过growth_days天的增长后,股价达到了多少钱

使用字符串格式化进行输出,如果是浮点数,要求小数点精度2位数。

示例输出:

红色框框都是变量,要使用格式化的方式拼接进去

提示,可以使用: 当前股价 * 增长系数 ** 增长天数, 用来计算最终股价哦

如,股价19.99 * 系数1.2 ** 7天 = 71.62778419199998,小数点现在精度2位后结果:71.63

二、Python判断语句

前言

进行逻辑判断,是生活中常见的行为。同样,在程序中,进行逻辑判断也是最为基础的功能。

为什么学习判断语句?

判断在程序中广泛应用,如果没有它,这些功能都难以实现。

布尔类型和比较运算符

  • 掌握布尔类型用于表示:真和假
  • 掌握比较运算符用于计算:真和假

进行判断,只有2个结果:

布尔类型

Python中常用的有6种值(数据)的类型

布尔类型的定义

布尔类型的字面量:

True 表示真(是、肯定)

False 表示假 (否、否定)

定义变量存储布尔类型数据:

变量名称 = 布尔类型字面量

布尔类型不仅可以自行定义

同时也可以通过计算的来。

也就是使用比较运算符进行比较运算得到布尔类型的结果。

比较运算符

布尔类型的数据,不仅可以通过定义得到,也可以通过比较运算符进行内容比较得到。

如下代码:

总结:

1、在Python中,可以表示真假的数据类型是:

布尔类型,字面量True表示真,字面量False表示假

  1. 除了可以定义布尔类型外,还可以通过____计算得到布尔类型?

通过<比较运算符>计算得到布尔类型的结果

  • == 判断是否相等,!= 判断是否不相等
  • >判断是否大于,<判断是否小于
  • >=判断是否大于等于,<=判断是否小于等于

if语句的基本格式

  • 掌握逻辑判断语句(if)的基本语法格式
  • 掌握布尔类型数据,在判断语句中的作用

if判断语句

if语句的注意点

判断语句的结果,必须是布尔类型True或False

True会执行if内的代码语句

False则不会执行

总结:

1、if语句的基本格式:

  1. if语句的注意事项:
  • 判断条件的结果一定要是布尔类型
  • 不要忘记判断条件后的: 引号
  • 归属于if语句的代码块,需在前方填充4个空格缩进

if else 语句

  • 掌握if else 语句的组合用法

if满足条件会执行相应的代码语句,如果不满足呢?

有没有不满足的情况下,可供执行的代码呢?

if else 语句可以实现

if else语句注意点

  1. else后,不需要判断条件

  2. 和if的代码块一样,else的代码块同样需要4个空格作为缩进

总结:

1、if else 语句,其中

  • if和其代码块,条件满足时执行
  • else搭配if的判断条件,当不满足的时候执行
  1. if else语句的注意事项:
  • else不需要判断条件,当if的条件不满足时,else执行
  • else的代码块,同样要4个空格作为缩进

if elif else语句

掌握if elif else语句进行多条件判断的语法

某些场景下,判断条件不止一个,可能有多个。

这种需求能用Python实现吗?

if elif else 语句可以实现

if elif else语句

if elif else语句 注意点:

elif 语句可以写多个。

判断是互斥且有顺序的:

  • 满足1(如图编号)将不会理会2和3
  • 满足2,将不会理会3
  • 1、2、3均不满足,进入else
  • else也可以省略不写,效果等同3个独立的if判断

空格缩进同样不可省略

总结:

1、if elif else语句的作用是?

可以完成多个条件的判断

  1. 使用if elif else的注意点有:
  • elif可以写多个
  • 判断是互斥且有序的,上一个满足后面的就不会判断了
  • 可以在条件判断中,直接写input语句,节省代码量

判断语句的嵌套

  • 掌握Python判断语句的终极用法:嵌套使用

有很多场景,不仅仅是多个并列条件,还会有满足前置条件才会二次判断的多层判断需求。

对这种需求,嵌套判断语句可以实现

许多逻辑的判断,是嵌套的,多层次的。

对于这种需求,我们可以:自由组合 if elif else,完成特定需求的要求

基础语法格式如下:

如上图,第二个if,属于第一个if内,只有第一个if满足条件,才会执行第二个if

嵌套的关键点,在于:空格缩进

通过空格缩进,来决定语句之间的:层次关系

简单嵌套:

如图:

判断有2层

当外层if满足条件(图中编号1)时,才会执行内层if判断(图中编号2)

当外层if(编号1)不满足,直接执行外层esle

自由组合嵌套,需求如下:

公司要发礼物,条件是:

  1. 必须是大于等于18岁小于30岁的成年人

  2. 同时入职时间需满足大于两年,或者级别大于3才可领取

如图:

if elif else 可以自由组合

满足缩进的要求即可

总结:
  1. 嵌套判断语句可以用于多条件、多层次的逻辑判断
  2. 嵌套判断语句可以根据需求,自由组合if elif else来构建多层次判断
  3. 嵌套判断语句,一定要注意空格缩进,Python通过空格缩进来决定层次关系

三、Python循环语句

四、Python函数

五、Python数据容器

六、Python函数进阶

七、Python文件操作

八、Python异常模块与包

相关推荐
用户83562907805117 小时前
Python 实现 PDF 文件加密与解密方法
后端·python
用户83562907805118 小时前
使用 Python 冻结与拆分 Excel 窗格教程
后端·python
你好潘先生1 天前
别再记命令了,用 yeero do 说句人话就能跑脚本,而且不烧 token
服务器·python·命令行
Agent_大师1 天前
WebSocket 行情重连成功,K线缺口不会自动消失
python
荣码1 天前
LLM结构化输出:让AI返回JSON而不是废话,我踩了4个坑
java·python
copyer_xyf1 天前
FastAPI 如何连接 MySQL
后端·python
apocelipes2 天前
常用编程语言和库的正则表达式性能对比
c语言·c++·python·性能优化·golang·开发工具和环境
用户8356290780512 天前
使用 Python 在 PDF 中创建与管理书签
后端·python
MeixianAgent2 天前
Python 回测数据入口怎么验?历史 K 线入库前先做 5 个检查
后端·python
咕白m6252 天前
用 Python 实现一键批量查找与替换 Excel 数据
后端·python