【Python 基础 2022 最新】第二课 变量 & 数据类型
概述
从今天开始, 小白我将带领大家学习一下 Python 零基础入门的内容. 本专栏会以讲解 + 练习的模式, 带领大家熟悉 Python 的语法, 应用, 以及代码的基础逻辑.
变量
变量是存储在内存中的值, 创建变量时我们会在内存中开辟一个空间. 变量用于存数据, 在 Python 中变量无需声明.
创建变量
例子:
a = 10 # 创建变量a, 并赋值为10
b = "我是小白呀" # 创建变量b, 并赋值为 "我是小白呀"
print(a, b) # 调试输出
输出结果:
10 我是小白呀
注: print 函数用于输出变量的值
背后的逻辑
Python 中的内存空间分为三部分: 代码区, 静态数据区, 和动态数据区. 动态数据区又分为栈和堆. (了解即可)
简单画一下上面代码的背后逻辑:
- 在栈中开辟一块空间, 创建变量 a, 变量 a 指向堆中的值 10
- 在栈中开辟一块空间, 创建变量 b, 变量 b 指向堆中的值 “我是小白呀”
- 输出流通过栈中的方法
print() , 提取堆中变量对应的值, 并输出在控制台上
常见错误
错误 1, 调用未创建的变量:
a = 1 # 定义a变量
print(b) # 尝试输出未定义的b变量
输出:
Traceback (most recent call last):
File "C:/Users/Windows/Desktop/讲课/第一课 变量常见错误.py", line 2, in <module>
print(b) # 尝试输出未定义的b变量
NameError: name 'b' is not defined
数据类型
在 Python 中变量无需制定类型.
Python 中的数据类型有以下几种:
- 数字型:
- 整型 (int)
- 浮点型 (float)
- 布尔型 (bool)
- 非数字型:
- 字符串 (string)
- 列表 (list)
- 元组 (tuple)
- 字典 (dict)
数字型类型
例子:
a = 1 # 整形 (int) 变量
b = 1.23 # 浮点型 (float) 变量
c = True # 布尔型 (bool)
print(a, b, c) # 调试输出变量值
print(type(a), type(b), type(c)) # 调试输出变量类型
输出:
1 1.23 True
<class 'int'> <class 'float'> <class 'bool'>
注: 通过type() 函数, python 会返回变量的类型.
非数字型
例子:
d = "我是小白呀" # 字符串(string)
e = [1, 2, 3] # 列表 (list)
f = (1, 2, 3) # 元组 (tuple)
g = {"课程内容": "Python 基础 2022 最新"} # 字典 (dict)
print(d, e, f, g) # 调试输出变量值
print(type(d), type(e), type(f), type(g)) # 调试输出变量类型
输出结果:
我是小白呀 [1, 2, 3] (1, 2, 3) {'课程内容': 'Python 基础 2022 最新'}
<class 'str'> <class 'list'> <class 'tuple'> <class 'dict'>
注: 通过type() 函数, python 会返回变量的类型.
数据类型转换
浮点转整数
例子:
a = 1.23 # 创建浮点型 (float)
b = int(a) # 将浮点型转换为整数型 (int)
print(a, b) # 调试输出变量值
print(type(a), type(b)) # 调试输出变量类型
输出结果:
1.23 1
<class 'float'> <class 'int'>
整数转布尔
例子:
a = 2 # 创建整数型 (int)
b = bool(a) # 将整数型转换为布尔 (bool)
print(a, b) # 调试输出变量值
print(type(a), type(b)) # 调试输出变量类型
输出结果:
True
<class 'int'> <class 'bool'>
注: 当非 0 的数字转换为布尔的时候为 True, 反之为 False.
常见错误
例子:
a = "我是小白呀" # 创建字符串
b = int(a) # 强转为整数型
print(a, b) # 调试输出变量值
print(type(a), type(b)) # 调试输出变量类型
输出结果:
Traceback (most recent call last):
File "C:/Users/Windows/Desktop/讲课/第一课 数据类型转换.py", line 21, in <module>
b = int(a)
ValueError: invalid literal for int() with base 10: '我是小白呀'
注: 某些类型之间不能进行强制转换.
|