news 2026/4/23 13:58:15

Python--常量和变量

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python--常量和变量

目录

1.常量和表达式

2.变量和类型

2.1变量是什么

2.2变量的语法

2.3变量的类型

2.4动态类型特性


1.常量和表达式

我们可以把Python当成一个计算器,来进行一些算术运算
print(1 + 2 - 3) print(1 + 2 * 3) print(1 + 2 / 3)

注意:
  1. print是一个Python内置的函数,这个稍后详细介绍.
  2. 可以使用+ - * / ( )等运算符进行算术运算.先算乘除,后算加减.
  3. 运算符和数字之间,可以没有空格,也可以有多个空格.但是一般习惯上写一个空格(比较美观)
形如1 + 2 - 3这样是算式,在编程语言中称为表达式,算式的运算结果,称为表达式的返回值
其中1,2,3这种称为字面值常量,+ - * /这种称为运算符或者操作符
注意:熟悉 C / Java 的同学可能认为, 2 / 3 结果为 0 (小数部分被截断). 但是在 Python 中得到的结果则是 一个小数. 更符合日常使用的直觉

2.变量和类型

2.1变量是什么

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

示例

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

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

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

avg = (67.5 + 89.0 + 12.9 + 32.2) / 4 total = (67.5 - avg) ** 2 + (89.0 - avg) ** 2 + (12.9 - avg) ** 2 + (32.2 - avg) ** 2 result = total / 3 print(result)

注意: avg, total, result 均为变量. ** 在 Python 中表示乘方运算. ** 2 即为求平方.

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

2.2变量的语法

(1) 定义变量

a = 10

创建变量的语句非常简单, 其中

a 为变量名. 当我们创建很多个变量的时候, 就可以用名字来进行区分.

= 为赋值运算符, 表示把 = 右侧的数据放到 = 左侧的空间中.

注意: 变量的名字要遵守一定规则.

硬性规则(务必遵守) 变量名由数字字母下划线构成.

数字不能开头.

变量名不能和 "关键字" 重复.

变量名大小写敏感.

num 和 Num 是两个不同的变量名.

软性规则(建议遵守)

a = 10变量名使用有描述性的单词来表示, 尽量表达出变量的作用.

一个变量名可以由多个单词构成, 长一点没关系, 但是含义要清晰.

当变量名包含多个单词的时候, 建议使用 "驼峰命名法". 形如 totalCount , personInfo 这种, 除了 首个单词外, 剩余单词首字母大写.

数学上, 变量通常使用 x, y, z 这种简单的英文字母或者拉丁字母表示. 但是在编程中不建议这样使 用. 原因是编程中, 一个程序里通常会同时创建出很多个变量. 如果只是使用单个字母表示, 在变量多了 的时候, 就很难记住哪个变量是干啥的, 从而给维护程序带来了一定的困难. 因此我们更建议使用带 有明确描述性的名字, 来表示变量的用途.

(2) 使用变量

读取变量的值

a = 10 print(a)

修改变量的值

a = 20 print(a)

注意: 在 Python 中, 修改变量也是使用 = 运算, 看起来和定义变量没有明显区别.

当然, 也可以用一个变量的值赋给另外一个变量.

a = 10 b = 20 a = b print(a) print(b)

2.3变量的类型

变量里面存储的不仅仅是数字, 还可以存储其它种类的数据. 为了区分不同种类的数据, 我们引入了 "类型" 这样的概念.

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

a = 10 print(type(a))

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

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

(2) 浮点数(小数)

a = 0.5 print(type(a))

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

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

(3) 字符串

a = 'hello' print(type(a))

使用 ' ' 或者 " " 引起来的, 称为 字符串. 可以用来表示文本.

注意: 在 Python 中, 单引号构成的字符串和双引号构成的字符串, 没有区别. 'hello' 和 "hello" 是完 全等价的.

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

a = 'hello' print(len(a))

可以使用 + 针对两个字符串进行拼接.

a = 'hello' b = 'world' print(a + b)

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

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

(4) 布尔

布尔类型是一个特殊的类型, 取值只有两种, True (真) 和 False (假).

PS: 布尔类型也是数学上的一个概念. 我们初中就学过一个概念叫做 "命题" , 进一步的就可以判定命题的真假.

a = True print(type(a)) b = False print(type(b))

(5) 其他 除了上述类型之外, Python 中还有 list, tuple, dict, 自定义类型 等等.

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

2.4动态类型特性

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

a = 10 print(type(a)) a = 'hello' print(type(a))

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

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

动态类型特性是一把双刃剑. 对于中小型程序, 可以大大的解约代码量(比如写一段代码就可以同时支持多种类型). 对于大型程序, 则提高了模块之间的交互成本. (程序猿 A 提供的代码难以被 B 理解).

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 9:44:29

C++编程进阶:从熟练使用者到架构思维者的蜕变

设计模式在大型C项目中至关重要。单例模式需要考虑线程安全和资源释放;工厂模式需要结合智能指针管理对象生命周期;观察者模式在现代C中可通过信号槽机制实现。更重要的是,理解模式背后的设计原则——开闭原则、依赖倒置等,比单纯…

作者头像 李华
网站建设 2026/4/23 9:44:24

39、Linux网络服务:Samba与CUPS配置详解

Linux网络服务:Samba与CUPS配置详解 1. 概述 Red Hat Enterprise Linux 3支持与多种Microsoft Windows操作系统直接通信。Microsoft网络基于通用互联网文件系统(CIFS),它源于服务器消息块(SMB)协议。Samba是为所有Unix相关操作系统(包括Linux)开发的免费SMB服务器,并…

作者头像 李华
网站建设 2026/4/23 9:44:17

手持拍摄不再抖动:MediaPipe即时运动追踪技术全解析

手持拍摄不再抖动:MediaPipe即时运动追踪技术全解析 【免费下载链接】mediapipe Cross-platform, customizable ML solutions for live and streaming media. 项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe 还在为手机拍摄视频时画面晃动而烦…

作者头像 李华
网站建设 2026/4/23 9:52:10

5步搞定API文档自动化:Sponge框架让Protobuf秒变Swagger文档

5步搞定API文档自动化:Sponge框架让Protobuf秒变Swagger文档 【免费下载链接】sponge sponge is a powerful golang productivity tool that integrates code generation, web and microservice framework, basic development framework. 项目地址: https://gitco…

作者头像 李华
网站建设 2026/4/23 12:36:11

55、Linux系统技术指南:从基础到高级配置与管理

Linux系统技术指南:从基础到高级配置与管理 1. 守护进程与数据管理 守护进程在系统后台持续运行,为系统提供各种服务。网络守护进程负责网络相关的服务,如网络连接、数据传输等。其相关内容涵盖从基础概述到具体的网络守护进程详细介绍,涵盖范围在32 - 34页。在数据管理方…

作者头像 李华