变量与数据类型
什么是变量
变量是程序中用于存储数据的容器。在Python中,变量不需要显式声明类型,赋值时自动创建。变量本质上是一个指向内存中对象的引用(名字)。
# 赋值操作创建变量
name = "小明"
age = 25
height = 1.75
is_student = True
print(name) # 输出: 小明
print(age) # 输出: 25
变量命名规则
Python的变量命名有严格的规则:
# 合法的变量名
student_name = "张三" # 使用下划线连接(推荐蛇形命名法)
_private = 10 # 以开头表示私有约定
count2 = 100 # 可以包含数字
MAX_SIZE = 1024 # 常量通常用全大写
# 非法的变量名
# 2name = "错误" # 不能以数字开头
# my-name = "错误" # 不能包含连字符
# class = "错误" # 不能使用保留字
命名建议:变量名应具有描述性,使用小写字母和下划线,让代码自文档化。
基本数据类型
Python有四种基本数据类型:
整数(int)
整数是没有小数点的数字,可以是正数、负数或零。Python的整数没有大小限制。
a = 42
b = -100
big_number = 999999999999999999999999
# 不同进制表示
binary = 0b1010 # 二进制,值为10
octal = 0o17 # 八进制,值为15
hexadecimal = 0xFF # 十六进制,值为255
print(type(a)) # 输出: <class 'int'>
浮点数(float)
浮点数是带有小数点的数字,用于表示精确的数值。由于计算机存储方式的原因,浮点数运算可能存在精度问题。
pi = 3.14159
temperature = -5.5
speed_of_light = 3e8 # 科学计数法,表示 3 × 10⁸
# 浮点数精度问题
print(0.1 + 0.2) # 输出: 0.30000000000000004
print(0.1 + 0.2 == 0.3) # 输出: False
# 精确计算需要使用decimal模块
from decimal import Decimal
print(Decimal('0.1') + Decimal('0.2')) # 输出: 0.3
布尔值(bool)
布尔值只有两个:True 和 False。它们常用于条件判断和逻辑运算。
is_sunny = True
is_raining = False
# 布尔值在数字运算中,True=1,False=0
print(True + True) # 输出: 2
print(False * 10) # 输出: 0
# 比较运算的结果是布尔值
print(5 > 3) # 输出: True
print(10 == 20) # 输出: False
字符串(str)
字符串是由字符组成的序列,用单引号或双引号包裹。Python的字符串是不可变的。
greeting = "你好,世界"
name = '小明'
address = "北京市朝阳区"
# 多行字符串
poem = """
白日依山尽,
黄河入海流。
欲穷千里目,
更上一层楼。
"""
# 字符串长度
print(len(greeting)) # 输出: 6
类型转换
Python允许在不同类型之间进行转换:
# 整数转字符串
age = 25
age_str = str(age)
print(type(age_str)) # 输出: <class 'str'>
# 字符串转整数
num_str = "100"
num = int(num_str)
print(num + 50) # 输出: 150
# 整数转浮点数
x = float(10)
print(x) # 输出: 10.0
# 浮点数转整数(截断小数部分)
y = int(3.7)
print(y) # 输出: 3
动态类型
Python是动态类型语言,变量可以随时改变类型:
x = 10 # x 是整数
print(type(x)) # <class 'int'>
x = "Hello" # x 现在是字符串
print(type(x)) # <class 'str'>
x = [1, 2, 3] # x 现在是列表
print(type(x)) # <class 'list'>
总结
变量和数据类型是编程的基础。掌握了整数、浮点数、布尔值和字符串这四种基本类型后,你就可以开始编写简单的程序了。下一节我们将学习Python的运算符,用它们来操作这些数据。