第3集 变量与数据类型基础

1. 变量概念

1.1 什么是变量?

变量是程序中用于存储数据的容器。可以把变量想象成一个盒子,盒子里面可以装不同的东西(数据),我们给盒子贴上标签(变量名)来区分它。

变量名  =  数据
标签   →  盒子内容

1.2 变量的命名规则

命名规则

  1. 变量名只能包含字母、数字和下划线
  2. 变量名不能以数字开头
  3. 变量名不能使用Python关键字
  4. 变量名区分大小写(nameName是不同的变量)

命名示例

# 正确的变量名
name = "张三"
age = 18
user_name = "admin"
_score = 100
name2 = "李四"

# 错误的变量名
2name = "错误"      # 不能以数字开头
user-name = "错误"   # 不能使用连字符
class = "错误"       # class是Python关键字

命名建议

  • 使用有意义的名称,便于理解
  • 使用小写字母和下划线组合(蛇形命名法)
  • 避免使用单个字母(除非是循环变量)
# 推荐
student_name = "张三"
user_age = 18
total_score = 100

# 不推荐
n = "张三"
a = 18
ts = 100

1.3 变量的赋值

# 基本赋值
name = "张三"
age = 18

# 同时给多个变量赋值
x = y = z = 0

# 同时给多个变量赋不同的值
a, b, c = 1, 2, 3

# 交换两个变量的值
x, y = y, x

2. 数据类型概述

Python中主要有以下几种基本数据类型:

数据类型 说明 示例
int 整数 10, -5, 0
float 浮点数 3.14, -2.5, 0.01
str 字符串 "Hello", '你好'
bool 布尔值 True, False
list 列表 [1, 2, 3]
tuple 元组 (1, 2, 3)
dict 字典 {'name': '张三'}
set 集合 {1, 2, 3}

3. 数字类型(int 和 float)

3.1 整数(int)

整数是没有小数部分的数字,可以是正数、负数或零。

# 正整数
positive = 100
print(positive)  # 输出:100

# 负整数
negative = -50
print(negative)  # 输出:-50

# 零
zero = 0
print(zero)  # 输出:0

# 大整数(Python支持任意大的整数)
big_number = 123456789012345678901234567890
print(big_number)  # 输出:123456789012345678901234567890

3.2 浮点数(float)

浮点数是有小数部分的数字,也叫实数。

# 正浮点数
pi = 3.14159
print(pi)  # 输出:3.14159

# 负浮点数
negative_float = -2.5
print(negative_float)  # 输出:-2.5

# 科学计数法
scientific = 1.23e5  # 1.23 × 10^5 = 123000
print(scientific)  # 输出:123000.0

# 小数浮点数
decimal = 0.5
print(decimal)  # 输出:0.5

3.3 浮点数精度问题

# 浮点数可能会有精度问题
result = 0.1 + 0.2
print(result)  # 输出:0.30000000000000004(不是精确的0.3)

# 解决方法:使用round()函数四舍五入
print(round(result, 2))  # 输出:0.3

4. 字符串类型(str)

字符串是由字符组成的序列,用单引号、双引号或三引号包围。

4.1 字符串的定义

# 使用单引号
str1 = 'Hello'
print(str1)  # 输出:Hello

# 使用双引号
str2 = "World"
print(str2)  # 输出:World

# 使用三引号(可以包含换行)
str3 = """
这是一个
多行字符串
"""
print(str3)

4.2 字符串的常用操作

# 字符串拼接
greeting = "Hello"
name = "World"
message = greeting + ", " + name + "!"
print(message)  # 输出:Hello, World!

# 字符串重复
stars = "*" * 10
print(stars)  # 输出:**********

# 字符串长度
text = "Python"
print(len(text))  # 输出:6

# 字符串索引(从0开始)
name = "Python"
print(name[0])   # 输出:P
print(name[-1])  # 输出:n(最后一个字符)

4.3 字符串转义字符

# 换行符
print("第一行\n第二行")

# 制表符
print("姓名\t年龄")

# 引号转义
print("他说:\"你好!\"")

# 反斜杠
print("路径:C:\\Users\\")

5. 布尔类型(bool)

布尔类型只有两个值:True(真)和False(假)。

# 布尔值
is_student = True
is_teacher = False

print(is_student)   # 输出:True
print(is_teacher)   # 输出:False

# 比较运算的结果是布尔值
x = 10
y = 20

print(x == y)  # 输出:False
print(x < y)   # 输出:True
print(x != y)  # 输出:True

6. 查看数据类型

使用type()函数可以查看变量或值的数据类型。

# 查看各种数据类型
print(type(100))       # 输出:<class 'int'>
print(type(3.14))      # 输出:<class 'float'>
print(type("Hello"))   # 输出:<class 'str'>
print(type(True))      # 输出:<class 'bool'>

# 查看变量的类型
name = "张三"
age = 18
height = 1.75

print(type(name))    # 输出:<class 'str'>
print(type(age))     # 输出:<class 'int'>
print(type(height))  # 输出:<class 'float'>

7. 数据类型转换

7.1 转换为整数(int())

# 字符串转整数
str_num = "100"
num = int(str_num)
print(num)       # 输出:100
print(type(num)) # 输出:<class 'int'>

# 浮点数转整数(向下取整)
float_num = 3.9
int_num = int(float_num)
print(int_num)   # 输出:3

# 布尔值转整数
print(int(True))   # 输出:1
print(int(False))  # 输出:0

7.2 转换为浮点数(float())

# 整数转浮点数
int_num = 100
float_num = float(int_num)
print(float_num)   # 输出:100.0

# 字符串转浮点数
str_float = "3.14"
num = float(str_float)
print(num)  # 输出:3.14

7.3 转换为字符串(str())

# 数字转字符串
num1 = 100
num2 = 3.14

print(str(num1))  # 输出:"100"
print(str(num2))  # 输出:"3.14"

# 布尔值转字符串
print(str(True))   # 输出:"True"
print(str(False))  # 输出:"False"

8. 综合示例

8.1 学生信息管理

"""
学生信息管理程序
演示不同数据类型的使用
"""

# 学生信息
student_id = 1001        # 学号:整数
name = "张三"           # 姓名:字符串
age = 18                # 年龄:整数
height = 1.75           # 身高:浮点数
weight = 65.5           # 体重:浮点数
is_male = True          # 性别:布尔值
grades = [90, 85, 95]   # 成绩:列表

# 输出学生信息
print("=" * 40)
print("学生信息")
print("=" * 40)
print(f"学号:{student_id}")
print(f"姓名:{name}")
print(f"年龄:{age}岁")
print(f"身高:{height}米")
print(f"体重:{weight}公斤")
print(f"性别:{'男' if is_male else '女'}")
print(f"成绩:{grades}")
print("=" * 40)

# 计算BMI
bmi = weight / (height ** 2)
print(f"BMI指数:{bmi:.2f}")

8.2 数据类型检测器

"""
数据类型检测器
演示如何检测和转换数据类型
"""

# 定义不同类型的变量
values = [
    100,           # 整数
    3.14,          # 浮点数
    "Hello",       # 字符串
    True,          # 布尔值
    [1, 2, 3]      # 列表
]

# 检测并输出类型
print("数据类型检测")
print("-" * 40)

for value in values:
    print(f"值:{value:<10} 类型:{type(value).__name__}")

# 类型转换示例
print("\n类型转换示例")
print("-" * 40)

# 字符串转数字
str_num = "123"
print(f"字符串 '{str_num}' 转为整数:{int(str_num)}")
print(f"字符串 '{str_num}' 转为浮点数:{float(str_num)}")

# 数字转字符串
num = 456
print(f"数字 {num} 转为字符串:'{str(num)}'")

# 布尔值转数字
print(f"布尔值 {True} 转为整数:{int(True)}")
print(f"布尔值 {False} 转为整数:{int(False)}")

9. 常见错误

9.1 变量未定义

# 错误:使用未定义的变量
print(x)  # NameError: name 'x' is not defined

# 正确:先定义再使用
x = 10
print(x)

9.2 类型转换错误

# 错误:无法转换的字符串
num = int("abc")  # ValueError: invalid literal for int()

# 正确:确保字符串可以转换
num = int("123")
print(num)

9.3 运算类型不匹配

# 字符串和数字不能直接相加
text = "年龄:"
age = 18
# print(text + age)  # TypeError: can only concatenate str

# 正确:转换为字符串
print(text + str(age))  # 输出:年龄:18

10. 本集总结

本集我们学习了:

  • 变量的概念和命名规则
  • Python的基本数据类型(int、float、str、bool)
  • 如何查看数据类型
  • 如何进行数据类型转换
  • 各类型的基本操作

核心要点

  1. 变量名要有意义,遵循命名规则
  2. Python有丰富的数据类型,根据需求选择合适的类型
  3. 使用type()函数可以查看数据类型
  4. 类型转换时要注意数据的兼容性
  5. 布尔值TrueFalse在运算中等价于10

下一集预告:我们将学习基本输入输出操作,学习如何从键盘获取输入并格式化输出。

11. 课后练习

  1. 创建变量存储你的姓名、年龄、身高、体重,并输出这些信息
  2. 编写程序,计算圆的面积(半径=5),输出结果保留2位小数
  3. 将字符串"123.45"转换为浮点数,然后再转换为整数
  4. 判断以下变量的类型并输出:True3.14&quot;Python&quot;[1, 2, 3]
  5. 编写一个简单的数据类型检测程序,用户输入一个值,程序输出其类型

提示:理解数据类型是编程的基础,建议多动手实践,熟悉每种类型的特点和使用场景!

« 上一篇 第一个Python程序_HelloWorld 下一篇 » 基本输入输出操作