第2章:Python基础语法 - 编程基石
◆ 📌 本章导读
万丈高楼平地起,基础语法是编程的基石。掌握了这些,你就能用Python表达你的想法了!
本章你将学会:
-
- ◆ ✅ 变量的定义和使用
-
- ◆ ✅ Python的各种数据类型
-
- ◆ ✅ 运算符的使用方法
-
- ◆ ✅ 用户输入和屏幕输出
-
- ◆ ✅ 格式化输出的多种方式
-
预计学习时间:2-3小时
前置知识:第1章 - 初识Python
~ ◆ ~
◆ 2.1 变量与数据类型
📦 什么是变量?
变量就像一个带标签的盒子,用来存储数据。
# 创建变量
name = "小明"
age = 18
height = 175.5
# 使用变量
print(name) # 输出: 小明
print(age) # 输出: 18
在这个例子中:
-
- ◆
name、age、height就是变量名 -
- ◆
"小明"、18、175.5是变量值 -
- ◆
=是赋值符号,把右边的值存入左边的变量 -
📋 变量命名规则
Python对变量命名有严格的要求:
✅ 正确的命名:
user_name = "张三" # 使用下划线分隔(推荐)
userName = "张三" # 驼峰命名法
age = 18
_total_score = 95.5
❌ 错误的命名:
2name = "张三" # 不能以数字开头
user-name = "张三" # 不能包含连字符
class= "一班" # 不能使用Python关键字
my name = "张三" # 不能包含空格
命名规范建议:
-
- 1. 使用小写字母和下划线(如:
student_name) -
- 2. 名称要有意义,能看出存储的是什么
-
- 3. 避免使用单个字母(除非是循环变量i、j、k)
-
- 4. 常量使用全大写(如:
PI = 3.14159) -
~ ◆ ~
🔢 Python的数据类型
Python中有几种基本的数据类型:
| 类型 |
名称 |
示例 |
说明 |
int |
整数 |
18, -5, 0 |
没有小数点的数字 |
float |
浮点数 |
3.14, -0.5, 2.0 |
有小数点的数字 |
str |
字符串 |
"Hello", 'Python' |
文本内容 |
bool |
布尔值 |
True, False |
真或假 |
1. 整数(int)
整数就是没有小数点的数字,可以是正数、负数或零。
# 整数示例
age = 18
temperature = -5
year = 2024
# 查看数据类型
print(type(age)) # 输出: <class 'int'>
2. 浮点数(float)
浮点数就是有小数点的数字。
# 浮点数示例
price = 19.99
pi = 3.14159
score = 95.5
print(type(price)) # 输出: <class 'float'>
⚠️ 注意:浮点数运算可能有精度问题
print(0.1 + 0.2) # 输出: 0.30000000000000004 (不是0.3!)
3. 字符串(str)
字符串就是文本,需要用引号包围。
# 字符串示例
name = "Python"
greeting = 'Hello, World!'
message = "学习编程很有趣"
print(type(name)) # 输出: <class 'str'>
单引号和双引号的区别:
-
- ◆ 功能完全相同,可以互换使用
-
- ◆ 建议统一使用一种风格
-
字符串中可以包含引号:
# 双引号内可以用单引号
quote = "Python是一门'简单'的语言"
# 单引号内可以用双引号
title = '他说了"你好"'
# 使用转义字符
text = "他说:\"你好\""
4. 布尔值(bool)
布尔值只有两个:True(真)和False(假),常用于条件判断。
# 布尔值示例
is_student = True
is_weekend = False
print(type(is_student)) # 输出: <class 'bool'>
~ ◆ ~
🔄 类型转换
有时需要在不同数据类型之间转换:
# 字符串转整数
age_str = "18"
age_int = int(age_str)
print(age_int + 2) # 输出: 20
# 整数转字符串
age = 18
age_str = str(age)
print("我" + age_str + "岁") # 输出: 我18岁
# 字符串转浮点数
price_str = "19.99"
price_float = float(price_str)
print(price_float * 2) # 输出: 39.98
# 整数转浮点数
num = 10
num_float = float(num)
print(num_float) # 输出: 10.0
# 浮点数转整数(会去掉小数部分)
pi = 3.14
pi_int = int(pi)
print(pi_int) # 输出: 3
实用示例:用户输入的数字是字符串,需要转换后才能计算
# 错误示例
num1 = input("请输入第一个数字:") # 输入: 10
num2 = input("请输入第二个数字:") # 输入: 20
print(num1 + num2) # 输出: 1020 (字符串拼接!)
# 正确示例
num1 = int(input("请输入第一个数字:")) # 转换为整数
num2 = int(input("请输入第二个数字:"))
print(num1 + num2) # 输出: 30 (数学加法!)
~ ◆ ~
◆ 2.2 运算符
➕ 算术运算符
用于数学计算:
| 运算符 |
名称 |
示例 |
结果 |
+ |
加法 |
10 + 3 |
13 |
- |
减法 |
10 - 3 |
7 |
* |
乘法 |
10 * 3 |
30 |
/ |
除法 |
10 / 3 |
3.333... |
// |
整除 |
10 // 3 |
3 |
% |
取余 |
10 % 3 |
1 |
** |
幂运算 |
10 ** 3 |
1000 |
# 算术运算示例
a = 10
b = 3
print(a + b) # 加法: 13
print(a - b) # 减法: 7
print(a * b) # 乘法: 30
print(a / b) # 除法: 3.3333333333333335
print(a // b) # 整除: 3
print(a % b) # 取余: 1
print(a ** b) # 幂运算: 1000
# 实用案例:判断奇偶数
number = 7
if number % 2 == 0:
print(f"{number}是偶数")
else:
print(f"{number}是奇数") # 输出: 7是奇数
字符串也可以使用+和*:
# 字符串拼接
first_name = "张"
last_name = "三"
full_name = first_name + last_name
print(full_name) # 输出: 张三
# 字符串重复
line = "=" * 20
print(line) # 输出: ====================
~ ◆ ~
⚖️ 比较运算符
用于比较两个值的大小,结果是布尔值(True或False):
| 运算符 |
名称 |
示例 |
结果 |
== |
等于 |
10 == 3 |
False |
!= |
不等于 |
10 != 3 |
True |
> |
大于 |
10 > 3 |
True |
< |
小于 |
10 < 3 |
False |
>= |
大于等于 |
10 >= 10 |
True |
<= |
小于等于 |
10 <= 3 |
False |
# 比较运算示例
x = 10
y = 3
print(x == y) # False
print(x != y) # True
print(x > y) # True
print(x < y) # False
print(x >= 10) # True
print(y <= 3) # True
# 实际应用:判断成绩等级
score = 85
if score >= 90:
print("优秀")
elif score >= 60:
print("及格") # 输出: 及格
else:
print("不及格")
⚠️ 注意: =是赋值,==是比较,不要混淆!
x = 5 # 赋值:把5赋给x
x == 5 # 比较:x是否等于5,返回True
~ ◆ ~
🔗 逻辑运算符
用于组合多个条件:
| 运算符 |
名称 |
说明 |
示例 |
and |
与 |
两个条件都为True时,结果才是True |
True and False → False |
or |
或 |
只要有一个条件为True,结果就是True |
True or False → True |
not |
非 |
取反,True变False,False变True |
not True → False |
# 逻辑运算示例
age = 20
has_id = True
# and:两个条件都要满足
if age >= 18 and has_id:
print("可以进入") # 输出: 可以进入
# or:满足一个条件即可
is_weekend = True
is_holiday = False
if is_weekend or is_holiday:
print("休息日") # 输出: 休息日
# not:取反
is_raining = False
if not is_raining:
print("不用带伞") # 输出: 不用带伞
~ ◆ ~
📝 赋值运算符
| 运算符 |
示例 |
等价于 |
= |
x = 5 |
x = 5 |
+= |
x += 3 |
x = x + 3 |
-= |
x -= 3 |
x = x - 3 |
*= |
x *= 3 |
x = x * 3 |
/= |
x /= 3 |
x = x / 3 |
# 赋值运算符示例
score = 80
score += 5 # 加5分
print(score) # 输出: 85
score -= 10 # 扣10分
print(score) # 输出: 75
score *= 2 # 翻倍
print(score) # 输出: 150
~ ◆ ~
◆ 2.3 输入与输出
📤 输出:print()函数
print()是我们最常用的函数,用于在屏幕上显示内容。
基础用法
# 打印字符串
print("Hello, Python!")
# 打印变量
name = "小明"
print(name)
# 打印多个内容(自动用空格分隔)
print("姓名:", name, "年龄:", 18)
# 输出: 姓名: 小明 年龄: 18
修改分隔符和结尾
# 自定义分隔符(默认是空格)
print("Python", "Java", "C++", sep="-")
# 输出: Python-Java-C++
# 自定义结尾(默认是换行)
print("Hello", end=" ")
print("World!")
# 输出: Hello World!
# 不换行输出
print("第一行", end="")
print("还是第一行")
# 输出: 第一行还是第一行
~ ◆ ~
📥 输入:input()函数
input()用于获取用户输入,返回值总是字符串类型。
# 获取用户输入
name = input("请输入你的名字:")
print(f"你好,{name}!")
# 输入数字需要转换
age = input("请输入你的年龄:")
age = int(age) # 转换为整数
print(f"明年你{age+1}岁")
完整示例:个人信息登记
print("===== 个人信息登记 =====")
name = input("姓名:")
age = input("年龄:")
city = input("城市:")
print("\n===== 信息确认 =====")
print(f"姓名:{name}")
print(f"年龄:{age}")
print(f"城市:{city}")
~ ◆ ~
✨ 格式化输出
Python提供了多种方式格式化输出:
方法1:f-string(推荐⭐⭐⭐⭐⭐)
Python 3.6+引入,最简洁直观的方式:
name = "小明"
age = 18
score = 95.5
# 基本用法
print(f"姓名:{name}, 年龄:{age}")
# 表达式计算
print(f"明年{age+1}岁")
# 格式化数字(保留2位小数)
print(f"成绩:{score:.2f}") # 输出: 成绩:95.50
# 对齐输出
print(f"{'姓名':<10}{name}")
print(f"{'年龄':<10}{age}")
方法2:format()方法
name = "小明"
age = 18
# 按位置
print("姓名:{}, 年龄:{}".format(name, age))
# 按索引
print("姓名:{0}, 年龄:{1}".format(name, age))
# 按名称
print("姓名:{n}, 年龄:{a}".format(n=name, a=age))
方法3:%格式化(老式)
name = "小明"
age = 18
# %s:字符串, %d:整数, %f:浮点数
print("姓名:%s, 年龄:%d" % (name, age))
# 保留2位小数
print("成绩:%.2f" % 95.5) # 输出: 成绩:95.50
~ ◆ ~
◆ 2.4 注释规范
📝 什么是注释?
注释是代码中的说明文字,不会被Python执行,用于解释代码的作用。
单行注释
使用#符号,#后面的内容都会被忽略:
# 这是单行注释
print("Hello") # 这也是注释,在代码后面
多行注释
使用三引号('''或"""):
'''
这是多行注释
可以写很多行
用于详细说明
'''
"""
这也是多行注释
通常用于函数和类的说明
"""
💡 注释最佳实践
✅ 好的注释:
# 计算圆的面积
radius = 5
area = 3.14159 * radius ** 2
print(f"圆的面积:{area:.2f}")
# TODO:需要优化计算性能
❌ 不好的注释:
# 打印Hello (废话注释,代码已经很明显了)
print("Hello")
# 给a赋值5 (没有意义的注释)
a = 5
注释技巧:
-
- 1. 解释"为什么"而不是"是什么"
-
- 2. 使用TODO标记待完成的工作
-
- 3. 复杂逻辑一定要写注释
-
- 4. 及时更新过时的注释
-
~ ◆ ~
◆ 📝 本章小结
核心知识点回顾
✅ 变量:存储数据的容器,命名要规范
✅ 数据类型:int(整数)、float(浮点数)、str(字符串)、bool(布尔值)
✅ 类型转换:int()、float()、str()
✅ 运算符:算术运算符、比较运算符、逻辑运算符、赋值运算符
✅ 输入输出:input()获取输入,print()输出内容
✅ 格式化输出:f-string(推荐)、format()、%格式化
✅ 注释:单行注释(#)、多行注释('''或""")
🎯 检查清单
-
- ◆ [ ] 我能正确定义和使用变量
-
- ◆ [ ] 我了解Python的4种基本数据类型
-
- ◆ [ ] 我能进行数据类型转换
-
- ◆ [ ] 我能使用各种运算符进行计算
-
- ◆ [ ] 我能使用input()获取用户输入
-
- ◆ [ ] 我能使用print()输出内容
-
- ◆ [ ] 我会用f-string格式化输出
-
- ◆ [ ] 我知道如何写注释
-
~ ◆ ~
◆ 🚀 课后练习
练习1:温度转换器
编写一个程序,将摄氏度转换为华氏度。
公式:华氏度 = 摄氏度 × 9/5 + 32
示例运行:
请输入摄氏度: 36.5
36.5摄氏度 = 97.7华氏度
参考代码:
# 获取用户输入
celsius = float(input("请输入摄氏度: "))
# 计算华氏度
fahrenheit = celsius * 9/5 + 32
# 输出结果
print(f"{celsius}摄氏度 = {fahrenheit:.1f}华氏度")
~ ◆ ~
练习2:简易计算器
编写一个程序,实现两个数的加减乘除运算。
示例运行:
===== 简易计算器 =====
请输入第一个数字: 10
请输入第二个数字: 3
计算结果:
10 + 3 = 13
10 - 3 = 7
10 * 3 = 30
10 / 3 = 3.33
提示:
-
- ◆ 使用float()转换输入为浮点数
-
- ◆ 使用f-string格式化输出
-
- ◆ 除法结果保留2位小数
-
~ ◆ ~
练习3:个人信息卡
编写一个程序,收集用户信息并打印漂亮的个人信息卡。
示例运行:
===== 创建个人信息卡 =====
姓名: 小明
年龄: 18
城市: 北京
爱好: 编程
==============================
个人信息卡
==============================
姓名: 小明
年龄: 18岁
城市: 北京
爱好: 编程
==============================
~ ◆ ~
◆ 💬 互动环节
今日话题:你觉得Python的哪些特点让你最容易上手?在学习过程中遇到了什么有趣的事情?
思考题:print(0.1 + 0.2)的输出为什么不是0.3?你能想办法让它显示为0.3吗?
欢迎在留言区分享你的答案和想法!
~ ◆ ~
下章预告:第3章我们将学习流程控制,让程序能够根据条件做出不同的反应。准备好让你的程序变得更智能吗?我们下期见!
~ ◆ ~
◆ 📚 扩展阅读
-
- ◆ Python官方文档-数据类型:https://docs.python.org/zh-cn/3/library/stdtypes.html
-
- ◆ Python格式化字符串详解:https://docs.python.org/zh-cn/3/tutorial/inputoutput.html
-
- ◆ 变量命名规范:https://pep8.org/#naming-conventions
-
~ ◆ ~
学习建议:编程是一门实践性很强的技能,看懂教程不代表掌握了,一定要亲自动手敲代码!建议把本章的示例代码都自己敲一遍,尝试修改参数,观察输出结果的变化。加油!💪