当前位置:首页>python>自学Python第二周——基础语法(一)变量与数据类型

自学Python第二周——基础语法(一)变量与数据类型

  • 2026-10-11 06:39:03
自学Python第二周——基础语法(一)变量与数据类型

本周目标

  • 理解"变量"的概念,学会给数据起名字
  • 掌握Python的四种基本数据类型:数字、字符串、布尔值
  • 学会类型转换和基本输入输出
  • 能够编写一个简单的交互式程序

一、变量——给数据起个名字

1. 什么是变量?

变量就是一个装数据的盒子。你可以把数据存进去,给它贴个标签(变量名),以后通过这个标签就能找到里面的数据。

1
2
3
4
5
6
7
# 把数字 18 装进名为 age 的"盒子"里age = 18# 把字符串 "小明" 装进名为 name 的"盒子"里name = "小明"# 使用变量print(name)  # 输出:小明print(age)   # 输出:18

💡 类比理解:变量就像你家的储物箱——箱子上贴标签(变量名),箱子里放东西(数据)。你需要什么,就通过标签找到对应的箱子。

2. 变量的命名规则

给变量起名字需要遵守一些基本规则:

规则
正确示例
错误示例
只能包含字母、数字、下划线
age_1age-1
(不能有横杠)
不能以数字开头num11num
区分大小写Age
 和 age 是两个不同变量
—
不能使用Python关键字
my_classclass
(class是关键字)
见名知意(好习惯)
student_namea
(看不懂含义)
1
2
3
4
5
6
7
8
# ✅ 正确命名student_age = 20total_score = 95.5is_passed = True# ❌ 错误命名2nd_place = "亚军"   # 不能以数字开头my-name = "张三"     # 不能有横杠class = "一年级"     # class 是关键字

⚠️ AI方向的命名习惯:在机器学习项目中,我们常用 X_train 表示训练集特征,y_train 表示训练集标签,model 表示模型,loss 表示损失值——这些命名规范在后续学习中会自然形成。

3. 变量的重新赋值

变量里的值是可以改变的:

1
2
3
4
5
6
score = 80print(score)  # 80score = 95     # 重新赋值print(score)  # 95score = score + 10   # 在原来的基础上加10print(score)  # 105

二、数据类型(一)——数字(Numbers)

1. 整数(int)

整数就是没有小数点的数字:

1
2
3
4
5
age = 25year = 2026temperature = -5   # 可以是负数print(type(age))   # <class 'int'>

2. 浮点数(float)

浮点数就是带小数点的数字:

1
2
3
4
pi = 3.14159price = 99.9weight = -0.5print(type(pi))    # <class 'float'>

💡 AI小贴士:在AI领域中,神经网络的权重(weights)和偏置(biases)基本上都是浮点数。模型训练的过程,本质上就是不断调整这些浮点数的值。

3. 数字的运算

Python支持常见的数学运算,而且非常直观:

1
2
3
4
5
6
7
8
9
a = 10b = 3print(a + b)    # 加法 → 13print(a - b)    # 减法 → 7print(a * b)    # 乘法 → 30print(a / b)    # 除法 → 3.333...(注意:结果永远是浮点数)print(a // b)   # 整除 → 3(只保留整数部分)print(a % b)    # 取余(模运算)→ 1(10除以3余1)print(a ** b)   # 幂运算 → 10³ = 1000

特别注意:在Python中,/ 除法永远返回浮点数,哪怕能整除:

1
2
print(10 / 2)   # 5.0(是浮点数,不是整数5)

三、数据类型(二)——字符串(String)

1. 什么是字符串?

字符串就是一串文本,用引号包裹起来。单引号、双引号、三引号都可以:

1
2
3
4
5
6
7
# 三种写法,效果一样name = "张三"city = '北京'desc = """这是一个多行字符串"""   # 三引号可以换行print(name)    # 张三print(desc)    # 这是一个\n多行字符串

💡 AI小贴士:在自然语言处理(NLP)中,文本数据(评论、新闻、对话)全部是以字符串的形式存储和处理的。

2. 字符串的操作

拼接(+):把两个字符串连在一起

1
2
3
4
first_name = "张"last_name = "三"full_name = first_name + last_nameprint(full_name)   # 张三

重复(*):把字符串重复多次

1
2
line = "-" * 20print(line)        # --------------------

获取长度(len):

1
2
text = "Hello AI"print(len(text))   # 8(注意:空格也算一个字符)

3. 转义字符

有些特殊字符需要用 \ 开头来表示:

转义字符
含义
\n
换行
\t
制表符(Tab)
\\
输出一个反斜杠
\'
输出单引号
\"
输出双引号
1
2
3
4
5
6
print("Hello\nWorld")# 输出:# Hello# Worldprint("她说:\"你好\"")# 输出:她说:"你好"

4. 字符串的索引和切片(基础)

字符串中的每个字符都有编号(索引),从 0 开始:

1
2
3
4
5
6
7
8
9
10
11
text = "Python"# 索引:  P  y  t  h  o  n#        0  1  2  3  4  5print(text[0])   # P(第1个字符)print(text[1])   # y(第2个字符)print(text[-1])  # n(最后一个字符,-1表示倒数第1个)# 切片:取一段print(text[0:3]) # Pyt(从索引0取到索引2,不包含3)print(text[:3])  # Pyt(省略开头,表示从0开始)print(text[3:])  # hon(省略结尾,表示取到最后)

四、数据类型(三)——布尔值(Boolean)

布尔值只有两个:True(真)和 False(假)。注意首字母一定要大写!

1
2
3
is_sunny = Trueis_raining = Falseprint(type(is_sunny))  # <class 'bool'>

布尔值通常来自比较运算的结果:

1
2
3
4
5
age = 18print(age > 16)   # True(18大于16)print(age == 18)  # True(等于,注意是两个等号)print(age != 18)  # False(不等于)print(age >= 20)  # False

常见的比较运算符:

运算符
含义
示例
>
大于
5 > 3
 → True
<
小于
5 < 3
 → False
>=
大于等于
5 >= 5
 → True
<=
小于等于
5 <= 4
 → False
==
等于(注意是双等号)
5 == 5
 → True
!=
不等于
5 != 3
 → True

💡 AI小贴士:布尔值在AI中无处不在。比如模型判断"这张图片是不是猫"(True/False)、“预测准确率是否大于0.9”(True/False)——这些都是布尔逻辑的体现。

五、类型转换

不同类型的变量之间有时需要相互转换:

1
2
3
4
5
6
7
8
9
# 转整数print(int("123"))     # 123(字符串 → 整数)print(int(3.99))      # 3(浮点数 → 整数,直接截断,不四舍五入)# 转浮点数print(float("3.14"))  # 3.14(字符串 → 浮点数)print(float(5))       # 5.0(整数 → 浮点数)# 转字符串print(str(100))       # "100"(数字 → 字符串)print(str(True))      # "True"(布尔值 → 字符串)

⚠️ 常见错误:把无法转换的内容转成数字会报错

1
int("hello")   # ❌ ValueError:无法把"hello"转成数字

六、输入与输出

1. 输出——print()

print() 是我们最常用的输出函数,可以把内容打印到屏幕上:

1
2
3
4
5
6
7
8
9
print("Hello AI")print(123)print(True)# 一次输出多个内容,用逗号隔开name = "小明"age = 18print("姓名:", name, ",年龄:", age)# 输出:姓名: 小明 ,年龄: 18

2. 输入——input()

input() 可以让用户从键盘输入数据:

1
2
3
4
```pythonname = input("请输入你的名字:")print("你好,", name)

⚠️ 特别重要:input() 的返回值永远是字符串!

1
2
3
age = input("请输入你的年龄:")print(type(age))   # <class 'str'>print(age + 1)     # ❌ 报错!字符串不能和数字相加

如果用户输入的是数字,我们需要手动转换:

1
2
3
age = input("请输入你的年龄:")age = int(age)     # 转成整数print("明年你", age + 1, "岁")   # ✅ 正常运算

⚠️ 常见错误:如果用户输入"abc"然后你用 int() 转换,程序会崩溃。如何处理这种异常情况,我们会在第9周(异常处理)中学习。现阶段练习时,请确保输入正确格式的数字。

七、实战小项目:个人名片生成器

把我们本周学到的知识综合起来,做一个简单的交互式程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 个人名片生成器print("=" * 30)print("      个人名片生成器")print("=" * 30)# 获取用户信息name = input("请输入你的姓名:")age = input("请输入你的年龄:")city = input("请输入你的城市:")hobby = input("请输入你的爱好:")# 计算信息(年龄转成整数,并计算5年后多大)age_num = int(age)future_age = age_num + 5# 生成名片print("\n" + "=" * 30)print("         个 人 名 片")print("-" * 30)print("  姓名:", name)print("  年龄:", age, "岁")print("  城市:", city)print("  爱好:", hobby)print("-" * 30)print("  5年后你将", future_age, "岁")print("=" * 30)# 判断是否成年is_adult = age_num >= 18print("  是否成年:", is_adult)print("=" * 30)

运行效果示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
==============================      个人名片生成器==============================请输入你的姓名:林小夕请输入你的年龄:22请输入你的城市:上海请输入你的爱好:AI编程==============================         个 人 名 片------------------------------  姓名: 林小夕  年龄: 22 岁  城市: 上海  爱好: AI编程------------------------------  5年后你将 27 岁==============================  是否成年: True==============================

八、动手练习

练习1:变量与运算

定义一个变量 radius 表示圆的半径(设为5),计算并输出圆的周长(2 * π * r)和面积(π * r²)。(π取3.14159)

👆 点击查看参考答案
1
2
3
4
5
6
7
radius = 5pi = 3.14159perimeter = 2 * pi * radiusarea = pi * radius ** 2print("半径:", radius)print("周长:", perimeter)   # 31.4159print("面积:", area)        # 78.53975

练习2:字符串操作

定义字符串 s = "Python is powerful",完成以下操作:

  1. 输出字符串的长度
  2. 输出第一个字符和最后一个字符
  3. 输出切片 "is"
👆 点击查看参考答案
1
2
3
4
5
6
s = "Python is powerful"print(len(s))          # 19(含空格)print(s[0])            # Pprint(s[-1])           # lprint(s[7:9])          # is

练习3:类型转换

用户输入两个数字,计算它们的和并输出。(提示:不要忘记类型转换)

👆 点击查看参考答案
1
2
3
4
5
6
a = input("请输入第一个数字:")b = input("请输入第二个数字:")a = float(a)b = float(b)print("两数之和为:", a + b)

练习4:布尔值练习

编写一段代码:

  • 定义变量 score 为85
  • 判断并输出:score 是否大于60(及格)
  • 判断并输出:score 是否等于100(满分)
  • 判断并输出:score 是否在80到90之间
👆 点击查看参考答案
1
2
3
4
score = 85print(score > 60)           # Trueprint(score == 100)         # Falseprint(score > 80 and score < 90)  # True(and表示"并且")

练习5(综合挑战):温度转换器

编写一个程序:

  1. 提示用户输入摄氏温度(°C)
  2. 将其转换为华氏温度(°F),公式:°F = °C × 9/5 + 32
  3. 输出结果,保留一位小数
👆 点击查看参考答案
1
2
3
4
5
6
celsius = input("请输入摄氏温度:")celsius = float(celsius)fahrenheit = celsius * 9 / 5 + 32print("华氏温度为:", round(fahrenheit, 1), "°F")# round(数字, 1) 表示保留1位小数

本周小结

本周我们掌握了Python最基础的"砖块":

知识点
核心要点
变量
用 = 赋值,命名要见名知意
整数(int)
不带小数点的数字
浮点数(float)
带小数点的数字
字符串(str)
用引号包裹的文本
布尔值(bool)True
 和 False(首字母大写!)
类型转换int()
、float()、str()
输入输出print()
 输出,input() 输入(返回字符串)

下周预告:我们将学习条件判断(if/elif/else)与循环(for/while)——这是让程序拥有"判断力"和"重复执行能力"的关键!届时你写的代码将不再是"直来直去",而是可以根据不同情况做出不同反应。


📌 本周作业建议:把上面的"个人名片生成器"程序自己敲一遍并运行成功,然后尝试添加更多功能(比如:计算出生年份、判断是否达到法定饮酒年龄等)。

最新文章

随机文章