文章目录
前言
一、python的变量
1.python的基本变量
2.python的命名规则:
二、python的数据类型
1.2.整型(int)
2. 浮点型(float)
3.字符串(str)
4.布尔值(bool)
5.空值(None)
6.类型检测(type())
三、python的数据类型转换
1.整型转换(int())
2.浮点型转换(float())
3.字符串转换(str())
4.布尔值转换(bool())
5.类型转换总结表
四、总结
1. 变量核心要点
2. 6大核心数据类型速查表
3.类型转换黄金法则
亲爱的开发者朋友们,欢迎来到Python编程基础的世界!无论你是刚从其他语言转投Python阵营,还是第一次接触编程,变量与数据类型都是必须跨越的第一道关卡。
在CSDN社区的日常答疑中,我们注意到:
70%的Python初学者错误源于数据类型理解不透彻
90%的算法错误可追溯到变量使用不当
数据类型转换问题是项目中最常遇到的兼容性挑战
变量是存储数据的容器。Python中变量定义无需声明类型,直接赋值即可:
name = "Alice" # 字符串变量
age = 25 # 整型变量
height = 1.65 # 浮点型变量
is_student = True # 布尔型变量
1.变量名只能包括数字,字母,下滑线,数字不能做为开头
2.区分大小写
3.不能使用关键字(以及内置函数)
4.如果变量名是多个英文单词 推荐 使用全小写 使用下划线分隔
5.变量名要有一定意义
6.如果一个标识符是全大写的 则认为他是一个常量(只是约定,不是强制)
特点:
表示整数值
可用二进制(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
特点:
表示小数
支持科学计数法(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
声明方式:
单引号:'文本'
双引号:"文本"
三引号:'''多行文本'''
或"""多行文本"""
转义字符:
\n
:换行符
\t
:制表符(缩进)
\\
:反斜杠本身
# 字符串示例
name = 'Alice' # 单引号
message = "Hello, Python!" # 双引号
path = "C:\\python\\" # 转义反斜杠
# 三引号多行文本
docstring = '''
Python文档字符串(Docstring):
通常用于函数说明、类注释和模块文档
支持多行文本无需特殊处理
'''
print(docstring)
# 转义字符使用
print("第一行\n第二行\t缩进处理") # 输出带换行和缩进的文本
特点:
仅有True
和False
两个值
通常用于条件判断和逻辑运算
注意首字母大写
# 布尔值示例
is_adult = True
has_license = False
# 实际应用
age = 18
print(age >= 18) # 输出: True
print(10 == "10") # 输出: False
特点:
表示空值或无值
特殊的单例对象(内存中只有一个None)
常用于变量初始化
# None使用示例
uninitialized = None
result = None
# 典型应用场景
def find_user(id):
# 如果未找到用户返回None
return None
user = find_user(999)
if user is None:
print("用户不存在") # 会执行此句
方法:
type(变量)
:返回变量类型
isinstance(变量, 类型)
:检查类型是否匹配(推荐)
# 类型检测示例
print(type(10)) #
print(type(3.14)) #
print(type("text")) #
print(type(True)) #
print(type(None)) #
# 检查类型正确方式
value = 100
print(isinstance(value, int)) # True
print(isinstance(value, float)) # False
数据类型总结表
数据类型 |
表示方式 |
示例 |
类型检测 |
---|---|---|---|
整型(int) |
整数 |
|
|
浮点型(float) |
小数/科学计数 |
|
|
字符串(str) |
单/双/三引号 |
|
|
布尔值(bool) |
True/False |
|
|
空值(None) |
None |
|
|
转换规则:
浮点数转换:直接舍去小数部分(不四舍五入)
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") # 包含字母
转换规则:
整数转浮点数:添加 .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") # 包含字母
转换规则:
万能转换:将任何对象转为可读字符串
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"
转换规则:
基本转换逻辑:
# 假值(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
转换函数 |
可转换类型 |
示例 |
转换规则 |
---|---|---|---|
int() |
浮点数 |
|
舍去小数 |
数字字符串 |
|
需纯数字 |
|
布尔值 |
|
T=1, F=0 |
|
float() |
整数 |
|
添加.0 |
数字字符串 |
|
支持小数和e |
|
str() |
任意类型 |
|
转为字符串 |
|
保留原意 |
||
bool() |
数字 |
|
0为假 |
字符串 |
|
空串为假 |
|
容器 |
|
空容器为假 |
注意:数据类型转换在数据处理中极为常用,特别是在:
用户输入处理(input()
始终返回字符串)
不同系统接口数据对接
数值计算前的类型检查
定义本质:动态类型标签(a=10
→ a="text"
无需重声明)
命名铁律:
严禁关键字(如 and
, while
)
数字不能开头(2var
❌)
大小写敏感(age≠Age
)
内存机制:变量存储的是数据地址而非数据本身
类型 |
标识 |
特征 |
高频操作 |
---|---|---|---|
整型 |
|
整数 |
|
浮点型 |
|
小数/科学计数(3e8) |
|
字符串 |
|
单引号/双引号/三引号 |
切片 |
布尔型 |
|
|
逻辑判断 |
列表 |
|
可变序列 |
|
空值 |
|
唯一值 |
变量初始化占位 |
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