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异常模块与包

相关推荐
娅娅梨26 分钟前
C++ 错题本--not found for architecture x86_64 问题
开发语言·c++
汤米粥32 分钟前
小皮PHP连接数据库提示could not find driver
开发语言·php
冰淇淋烤布蕾35 分钟前
EasyExcel使用
java·开发语言·excel
拾荒的小海螺41 分钟前
JAVA:探索 EasyExcel 的技术指南
java·开发语言
秀儿还能再秀1 小时前
机器学习——简单线性回归、逻辑回归
笔记·python·学习·机器学习
马剑威(威哥爱编程)1 小时前
哇喔!20种单例模式的实现与变异总结
java·开发语言·单例模式
白-胖-子1 小时前
【蓝桥等考C++真题】蓝桥杯等级考试C++组第13级L13真题原题(含答案)-统计数字
开发语言·c++·算法·蓝桥杯·等考·13级
好睡凯1 小时前
c++写一个死锁并且自己解锁
开发语言·c++·算法
java—大象1 小时前
基于java+springboot+layui的流浪动物交流信息平台设计实现
java·开发语言·spring boot·layui·课程设计
yyqzjw1 小时前
【qt】控件篇(Enable|geometry)
开发语言·qt