【python】—— 基础语法(一)

序言:

在之前,我们已经对【python】的开发环境进行了相应的安装,紧接着本期我就讲给大家介绍它的相关语法。对于学过【C/C++】或者其他语言的小伙伴来说,语法内容学习起来就会掌握的很快了。

图片[1] - 【python】—— 基础语法(一) - MaxSSL


目录

前言

(一)常量和表达式

(二)变量和类型

1、变量是什么

2、变量的语法

1️⃣数字类型

2️⃣字符串类型

3️⃣bool类型

4️⃣列表类型

3、为什么要有这么多类型” />4、动态类型特性

(三)注释

1、注释是什么

2、注释的语法

3、注释的规范

(四)输入输出

1、和用户交互

2、通过控制台输出

3、通过控制台输入

(五)运算符

1、算术运算符

2、关系运算符

3、逻辑运算符

4、赋值运算符

其他…

总结


前言

Python 语言与C 和 Java 等语言有许多相似之处。但是,也存在一些差异。

在本章中我们将来学习 Python 的基础语法,让你快速学会 Python 编程。

(一)常量和表达式

Python 没有内置的常量类型。通常,Python 程序员会使用全大写的变量名来表示常量,以标识这些变量的值不应该被修改。

  • 例如:
PI = 3.141592653589793GRAVITY = 9.8

我们可以把 Python 当成一个计算器, 来进行一些算术运算

print(1 + 2 - 3)print(1 + 2 * 3)print(1 + 2 / 3)
  • 输出结果如下:

图片[2] - 【python】—— 基础语法(一) - MaxSSL

【分析】

  • 熟悉 C / Java 的同学可能认为, 【2 / 3 】结果为 0 (小数部分被截断);
  • 但是在 Python 中得到的结果则是 一个小数. 更符合日常使用的直觉,且在编程中一般没有“四舍五入”这样的规则,因此大家发现最末位输出的是 “5”
  • 形如 1 + 2 – 3 这样是算式, 在编程语言中称为 表达式, 算式的运算结果, 称为 表达式的返回值
  • 其中 1 , 2 , 3 这种称为 字面值常量, + – * / 这种称为 运算符 或者 操作符.

【注意】

  1. print 是一个 Python 内置的 函数, 这个稍后详细介绍.
  2. 可以使用 + – * / ( ) 等运算符进行算术运算. 先算乘除, 后算加减.
  3. 运算符和数字之间, 可以没有空格, 也可以有多个空格. 但是一般习惯上写一个空格(比较美观).

示例

给定四个分数, 67.5, 89.0, 12.9, 32.2 , 编写代码, 求这四个分数的平均数.

图片[3] - 【python】—— 基础语法(一) - MaxSSL


(二)变量和类型

1、变量是什么

有的时候, 我们需要进行的计算可能更复杂一些, 需要把一些计算的中间结果保存起来. 这个时候就需要用到 变量.

示例

给定四个分数, 67.5, 89.0, 12.9, 32.2 , 编写代码, 求这四个分数的方差.

PS: 方差的计算过程: 取每一项, 减去平均值, 计算平方, 再求和, 最后除以 (项数 – 1)

在这个代码中, 就需要先计算这四个数字的平均值, 然后再计算方差. 这就需要把计算的平均值使用 变量 保存起来.

图片[4] - 【python】—— 基础语法(一) - MaxSSL

  • 输出结果为:

图片[5] - 【python】—— 基础语法(一) - MaxSSL

注意

  1. avg, total, result 均为变量.
  2. 【** 】在 Python 中表示乘方运算. ** 2 即为求平方.

就像计算器中的 M 键功能类似, 通过变量就可以保存计算过程中的中间结果.

图片[6] - 【python】—— 基础语法(一) - MaxSSL

  • 只不过, 计算器一般只能保存一个数据, 而在 Python 代码中, 可以创建任意多的变量, 来随心所欲的保存很多很多的数据.

变量可以视为是一块能够容纳数据的空间,这个空间往往对应到 “内存” 这样的硬件设备上.

图片[7] - 【python】—— 基础语法(一) - MaxSSL

【注意】

  1. PS: 我们可以把内存想像成是一个宿舍楼, 这个宿舍楼上有很多的房间. 每个房间都可以存放数据.;
  2. 衡量内存的一个重要指标就是内存空间的大小, 比如我的电脑内存是 16GB. 这个数字越大, 意味着 内存的存储空间就越大, 能够存放的数据(变量) 就越多.

2、变量的语法

Python 变量和类型是 Python 语言中最基本的概念之一。变量是用于存储数据值的标识符,而类型则定义了这些数据值的性质和操作。

在 Python 中,所有的变量都是“对象”,并且每个对象都具有“类型”。与其他编程语言不同,Python 是一种动态类型的语言,因此变量的类型可以在运行时自由更改。

注意: 和 C++ / Java 等语言不同, Python 变量的类型不需要显式指定, 而是在赋值的时候确定的

下面是 Python 中的一些常见数据类型和变量:

1️⃣数字类型

Python 中的数字类型包括整数、浮点数和复数;

通常,Python 根据值的大小来确定数字类型,例如 421000000 都是整数,而 3.141e-10 是浮点数。如果要创建一个复数,可以使用 complex(real, imag)函数。

  • (1) 整数

图片[8] - 【python】—— 基础语法(一) - MaxSSL

输出如下:

图片[9] - 【python】—— 基础语法(一) - MaxSSL

图片[10] - 【python】—— 基础语法(一) - MaxSSL

  • PS: type 和 print 类似, 也是 python 内置的函数. 可以使用 type 来查看一个变量的类型.

【注意】

和 C++ / Java 等语言不同, Python 的 int 类型变量, 表示的数据范围是没有上限的. 只要内存足够 大, 理论上就可以表示无限大小的数据.

  • (2)浮点数(小数)

图片[11] - 【python】—— 基础语法(一) - MaxSSL

图片[12] - 【python】—— 基础语法(一) - MaxSSL

【分析】

  1. 这是一个Python中创建复数的语句。这个语句创建了一个复数`c`,其中实部为1,虚部为2;
  2. 复数是包含实部和虚部的数,可以用来表示平面上的点;
  3. 在Python中,复数可以用`complex`函数来创建,语法为`complex(a, b)`,其中`a`是实部,`b`是虚部。

【注意】

  1. 和 C++ / Java 等语言不同, Python 的小数只有 float 一种类型, 没有 double 类型;
  2. 但是实际上 Python 的 float 就相当于 C++ / Java 的 double, 表示双精度浮点数.

PS: 关于单精度浮点数和双精度浮点数的问题, 我们此处不做过多讨论. 大家只要知道, 相比于单精 度浮点数, 双精度浮点数占用的内存空间更多, 同时表示的数据精度更高即可(大概精确到小数点后 15 位).


2️⃣字符串类型

Python 中的字符串类型用于存储文本数据。可以使用单引号、双引号或三引号来表示字符串;

例如 "Hello, World!"'I\'m a Python developer.' 都是有效的字符串。

  • 单引号字符串

图片[13] - 【python】—— 基础语法(一) - MaxSSL

  • 双引号字符串

图片[14] - 【python】—— 基础语法(一) - MaxSSL注意

在 Python 中, 单引号构成的字符串和双引号构成的字符串, 没有区别. ‘hello’ 和 “hello” 是 完全等价的.

  • 三引号字符串

图片[15] - 【python】—— 基础语法(一) - MaxSSL

  • 字符串拼接

图片[16] - 【python】—— 基础语法(一) - MaxSSL

此处是两个字符串相加. 不能拿字符串和整数/浮点数相加.

其次还可以使用 len 函数来获取字符串的长度.

图片[17] - 【python】—— 基础语法(一) - MaxSSL

字符串作为开发中最常用到的数据类型, 支持的操作方式也是非常丰富的. 此处暂时不详细展开.


3️⃣bool类型

在Python中,bool是一种基本数据类型,用于表示逻辑真和逻辑假。一个bool型变量只能取True或False两个值。

在Python中,可以通过关键字TrueFalse来分别表示逻辑真和逻辑假。例如:

图片[18] - 【python】—— 基础语法(一) - MaxSSL

  • 布尔类型在咱们后续进行逻辑判断的时候, 是非常有用的.

在条件判断和循环语句中,bool类型的变量通常用来表示条件是否成立。如果条件成立,bool型变量的取值为True;否则为False。例如:

图片[19] - 【python】—— 基础语法(一) - MaxSSL

输出结果将根据变量x的取值来决定;

  • 当x为True时,输出”x is true”;
  • 当x为False时,输出”x is false”

4️⃣列表类型

列表是一种可变序列,可以包含任意类型的数据。可以使用方括号 []来创建列表,并使用索引(从 0 开始)来访问和修改元素。例如 [1, 2, 3] ['apple', 'banana', 'cherry'] 都是有效的列表。

  • 创建列表
arr = [1, 2, 3, 4, 5]
  • 访问元素
# 访问元素print(arr[0]) # 输出第一个元素print(arr[-1])# 输出最后一个元素

输出如下:

图片[20] - 【python】—— 基础语法(一) - MaxSSL

  • 修改元素
# 修改元素arr[0] = 0print(arr)

输出如下:

图片[21] - 【python】—— 基础语法(一) - MaxSSL

  • 切片操作

图片[22] - 【python】—— 基础语法(一) - MaxSSL

【分析】

  1. 这是Python中对列表(list)或其他可切片对象进行切片操作的语法,表示创建一个新的列表`arr2`,它是从列表`arr`的索引1处开始(包括索引1位置上的元素),到索引3处结束(不包括索引3位置上的元素),所包含的元素所组成的子列表;
  2. 换句话说,`arr2`包含`arr`列表中的第2和第3个元素,是一个新列表;
  3. 需要注意的是,这里所指的索引不是从0开始,而是从1开始计数。
  • 列表拼接

图片[23] - 【python】—— 基础语法(一) - MaxSSL

除了上述类型之外, Python 中还有 tuple, dict, 自定义类型 等等. 我们后续再介绍.


3、为什么要有这么多类型” />(1) 类型决定了数据在内存中占据多大空间.

例如 float 类型在内存中占据 8 个字节.

PS: 计算机里面使用二进制来表示数据. 也就是每个位只能表示 0 或者 1.

1 个二进制位, 就称为是一个 “比特”, 8 个二进制位, 就称为一个 “字节” (Byte)

一个 float 变量在内存中占据 8 个字节空间, 也就是 64 个二进制位.

假设我的电脑有 16GB 的内存空间, 也就是一共有 1024 * 1024 * 1024 * 8 这么多的二进制位.

(2) 类型其实约定了能对这个变量做什么样的操作.

  • 例如 int / float 类型的变量, 可以进行 + – * / 等操作
  • 而 str 类型的变量, 只能进行 + (并且行为是字符串拼接), 不能进行 – * / , 但是还能使用 len 等其他操作.

【总结】

  • 类型系统其实是在对变量进行 “归类”. 相同类型的变量(数据) 往往具有类似的特性和使用规则.

4、动态类型特性

在 Python 中, 一个变量是什么类型, 是可以在 “程序运行” 过程中发生变化的. 这个特性称为 “动态类型” .

图片[24] - 【python】—— 基础语法(一) - MaxSSL

  • 在程序执行过程中, a 的类型刚开始是 int, 后面变成了 str

C++/Java 这样的语言则不允许这样的操作. 一个变量定义后类型就是固定的了. 这种特性则称为 “静态类型”.

Python是一种动态类型语言,具有以下动态类型特性:

  1. 不需要提前声明变量的数据类型:在Python中,不需要显式地声明变量的数据类型,可以直接赋值。Python会根据变量的值来确定变量的数据类型。

  2. 变量的类型可以在运行时改变:在Python中,变量的类型是可以在程序运行时动态改变的,即一个变量在某个时刻可以是整数,而在另一个时刻可以是字符串。

  3. 对变量和对象的引用不限制类型:在Python中,变量名只是一个符号,对于任何一个变量,可以使用同一个变量名来引用不同类型的对象。

  4. 内置函数type()可以用来获取变量的类型:在Python中,可以使用内置函数type()来获取变量的数据类型。

由于Python具有动态类型的特性,因此它更加灵活和易于使用,但也需要程序员在编写代码时更加注意变量类型的变化,以确保程序能够正确运行。


(三)注释

1、注释是什么

注释是一种特殊的代码, 它不会影响到程序的执行, 但是能够起到解释说明的作用, 能够帮助程序猿理解程 序代码的执行逻辑.

PS: 写代码是一件比较烧脑的事情, 读代码同样也非常烧脑. 相比于一板一眼的代码, 一些口语化的 描述能更好的帮助程序猿理解程序.

# 计算 4 个数字 67.5, 89.0, 12.9, 32.2 的方差avg = (67.5 + 89.0 + 12.9 + 32.2) / 4total = (67.5 - avg) ** 2 + (89.0 - avg) ** 2 + (12.9 - avg) ** 2 + (32.2 - avg) ** 2result = total / 3print(result)
  • 形如上述代码, 如果没有注释, 直接阅读, 是不容易 get 到代码的含义是计算方差;
  • 但是通过加了一行注释 解释一下, 就让人一目了然了.

PS: 代码的第一目标是容易理解, 第二目标才是执行正确. 写注释不光是为了方便别人来理解, 也是方便几个月之后的自己理解.

一个反例: 早些年医生的手写处方

图片[25] - 【python】—— 基础语法(一) - MaxSSL

图片[26] - 【python】—— 基础语法(一) - MaxSSL

2、注释的语法

Python 中有两种风格的注释.

(1) 注释行

使用 # 开头的行都是注释.

# 这是一行注释.

(2) 文档字符串

使用三引号引起来的称为 “文档字符串”, 也可以视为是一种注释.

  • 可以包含多行内容;
  • 一般放在 文件/函数/类 的开头;
  • “”” 或者 ”’ 均可 (等价).

“””

这是文档字符串

这是文档字符串

“””

3、注释的规范

1. 内容准确: 注释内容要和代码一致, 匹配, 并在代码修改时及时更新.

2. 篇幅合理: 注释既不应该太精简, 也不应该长篇大论.

3. 使用中文: 一般中国公司都要求使用中文写注释, 外企另当别论.

4. 积极向上: 注释中不要包含负能量(例如 领导 SB 等).


(四)输入输出

1、和用户交互

程序需要和用户进行交互.

  1. 用户把信息传递给程序的过程, 称为 “输入”.
  2. 程序把结果展示给用户的过程, 称为 “输出”.

输入输出的最基本的方法就是控制台. 用户通过控制台输入一些字符串, 程序再通过控制台打印出一些字 符串.

PyCharm 运行程序, 下方弹出的窗口就可以视为是控制台.

图片[27] - 【python】—— 基础语法(一) - MaxSSL

windows 自带的 cmd 程序, 也可以视为是控制台.

图片[28] - 【python】—— 基础语法(一) - MaxSSL

输入输出的最常见方法是图形化界面. 如我们平时用到的 QQ, 浏览器, steam 等, 都不需要用户输入命令, 而只是通过鼠标点击窗口点击按钮的方式来操作.

Python 当然也可以用来开发图形化界面的程序. 但是图形化程序开发本身是一个大话题. 咱们现在暂时不做介绍.


2、通过控制台输出

Python 使用 print 函数输出到控制台.

print('hello')

不仅能输出一个字符串, 还可以输出一个其他类型的变量

a = 10print(a)b = Trueprint(b)

输出如下:

图片[29] - 【python】—— 基础语法(一) - MaxSSL

更多的时候, 我们希望能够输出的内容是混合了字符串和变量的.

示例: 输出 num = 10

num = 10print(f'num = {num}')

输出如下:

图片[30] - 【python】—— 基础语法(一) - MaxSSL

【注意】

  1. 使用 f 作为前缀的字符串, 称为 f-string
  2. 里面可以使用 { } 来内嵌一个其他的变量/表达式.

PS: Python 中还支持其他的格式化字符串的方法, 咱们此处只了解这个最简单的即可. 其他的暂时 不做介绍.

3、通过控制台输入

python 使用 input 函数, 从控制台读取用户的输入.

图片[31] - 【python】—— 基础语法(一) - MaxSSL

【注意】

  1. input 的参数相当于一个 “提示信息”, 也可以没有.
  2. input 的返回值就是用户输入的内容. 是字符串类型.
  3. 在python中批量注释为:ctrl+/
  • 我们在试着拼接两个数:

图片[32] - 【python】—— 基础语法(一) - MaxSSL

  • 此处的结果是字符串拼接, 不是算术运算. 如果要想进行算术运算, 需要先转换类型.

图片[33] - 【python】—— 基础语法(一) - MaxSSL

  1. 通过 int( ) 把变量转成了 int 类型.
  2. 类似的, 使用 float( ), bool( ), str( ) 等可以完成对应的类型转换

代码示例: 输入 4 个小数, 求 4 个小数的平均值.

图片[34] - 【python】—— 基础语法(一) - MaxSSL

此处为了输入 4 个数字, 执行了四次 input. 如果是读取任意多个数字怎么办呢” />(五)运算符

在 Python 中,表达式是由运算符和操作数组成的代码片段。Python 支持许多不同类型的运算符,包括算术、比较、逻辑和位运算符。下面是一些常用的运算符和示例:

1、算术运算符

像 + – * / % ** // 这种进行算术运算的运算符, 称为 算术运算符

注意1: / 中不能用 0 作为除数. 否则会 抛出异常

print(10 / 0)

图片[35] - 【python】—— 基础语法(一) - MaxSSL

  • 异常 是编程语言中的一种常见机制, 表示程序运行过程中, 出现了一些 “意外情况”, 导致程序不能继 续往下执行了.

注意2: 整数 / 整数 结果可能是小数. 而不会截断

图片[36] - 【python】—— 基础语法(一) - MaxSSL

注意3: % 不是 “百分数”, 而是求余数.

图片[37] - 【python】—— 基础语法(一) - MaxSSL

  • 关于求余数, 有些同学容易蒙. 其实这个是小学二年级数学就学过的.
  • 7 除以 2 , 商是 3 , 余数是 1.

注意4: ** 是求乘方. 不光能算整数次方, 还能算小数次方.

图片[38] - 【python】—— 基础语法(一) - MaxSSL

注意5: // 是取整除法(也叫地板除). 整数除以整数, 结果还是整数(舍弃小数部分, 并向下取整. 不是四舍五入)

图片[39] - 【python】—— 基础语法(一) - MaxSSL

【小结】

图片[40] - 【python】—— 基础语法(一) - MaxSSL


2、关系运算符

像 = == != 这一系列的运算符称为 关系运算符, 它们是在比较操作数之间的关系.

其中

  • <= 是 "小于等于"
  • >= 是 “大于等于”
  • == 是 “等于”
  • != 是 “不等于”

(1) 如果关系符合, 则表达式返回 True. 如果关系不符合, 则表达式返回 False

图片[41] - 【python】—— 基础语法(一) - MaxSSL

(2) 关系运算符不光针对整数/浮点数进行比较, 还能针对字符串进行比较.

图片[42] - 【python】—— 基础语法(一) - MaxSSL

【注意】

  • 直接使用 == 或者 != 即可对字符串内容判定相等. (这一点和 C / Java 不同).
  • 字符串比较大小, 规则是 “字典序”

关于字典序:

想象一个英文词典, 上面的单词都是按照字母顺序排列. 如果首个字母相同, 就比较第二个字母. (就 比如著名单词 abandon).

我们认为一个单词在词典上越靠前, 就越小. 越靠后, 就越大.

(3) 对于浮点数来说, 不要使用 == 判定相等.

图片[43] - 【python】—— 基础语法(一) - MaxSSL

注意: 浮点数在计算机中的表示并不是精确的! 在计算过程中, 就容易出现非常小的误差.

图片[44] - 【python】—— 基础语法(一) - MaxSSL

  • 可以看到, 0.1 + 0.2 的结果并非是 0.3 , 而是带了个小尾巴.;
  • 虽然这个尾巴非常小了, 但是 == 是锱铢 必较的, 仍然会导致 == 的结果为 False

不止是 Python 如此, 主流编程语言都是如此. 这个是 IEEE754 标准规定的浮点数格式所引入的问题. 此处我们不做过多讨论.

正确的比较方式: 不再严格比较相等了, 而是判定差值小于允许的误差范围.

a = 0.1 + 0.2b = 0.3print(-0.000001 < (a - b)< 0.000001)
  • 实际工程实践中, 误差在所难免, 只要保证误差在合理范围内即可.

【小结】

图片[45] - 【python】—— 基础语法(一) - MaxSSL


3、逻辑运算符

像 【and or not 】这一系列的运算符称为 逻辑运算符.

  • and 并且. 两侧操作数均为 True, 最终结果为 True. 否则为 False. (一假则假)
  • or 或者. 两侧操作数均为 False, 最终结果为 False. 否则为 True. (一真则真)
  • not 逻辑取反. 操作数本身为 True, 则返回 False. 本身为 False, 则返回 True.

此处说的 “并且” 和 “或者”, 就是我们日常生活中使用的 “并且” 和 “或者”.

想象一下未来丈母娘问你要彩礼, 什么叫做 “有房并且有车”, 什么叫做 “有房或者有车”.

图片[46] - 【python】—— 基础语法(一) - MaxSSL

一种特殊写法

  • a < b and b < c 这个操作等价于 a < b < c . 这个设定和大部分编程语言都不相同.

关于短路求值

和其他编程语言类似, Python 也存在短路求值的规则.

  • 对于 and, 如果左侧表达式为 False, 则整体一定为 False, 右侧表达式不再执行.
  • 对于 or, 如果左侧表达式为 True, 则整体一定为 True, 右侧表达式不再执行.

图片[47] - 【python】—— 基础语法(一) - MaxSSL

  • 上述代码没有抛出异常, 说明右侧的除以 0 操作没有真正执行.

【小结】

图片[48] - 【python】—— 基础语法(一) - MaxSSL


4、赋值运算符

(1) = 的使用

  • = 表示赋值. 这个我们已经用过很多次了. 注意和 == 区分.
  • = 除了基本的用法之外, 还可以同时针对多个变量进行赋值.

链式赋值

a = b = 10

多元赋值

a, b = 10, 20

代码实例: 交换两个变量

  • 基础写法
a = 10b = 20tmp = aa = bb = tmp
  • 基于多元赋值
a = 10b = 20a, b = b, a

输出如下:

图片[49] - 【python】—— 基础语法(一) - MaxSSL

(2) 复合赋值运算符

Python 还有一些 复合赋值运算符.

例如 += -= *= /= %= 其中 a += 1 等价于 a = a + 1 . 其他复合赋值运算符也是同理.

图片[50] - 【python】—— 基础语法(一) - MaxSSL

【注意】

  1. 像 C++ / Java 中, 存在 ++ — 这样的自增/自减运算符;
  2. Python 中则不支持这种运算. 如果需要使用, 则直接使用 += 1 或者 -= 1

其他…

除了上述之外, Python 中还有一些运算符, 比如 身份运算符 (is, is not), 成员运算符 (in, not in), 位运算符 ( & | ~ ^ >) 等.

此处咱们暂时不介绍.


总结

以上便是本文的全部内容了。感谢大家的观看与支持!!!

图片[51] - 【python】—— 基础语法(一) - MaxSSL

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享