文章目录
前言
亲爱的开发者朋友们,欢迎来到Python编程基础的世界!无论你是刚从其他语言转投Python阵营,还是第一次接触编程,变量与数据类型都是必须跨越的第一道关卡。
在CSDN社区的日常答疑中,我们注意到:
-
70%的Python初学者错误源于数据类型理解不透彻
-
90%的算法错误可追溯到变量使用不当
-
数据类型转换问题是项目中最常遇到的兼容性挑战
一、python的变量
1.python的基本变量
变量是存储数据的容器。Python中变量定义无需声明类型,直接赋值即可:
name = "Alice" # 字符串变量
age = 25 # 整型变量
height = 1.65 # 浮点型变量
is_student = True # 布尔型变量
2.python的命名规则:
1.变量名只能包括数字,字母,下滑线,数字不能做为开头
2.区分大小写
3.不能使用关键字(以及内置函数)
4.如果变量名是多个英文单词 推荐 使用全小写 使用下划线分隔
5.变量名要有一定意义
6.如果一个标识符是全大写的 则认为他是一个常量(只是约定,不是强制)
二、python的数据类型
1.2.整型(int)
特点:
-
表示整数值
-
可用二进制(
0b
开头)、八进制(0o
开头)、十六进制(0x
开头)声明 -
内置
bin()
函数可将十进制转为二进制
# 整数声明示例
age = 25 # 十进制
binary_num = 0b11001 # 二进制 (等价于十进制25)
hex_num = 0x19 # 十六进制 (等价于十进制25)
# 进制转换示例
print(bin(25)) # 输出: 0b11001
print(binary_num) # 输出: 25(自动转为十进制)
print(hex_num) # 输出: 25
2. 浮点型(float)
特点:
-
表示小数
-
支持科学计数法(
3e8
表示3×10⁸) -
具有精度问题(0.1 + 0.2 ≠ 0.3)
# 浮点数声明示例
price = 9.99
sci_num = 3e8 # 300,000,000(光速)
sci_num2 = 314e-2 # 3.14
# 精度问题示例
print(0.1 + 0.2) # 输出: 0.30000000000000004(精度误差)
print(3.14 == 314e-2) # 输出: True
3.字符串(str)
声明方式:
-
单引号:
'文本'
-
双引号:
"文本"
-
三引号:
'''多行文本'''
或"""多行文本"""
转义字符:
-
\n
:换行符 -
\t
:制表符(缩进) -
\\
:反斜杠本身
# 字符串示例
name = 'Alice' # 单引号
message = "Hello, Python!" # 双引号
path = "C:\\python\\" # 转义反斜杠
# 三引号多行文本
docstring = '''
Python文档字符串(Docstring):
通常用于函数说明、类注释和模块文档
支持多行文本无需特殊处理
'''
print(docstring)
# 转义字符使用
print("第一行\n第二行\t缩进处理") # 输出带换行和缩进的文本
4.布尔值(bool)
特点:
-
仅有
True
和False
两个值 -
通常用于条件判断和逻辑运算
-
注意首字母大写
# 布尔值示例
is_adult = True
has_license = False
# 实际应用
age = 18
print(age >= 18) # 输出: True
print(10 == "10") # 输出: False
5.空值(None)
特点:
-
表示空值或无值
-
特殊的单例对象(内存中只有一个None)
-
常用于变量初始化
# None使用示例
uninitialized = None
result = None
# 典型应用场景
def find_user(id):
# 如果未找到用户返回None
return None
user = find_user(999)
if user is None:
print("用户不存在") # 会执行此句
6.类型检测(type())
方法:
-
type(变量)
:返回变量类型 -
isinstance(变量, 类型)
:检查类型是否匹配(推荐)
# 类型检测示例
print(type(10)) # <class 'int'>
print(type(3.14)) # <class 'float'>
print(type("text")) # <class 'str'>
print(type(True)) # <class 'bool'>
print(type(None)) # <class 'NoneType'>
# 检查类型正确方式
value = 100
print(isinstance(value, int)) # True
print(isinstance(value, float)) # False
数据类型总结表
数据类型 | 表示方式 | 示例 | 类型检测 |
---|---|---|---|
整型(int) | 整数 |
|
|
浮点型(float) | 小数/科学计数 |
|
|
字符串(str) | 单/双/三引号 |
|
|
布尔值(bool) | True/False |
|
|
空值(None) | None |
|
|
三、python的数据类型转换
1.整型转换(int())
转换规则:
浮点数转换:直接舍去小数部分(不四舍五入)
print(int(3.14)) # 输出:3(取整)
print(int(-2.9)) # 输出:-2(负数向零取整)
print(int("42")) # 输出:42(十进制)
print(int("1010", 2)) # 输出:10(二进制字符串转十进制)
布尔值转换:
print(int(True)) # 输出:1
print(int(False)) # 输出:0
非数字字符串转换:
会报错
# 以下会导致 ValueError: invalid literal for int()
# int("42.5") # 包含小数点
# int("abc") # 包含字母
2.浮点型转换(float())
转换规则:
整数转浮点数:添加 .0
后缀
print(float(5)) # 输出:5.0
数字字符串转换:
print(float("3.14")) # 输出:3.14
print(float("2.5e2")) # 输出:250.0(科学计数法)
混合内容转换:
print(float(True)) # 输出:1.0
print(float(False)) # 输出:0.0
无效字符串处理:
# 以下会导致 ValueError
# float("$9.99") # 包含货币符号
# float("10a") # 包含字母
3.字符串转换(str())
转换规则:
万能转换:将任何对象转为可读字符串
print(str(100)) # "100"
print(str(3.14)) # "3.14"
print(str(True)) # "True"
复杂对象转换:
print(str([1, 2, 3])) # "[1, 2, 3]"
print(str({"name": "Alice"})) # "{'name': 'Alice'}"
print(str(None)) # "None"
4.布尔值转换(bool())
转换规则:
基本转换逻辑:
# 假值(False)
print(bool(0)) # False
print(bool("")) # False(空字符串)
print(bool(False)) # False
print(bool(None)) # False
# 真值(True)→ 除假值外都是True
print(bool(1)) # True
print(bool(" ")) # True(含空格的字符串)
print(bool([])) # True(空列表)
print(bool(0.0001)) # True
特殊容器转换:
# 容器空值处理
print(bool([])) # False → 空列表
print(bool({})) # False → 空字典
print(bool(())) # False → 空元组
# 非空容器
print(bool([0])) # True
5.类型转换总结表
转换函数 | 可转换类型 | 示例 | 转换规则 |
---|---|---|---|
int() | 浮点数 |
| 舍去小数 |
数字字符串 |
| 需纯数字 | |
布尔值 |
| T=1, F=0 | |
float() | 整数 |
| 添加.0 |
数字字符串 |
| 支持小数和e | |
str() | 任意类型 |
| 转为字符串 |
| 保留原意 | ||
bool() | 数字 |
| 0为假 |
字符串 |
| 空串为假 | |
容器 |
| 空容器为假 |
注意:数据类型转换在数据处理中极为常用,特别是在:
-
用户输入处理(
input()
始终返回字符串) -
不同系统接口数据对接
-
数值计算前的类型检查
四、总结
1. 变量核心要点
-
定义本质:动态类型标签(
a=10
→a="text"
无需重声明) -
命名铁律:
-
严禁关键字(如
and
,while
) -
数字不能开头(
2var
❌) -
大小写敏感(
age≠Age
)
-
-
内存机制:变量存储的是数据地址而非数据本身
2. 6大核心数据类型速查表
类型 | 标识 | 特征 | 高频操作 |
---|---|---|---|
整型 |
| 整数 |
|
浮点型 |
| 小数/科学计数(3e8) |
|
字符串 |
| 单引号/双引号/三引号 | 切片 |
布尔型 |
|
| 逻辑判断 |
列表 |
| 可变序列 |
|
空值 |
| 唯一值 | 变量初始化占位 |
3.类型转换黄金法则
1.智能转换套路:
# 从字符串到数值的标准处理流程
user_input = input("请输入数字:")
if user_input.isdigit(): # 先检测再转换
num = float(user_input) * 1.1
else:
print("输入无效!")
2.转换函数四天王:
| 函数 | 典型场景 | 高危陷阱 |
|------|----------|----------|
| int()
| 网页分页参数→数值 | int("3.14")
❌ 需先转float |
| float()
| 金融数据计算 | float("$9.99")
❌ 需去除货币符号 |
| str()
| 数据拼接日志输出 | 自动调用对象的__str__
方法 |
| bool()
| 条件判断简化 | bool([])
→False(空容器为假) |
3.必知避坑指南:
浮点精度陷阱:0.1+0.2 ≠ 0.3
→ 用round()
或decimal
模块
空值检测:总是用is None
而非== None
布尔转换:非0数字、非空容器均为True