python基础知识

板块二:Python基础知识 —— 开始写真正的代码

写给刚高中毕业的你: 板块一我们认识了Python这个"翻译官"。现在开始,你要学的是"翻译官的语言规则"。别怕,规则不多,而且每个规则我们都边学边练。

01 变量 —— 给数据贴个标签

你可以把变量想象成一个有名字的盒子,你把东西放进去,以后想用的时候叫盒子的名字就行。

先看代码

name = "小明"
age = 18
score = 95.5
  • name、age、score 就是变量名(盒子的标签)
  • = 是赋值符号,意思是"把右边的东西放进左边的盒子里"
  • "小明" 是文本(叫字符串),18 是整数,95.5 是小数(叫浮点数)

用变量

name = "小明"
print(name)  # 输出:小明

age = 18
print(age)   # 输出:18

# 变量还可以参与计算
new_age = age + 1
print(new_age)  # 输出:19

🎯 核心理解: 变量就是给数据起个名字,方便以后反复使用。你可以随时改变变量里存的值(所以叫"变"量)。

变量的命名规则(简单记三条)

  1. 只能包含字母、数字、下划线(不能有空格或特殊符号如 @#¥%)
  2. 不能以数字开头(1name 不行,name1 可以)
  3. 不能和Python的关键字冲突(比如 if、for、while 这些不能当变量名)

✅ 好习惯: 变量名要能看懂意思。score 比 s 好,student_name 比 sn 好。

02 数据类型 —— 盒子里的东西分种类

不同的数据有不同的类型,不同类型能做的事不一样。

最常用的四种类型

类型 英文名 例子 说明
整数 int 18、-5、0 就是数学里的整数
浮点数 float 3.14、95.5 就是小数
字符串 str "你好"、'Python' 文本,用引号包起来
布尔值 bool True、False 只有两个值:真/假

如何查看数据的类型

name = "小明"
age = 18
score = 95.5
is_pass = True

print(type(name))   # <class 'str'>
print(type(age))    # <class 'int'>
print(type(score))  # <class 'float'>
print(type(is_pass))# <class 'bool'>

类型之间的转换

# 数字转字符串
age = 18
text = "我今年" + str(age) + "岁"
print(text)  # 我今年18岁

# 字符串转数字
num_str = "100"
num = int(num_str)
print(num + 50)  # 150

🎯 核心理解: 不同类型的数据有不同的"操作权限"。比如数字可以做加法,字符串不能做加法(但可以做拼接)。

03 输入与输出 —— 和程序对话

程序不是死的。你可以用 input() 让用户输入信息,用 print() 把结果显示出来。

print() —— 输出

print("你好")               # 直接输出文本
print(3 + 5)                # 输出计算结果:8

name = "小明"
print("我的名字是", name)   # 输出:我的名字是 小明

input() —— 输入

name = input("请输入你的名字:")
print("你好," + name + "!")

运行效果:

请输入你的名字:小明
你好,小明!

⚠️ 重要: input() 获取到的永远是字符串类型。如果需要数字,要手动转换。

age_str = input("请输入你的年龄:")
age = int(age_str)   # 把字符串转成整数
print("明年你", age + 1, "岁")

04 条件判断 —— 让程序自己"做选择"

程序遇到不同情况要做出不同反应,这就需要 if 语句。

if 的基本结构

score = 85

if score >= 60:
    print("及格了!")

if-else —— 二选一

score = 55

if score >= 60:
    print("及格了!")
else:
    print("不及格,继续加油")

if-elif-else —— 多选一

score = 85

if score >= 90:
    print("优秀")
elif score >= 70:
    print("良好")
elif score >= 60:
    print("及格")
else:
    print("不及格")

运行效果:

良好

常用的比较运算符

符号 含义
== 等于(注意是两个等号)
!= 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于

⚠️ 重点提醒: = 是赋值,== 是比较。写反了程序会出错。

# 错误示范
if score = 60:   # 这会把60赋给score,而不是比较

# 正确写法
if score == 60:  # 这才是比较

🎯 核心理解: if 让程序有了"判断力",能根据不同情况执行不同代码。这是所有智能程序的基础。

05 循环 —— 让程序重复干活

重复做同一件事是电脑最擅长的。用 for 和 while 可以让程序批量执行任务。

for 循环 —— 遍历已知范围

# 重复5次
for i in range(5):
    print("第", i, "次循环")

运行效果:

第 0 次循环
第 1 次循环
第 2 次循环
第 3 次循环
第 4 次循环

range(5) 会生成 0,1,2,3,4 这5个数字。注意从0开始。

# 遍历列表中的每个元素
names = ["小明", "小红", "小刚"]
for name in names:
    print(name, "你好!")

运行效果:

小明 你好!
小红 你好!
小刚 你好!

while 循环 —— 条件满足就一直执行

count = 0
while count < 5:
    print("当前计数:", count)
    count = count + 1   # 必须更新条件,否则会永远循环

运行效果:

当前计数: 0
当前计数: 1
当前计数: 2
当前计数: 3
当前计数: 4

⚠️ 致命警告: while 循环如果不更新条件,会变成死循环(程序永远停不下来)。

# ❌ 死循环(千万不要运行)
count = 0
while count < 5:
    print("停不下来")
    # 忘记写 count = count + 1

break —— 强行跳出循环

for i in range(10):
    if i == 5:
        break      # i等于5时跳出循环
    print(i)

运行效果:

0
1
2
3
4

continue —— 跳过本次循环

for i in range(5):
    if i == 2:
        continue   # i等于2时跳过本次,继续下一次
    print(i)

运行效果:

0
1
3
4

🎯 核心理解: 循环让程序有了"批量处理"的能力。当你要处理一堆数据时,循环就是最强的工具。

06 列表 —— 数据的有序"队列"

列表可以存储一串数据,并按顺序访问它们。

创建和使用列表

# 创建一个列表
students = ["小明", "小红", "小刚", "小丽"]

# 通过索引访问(索引从0开始)
print(students[0])   # 小明
print(students[2])   # 小刚

# 查看列表长度
print(len(students)) # 4

# 往列表末尾添加一个元素
students.append("小华")
print(students)      # ['小明', '小红', '小刚', '小丽', '小华']

# 删除指定位置的元素
del students[1]      # 删除"小红"
print(students)      # ['小明', '小刚', '小丽', '小华']

⚠️ 重要: 列表的索引从 0 开始。所以 students[0] 是第一个,students[3] 是第四个。

遍历列表(最常用)

students = ["小明", "小红", "小刚"]

for name in students:
    print(name, "考了90分")

运行效果:

小明 考了90分
小红 考了90分
小刚 考了90分

列表切片 —— 取其中一部分

nums = [0, 1, 2, 3, 4, 5]
print(nums[1:4])   # [1, 2, 3](从索引1到索引3,不包含4)
print(nums[:3])    # [0, 1, 2](从头到索引2)
print(nums[3:])    # [3, 4, 5](从索引3到尾)

🎯 核心理解: 列表就像一排带编号的储物柜,你可以往每个格子里放东西,通过编号(索引)快速找到它。

07 字典 —— 数据带"名牌"

列表是按"编号"找东西,字典是按"名字"找东西。

创建和使用字典

# 创建一个字典,保存一个人的信息
person = {
    "name": "小明",
    "age": 18,
    "score": 95.5
}

# 通过"键"来访问"值"
print(person["name"])   # 小明
print(person["age"])    # 18

# 修改值
person["score"] = 98
print(person["score"])  # 98

# 添加新的键值对
person["city"] = "北京"
print(person)           # {'name': '小明', 'age': 18, 'score': 98, 'city': '北京'}

字典和列表的配合使用(非常常见)

# 一个列表里存了多个字典
students = [
    {"name": "小明", "score": 95},
    {"name": "小红", "score": 88},
    {"name": "小刚", "score": 76}
]

# 遍历每个学生
for stu in students:
    print(stu["name"], "考了", stu["score"], "分")

运行效果:

小明 考了 95 分
小红 考了 88 分
小刚 考了 76 分

🎯 核心理解: 字典适合保存"有名字的数据",比如一个人的信息、一个商品的信息。当你需要根据名称找内容时,字典比列表更方便。

08 函数 —— 把"动作"打包

函数就是把一段代码打包成一个工具,起个名字,以后想用的时候直接"调用"就行。

定义一个简单的函数

def say_hello():
    print("你好!")

# 调用函数
say_hello()   # 输出:你好!

带参数的函数

def say_hello(name):
    print("你好,", name, "!")

say_hello("小明")   # 输出:你好, 小明 !
say_hello("小红")   # 输出:你好, 小红 !

带返回值的函数

def add(a, b):
    return a + b

result = add(3, 5)
print(result)   # 输出:8

return 是"返回"的意思,把结果交还给调用者。

参数的默认值

def say_hello(name="同学"):
    print("你好,", name, "!")

say_hello()          # 输出:你好, 同学 !
say_hello("小明")    # 输出:你好, 小明 !

🎯 核心理解: 函数让你写一次代码,反复使用。写程序时,凡是重复出现的代码,都应该考虑"打包"成函数。

09 模块与包 —— 用别人写好的代码

Python 最大的优势就是有海量"现成的工具"可以用。这些工具叫模块。

导入模块

# 导入整个模块
import math

print(math.sqrt(16))   # 4.0(开平方)
print(math.pi)         # 3.141592653589793(圆周率)

# 只导入模块中的特定功能
from random import randint

num = randint(1, 10)   # 生成1到10之间的随机整数
print(num)

# 给模块起别名(让名字变短)
import datetime as dt

now = dt.datetime.now()
print(now)

自己写模块

如果你把一些常用函数存在 my_tools.py 文件里,在另一个文件中可以这样导入:

# 假设 my_tools.py 里有一个 add 函数
from my_tools import add

print(add(3, 5))

🎯 核心理解: 学Python某种意义上就是在学"有哪些好用的模块,以及怎么用它们"。

10 文件操作 —— 把数据"存下来"

程序运行时的数据存在内存里,关掉程序就没了。用文件可以把数据永久保存在硬盘上。

写文件

# 写入文本文件
with open("test.txt", "w", encoding="utf-8") as f:
    f.write("你好,Python!\n")
    f.write("第二行内容")

"w" 表示写入模式。如果文件不存在会自动创建,存在则覆盖原有内容。
encoding="utf-8" 是为了支持中文,建议每次都写上。

读文件

with open("test.txt", "r", encoding="utf-8") as f:
    content = f.read()
    print(content)

逐行读取

with open("test.txt", "r", encoding="utf-8") as f:
    for line in f:
        print(line)   # 每行依次打印

"r" 表示读取模式。如果文件不存在会报错。

文件模式速查

模式 含义
"r" 只读(文件必须存在)
"w" 写入(覆盖原内容,没有则创建)
"a" 追加(在原内容后面添加)

🎯 核心理解: 文件操作让程序"有记忆"。没有文件操作,程序每次重启都是一片空白。

11 异常处理 —— 让程序"不崩溃"

程序运行时不可避免会遇到错误。如果什么都不做,程序就直接崩溃退出。用 try-except 可以"接住"错误,让程序继续运行。

基本写法

try:
    num = int(input("请输入一个数字:"))
    print("你输入了:", num)
except ValueError:
    print("输入的不是有效数字,请重新运行")

运行效果:

请输入一个数字:abc
输入的不是有效数字,请重新运行

程序没有崩溃,而是给了用户一个友好的提示。

捕获多种异常

try:
    nums = [1, 2, 3]
    index = int(input("请输入索引:"))
    print(nums[index])
except ValueError:
    print("请输入数字")
except IndexError:
    print("索引超出范围")

无论是否报错都执行(finally)

try:
    f = open("test.txt", "r")
    print(f.read())
except FileNotFoundError:
    print("文件不存在")
finally:
    print("程序执行完毕")   # 无论成功还是失败都会执行

🎯 核心理解: 异常处理让你可以控制"程序出错时该怎么办",而不是任由它崩溃。

12 面向对象入门 —— 用"类"来组织代码

前面学的函数是把"动作"打包。类(class)是把"属性"和"动作"打包在一起。

定义一个类

class Student:
    def __init__(self, name, score):
        self.name = name      # 属性:名字
        self.score = score    # 属性:分数
    
    def say_hello(self):
        print("你好,我是", self.name)
    
    def show_score(self):
        print(self.name, "考了", self.score, "分")

__init__ 是初始化方法,在创建对象时自动执行。
self 表示"对象自己"。

创建并使用对象

# 创建一个学生对象
stu1 = Student("小明", 95)

stu1.say_hello()      # 你好,我是 小明
stu1.show_score()     # 小明 考了 95 分

# 创建另一个学生
stu2 = Student("小红", 88)
stu2.show_score()     # 小红 考了 88 分

类的继承(简单了解)

class Person:
    def __init__(self, name):
        self.name = name
    
    def say_hello(self):
        print("你好,我是", self.name)

class Student(Person):
    def __init__(self, name, score):
        super().__init__(name)   # 调用父类的初始化
        self.score = score
    
    def show_score(self):
        print(self.name, "考了", self.score, "分")

stu = Student("小明", 95)
stu.say_hello()   # 继承自 Person,输出:你好,我是 小明
stu.show_score()  # 特有方法,输出:小明 考了 95 分

🎯 核心理解: 面向对象是一种代码组织方式,当你的程序变复杂时,它能帮你保持代码清晰。你可以把它看作更高级的"打包"。

本章小结

板块二到这里就结束了。你应该已经接触了 Python 的全部核心语法:

知识点 掌握了吗
变量与数据类型 ✅
输入输出(input / print) ✅
条件判断(if-elif-else) ✅
循环(for / while) ✅
列表与字典 ✅
函数(定义、参数、返回值) ✅
模块导入(import) ✅
文件操作(open) ✅
异常处理(try-except) ✅
面向对象入门(class) ✅

下章预告: 板块三 —— 入门案例。我们会用你学到的知识做几个完整的项目,包括猜数字游戏、学生成绩管理系统、Todo List 工具。


欢迎在评论区说说你学到这里最大的收获或者最困惑的地方。😊

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容