十、变量
十、变量
(1)为什么需要变量
-
一个程序就是一个世界
-
变量是程序的基本组成单位
-
不论是使用哪种高级程序语言编写程序,变量都是其程序的基本组成单位
-
变量有三个基本要素(类型+名称+值)
-
应用实例
# @File : var_example.py # @Time : 2026/6/26 15:41 # 定义一个变量,变量的名称a,变量的值是1, 1是int类型(整数类型) a = 1 # 定义一个变量,变量的名称b,变量的值是2, 2是int类型(整数类型) b = 2 # 变量b的值修改成8,变量b的值就是8,8是int类型 b = 8 print("a的值是", a, "类型是", type(a)) # a的值是 1 类型是 <class 'int'> print("b的值是", b, "类型是", type(b)) # b的值是 8 类型是 <class 'int'> -
-
当程序/代码执行后,变量的值是存在计算机内存的
内存(Memory)是计算机的重要部件,它用于暂时存放CPU中的运算数据,以及与硬盘等外部存储交换的数据。它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行

(2)变量的介绍
-
变量的概念。
-
变量相当于内存中一个数据存储空间的表示
-
你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)。
-
需要先定义变量,才能使用,否则会提示not defined
# 变量使用的错误用法 print(c) # name 'c' is not defined
-
(3)变量快速入门
- 演示记录人的信息并输出的程序
# @File : 02_quick_start.py
# @Time : 2026/6/26 16:02
name = "tom" # 字符串
age = 20 # 整形
score = 80.4 # 浮点型
gender = "男" # 字符串
# 输出信息
print("个人信息如下")
print(name)
print(age)
print(score)
print(gender)
# 输出信息
print("个人信息如下", name, age,score,gender)
(4)格式化输出
-
%操作符
参考: https://blog.csdn.net/hesongzefairy/article/details/1041794192) -
# @File : 03_format_output.py.py # @Time : 2026/6/26 16:32 age = 80 score = 77.5 gender = '男' name = "贾宝玉" # % 操作符输出 print("个人信息: %s %d %s %.2f" %(name, age, gender, score)) # %.2f"保留两位小数 -
format()函数
参考:https://www.runoob.com/python/att-string-format.html
# format()函数 print("个人信息: {} {} {} {}".format(name, age, gender, score)) -
If-strings【推荐】
参考: https://blog.csdn.net/weixin_44200553/article/details/130408971print(f"个人信息:{name} {age} {score} {gender}")
(5)程序中+号的使用
-
当左右两边都是数值型时,则做加法运算
-
当左右两边都是字符串,则做拼接运算
-
举例说明
name = "king" score = 50.8 print(score + 90) # 140.8 print(name + " hi") # king hi print("100" + "98") # 10098 print(34.5 + 100) #134.5 # print(2 + "5") # 报错
(6)数据类型
-
基本数据类型-目前用到的
类型 描述 整型int 整数:比如1,-1,200等 浮点数float 小数:比如1.1-4.5900.9等 布尔值bool 布尔值就是我们常说的逻辑,可以理解为对(True)或错(False) 字符串(string) 字符串就是字符组成的一串内容,Python中用成对的单引号或双引号括起来,比如“~hello” - Python中的变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
- 我们所说的"类型"是变量所指的内存数据的类型。
-
type()函数-查看数据类型
-
type()基本使用
语法:type(object)
object就是你要查看类型的数据,可以是一个数据的类型具体的数据(即:字面量),也可以是变量(也就是查看该变量指向的数据的类型)
# @File : 05_type_func.py # @Time : 2026/6/27 16:01 name = "tom" # 字符串 age = 20 # 整形 score = 80.4 # 浮点型 gender = "男" # 字符串 is_pass = True # bool类型 print(type(name)) print(type(age)) print(type(gender)) print(type(score)) print(type(is_pass)) # type可以直接查看具体的值(字面量)的类型 print(f"hello 的类型是{type("hello")}") print(f"1.1 的类型是{type(1.1)}") print(f"30 的类型是{type(30)}") print(f"True 的类型是{type(True)}")
-
(7)整数类型
-
Python整型就是用于存放整数值的,比如12,30,3456,-1等等
-
整数使用的细节
-
Python 中的型, 可以表示大的数(官方: the limit (4300 digits) for integer)
# 在Python中,int可以表达很大的数 # ValueError: Exceeds the limit (4300 digits) for integer string conversion; use sys.set_int_max_str_digits() to increase the limit n3 = 9 ** 8888 print("n3 = ", n3, type(n3)) -
Python的整数有十进制,十六进制,八进制,二进制
- 十进制就是我们最常见的写法,比如1、66、123等
- 十六进制写法:加前缀0x,由0-9和A-F的数字和字母组合
- 八进制写法:加前缀0o,由0-7数字组合
- 二进制写法:加前缀0b,只有0和1数字组合
- 运行时,会自动转换为十进制输出
print(10) # 10进制 print(0x10) # 16进制 print(0o10) # 8进制 print(0b10) # 二进制
-
-
Python中的整型占多少个字节?
字节(byte):计算机中基本存储单元
位(bit):计算机中的最小存储单位
1byte = 8 bit
-
字节数随着数字增大而增大(即:python整型是变长的)
-
每次的增量是4个字节
-
参考文档:
-
以n=3为例,画出在内存中如何存储的
n1 = 0 n2 = 1 n3 = 2 n4 = 2 ** 14 n5 = 2 ** 30 n6 = 2 ** 128 # 在Python中,可以通过sys.getsizeof返回对象(数据)的大小(按照字节单位返回) print(n1, sys.getsizeof(n1), "类型", type(n1)) print(n2, sys.getsizeof(n2), "类型", type(n2)) print(n3, sys.getsizeof(n3), "类型", type(n3)) print(n4, sys.getsizeof(n4), "类型", type(n4)) print(n5, sys.getsizeof(n5), "类型", type(n5)) print(n6, sys.getsizeof(n6), "类型", type(n6)) ''' 0 28 类型 <class 'int'> 1 28 类型 <class 'int'> 2 28 类型 <class 'int'> 16384 28 类型 <class 'int'> 16384 32 类型 <class 'int'> 1073741824 44 类型 <class 'int'> '''
-
(8)浮点类型
-
Python的浮点类型可以表示一个小数,比如123.4,7.8,-0.12等等
-
案例演示
n1 = 4.5 n2 = -3.6 print("n1 =", n1) print("n2 =", n2) -
浮点型使用细节
-
浮点数表示形式如下
-
十进制数形式:如:5.12,.512(必须有小数点)
-
科学计数法形式:如:5.12e2,5.12E-2
#科学计数法形式:如:5.12e2,5.12E-2 n5 = 5.12e2 # 5.12乘以10的2次方 n6 = 5.12E-2 # 5.12除以10的2次方 print("n5 =", n5) print("n6 =",n6)
-
-
浮点数有大小限制边界值为:
max=1.7976931348623157e+308
min=2.2250738585072014e-308
-
浮点类型计算后,存在精度的损失,可以使用 Decimal 类进行精确计算
-
案例说明
# 1. 为了避免浮点数的精度问题,可以使用Decimal 类进行精确计算 # 2. 如果使用Decimal 类,需要导入Decimal 类 from decimal import Decimal b = 8.1 / 3 # 2.7 b2 = Decimal("8.1") / Decimal("3") print(b) # 2.6999999999999997 print(b2) # 2.7
-
(9)布尔类型bool
-
基本介绍
-
布尔类型也叫bobI类型,取值True和False
-
True和False都是关键字,表示布尔值
-
bool 类型适于逻辑运算,一般用于程序流程控制
-
条件控制语句
-
循环控制语句
比如判断某个条件是否成立,或者在某个条件满足时执行某些代码
-
-
-
案例演示
# @File : 08_bool_detail.py # @Time : 2026/6/28 11:03 num1 = 100 num2 = 200 if num1 < num2: print("num1 < num2") # 表示把num1 > num2 的结果赋值给result变量 result = num1 > num2 print("result =", result) # result = False print("result的类型", type(result)) # result的类型 <class 'bool'> -
使用细节
-
布尔类型只有两个值:True 和False
-
布尔类型可以和其他数据类型进行比较,比如数字、字符串等。在比较时,Python会将True视为1,False 视为0
b1 = False b2 = True print(b1 + 10) # 10 print(b2 + 10) # 11 -
在Python中,非0被视为真值,0值被视为假值
if(0): print("你好") # 无输出 if(-1): print("嘻嘻") # 嘻嘻
-
(10)字符串str
-
基本介绍
-
字符串是Python中很常用的数据类型,通俗来说,字符串就是字符组成的一串内容
-
使用引号('或")包括起来,创建字符串
#使用引号('或")包括起来,创建字符串 str1 = 'tom说: "hello"' # str1 = "tom说: \"hello\"" print(str1) str2 = 'jack说: \'hi\'' # str2 = "jack说: 'hi'" print(str2) -
str就是string的缩写,在使用type()查看数据类型时,字符串类型显示的是str
print(f"str2的类型:{type(str2)}") # str2的类型:<class 'str'> -
通过加号可以连接字符串
-
-
使用注意事项
-
Python不支持单字符类型,单字符在Python中也是作为一个字符串使用
Str3 = 'A' print(type(Str3)) # <class 'str'> -
用三个单引号'''内容"',或三个双引号"""内容"""可以使字符串内容保持原样输出,在输出格式复杂的内容是比较有用的,比如输出一段代码.
content = """be the cat's whiskers/pyjamas (informal)最棒的东西(或主意、人等)to be the best thing, person, idea, etc.3 He thinks he's the cat's whiskers (= he has a high opinion of himself) 他自以为了不起""" print(content) -
在字符串前面加'r’可以使整个字符串不会被转义
str4 = "jeck\ntom\tking" print(str4) ''' jeck tom king ''' str4 = r"jeck\ntom\tking" print(str4) # jeck\ntom\tking
字符串驻留机制
说明:Python仅保存一份相同且不可变字符串,不同的值被存放在字符串的驻留池中,Python的驻留机制对相同的字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符串的地址赋给新创建的变量
-

str1 ="Hello"
str2 = "Hello"
str3 = "Hello"
print("str1的地址:", id(str1))
print("str2的地址:", id(str2))
print("str3的地址:", id(str3))
'''
str1的地址: 2114937253456
str2的地址: 2114937253456
str3的地址: 2114937253456
'''
-
驻留机制几种情况讨论(注意:需要在交互模式下 win+r->python)
-
字符串是由26个英文字母大小写,0-9,_组成
![image-20260628114909704]()
-
字符串长度为0或者1时
![image]()
-
字符串在编译时进行驻留,而非运行时
![image-20260628115118051]()
-
[-5,256]的整数数字
![image-20260628115236184]()
![image-20260628115251641]()
-
-
PyCharm对字符串行了优化处理,使得不在上述范围内也可以实现驻留机制
-
sys中的intern方法可以强制2个字符串指向同一个对象
-
![image-20260628115733749]()
(11)数据类型转换
-
隐式类型转换
-
Python变量的类型不是固定,会根据变量当前值在运行时决定的,可以通过内置函数type(变量)来查看其类型,这种方式就是隐式转换,有的书也称为自动转换
#Python根据该变量使用的(即当前值)上下文在运行时决定的 var1 =10 print(type(var1)) var1 = 1.1 print(type(var1)) var1="zkk" print(type(var1)) -
在运算的时候,数据类型会向高精度自动转换
#在运算的时候,数据类型会向高精度转换,float的精度高于int var2 = 10 var3 = 1.2 var4 = var2 + var3 print("var4=", var4, "var4的类型:", type(var4)) # var4= 11.2 var4的类型: <class 'float'> var2 = var2 + 0.1 print("var2=", var2, "var2的类型:", type(var2)) # var2= 10.1 var2的类型: <class 'float'>
-
-
显式类型转换
-
如果需要对变量数据类型进行转换,只需要将数据类型作为函数名即可,这种方式就是显示转换/强制转换
-
以下几个内置的函数可以完成数据类型之间的转换。函数会返回一个新的对象/值,就是强制转换后的结果
函数 描述 int(x[.base]) 将x转换为一个整数 float(x) 将x转换到一个浮点数 complex(real[.imagl) 创建一个复数 str(x) 将对象x转换为字符串 repr(x) 将对象x转换为表达式字符申 eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象 tuple(s) 将序列s转换为一个元组 list(s) 将序列s转换为一个列表 set(s) 转换为可变集合 dict(d) 创建一个字典。d必须是一个(key,value)元组序列。 frozenset(s) 转换为不可变集合 chr(x) 将一个整数转换为一个字符 # @File : 12_type_force_change.py # @Time : 2026/6/28 17:37 # 显示类型转换案例 i = 10 j = float(i) print("j的类型", type(j), "j=", j) # j的类型 <class 'float'> j= 10.0 k = str(i) print("k的类型", type(k), "k=", k) # k的类型 <class 'str'> k= 10
-
-
显式类型转换注意事项
-
不管什么值的int,float都可以转成str,str(x)将对象x转换为字符串
-
int转成float时,会增加小数部分,比如123 -> 123.0,float转成int时,会去掉小数部分比如123.65 -> 123
-
str 转int,float使用int(x),float(x)将对象x转换为int/float
-
在将str类型转成木数据类型时,要确保str值能够转成有效的数据,比如我们可以把"123",转成一个整数但是不能把"hello”转成一个整数,如果格式不正确,程序会报ValueError,程序就会终止
-
对一个变量进行强制转换,会返回一个数据/值,注意,强制转换后,并不会影响原变量的数据类型(即:不会影响原变量指向的数据/值的数据类型),示意图说明
![image-20260628175041807]()
-
-
练习
# @File : 13_type_change_exercise.py # @Time : 2026/6/28 17:52 # 课堂练习题5min思考 i = 10 j = float(i) print(type(i)) # int print(type(j)) # float i = j + 1 print(type(i)) # float print(type(j)) # float print(i) # 11.0 print(int(i)) # 11 print(type(i)) # float








浙公网安备 33010602011771号