当前位置:首页>python>Python 编程 教学

Python 编程 教学

  • 2026-10-11 06:42:31
Python 编程 教学

Python零基础入门10课

第1课:Python介绍与第一个程序

本节课知识点

1. Python是一门简单、易懂、功能强大的编程语言,人工智能、数据分析、自动化、小游戏都能用它做。
2. 所有Python程序,都可以直接写代码运行。
3. 最基础语句: print()  输出内容,把文字、数字显示在屏幕上。

基础语法

python


# 输出文字
print("Hello Python")
# 输出数字
print(123)
 

重要规则

- 括号、引号必须是英文符号
- 一句  print  输出一行内容

本课小练笔

1. 编写代码,让屏幕输出: 我学会Python啦! 
2. 编写代码,同时输出你的名字、年龄(分两行输出)

参考答案

python


print("我学会Python啦!")
print("小叶")
print(12)
 

 

第2课:变量与数据类型

本节课知识点

变量就是装数据的盒子,可以存文字、数字。

三种最常用数据类型

1. 字符串 str:文字,需要加引号  "你好" 
2. 整数 int:整数数字  100 
3. 浮点数 float:小数  3.14 

变量赋值语法

python


name = "小叶"
age = 12
score = 95.5

print(name)
print(age)
print(score)
 

命名规则

- 变量名只能用:字母、数字、下划线
- 不能以数字开头
- 不能用中文、空格

本课小练笔

1. 定义变量:姓名、身高、体重,然后全部打印出来
2. 找出错误: 1name = "小明"  错在哪里?

参考答案

python


name = "小叶"
height = 160
weight = 45.2
print(name)
print(height)
print(weight)
 

错误解答:变量名不能以数字开头

 

第3课:简单数学运算

本节课知识点

Python可以直接做数学计算:

-  +  加
-  -  减
-  *  乘
-  /  除

示例代码

python


a = 10
b = 3

print(a + b)
print(a - b)
print(a * b)
print(a / b)
 

本课小练笔

1. 计算:35 + 67、99 - 23、12 * 8
2. 已知苹果单价8元,买15个,计算总价

参考答案

python


print(35 + 67)
print(99 - 23)
print(12 * 8)

price = 8
num = 15
print(price * num)
 

 

第4课:输入功能 input()

本节课知识点

 input()  可以接收用户键盘输入的内容

基础用法

python


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

重点

 input()  默认接收的都是文字,想要输入数字计算,需要转换:

-  int(input())  转整数

示例

python


age = int(input("请输入你的年龄:"))
print("明年你的年龄是", age + 1)
 

本课小练笔

1. 让用户输入城市名字,打印  我在XX城市! 
2. 让用户输入身高,自动输出身高+10

参考答案

python


city = input("请输入你在的城市:")
print("我在", city, "城市!")

height = int(input("请输入你的身高:"))
print("新身高:", height + 10)
 

 

第5课:if 条件判断(如果…就…)

本节课知识点

满足条件就执行代码,不满足就不执行

基础语法

python


age = 12
if age >= 10:
print("你大于等于10岁")
 

符号说明

-  ==  等于
-  >  大于<` 小于
-  >=  <=` 小于等于
-  !=  不等于

if-else 语法

python


score = 80
if score >= 60:
print("及格")
else:
print("不及格")
 

本课小练笔

1. 输入分数,大于等于90输出“优秀”,否则输出“继续加油”
2. 判断数字是否为偶数(能被2整除)

参考答案

python


s = int(input("输入分数:"))
if s >= 90:
print("优秀")
else:
print("继续加油")
 

 

第6课:for 循环(重复做事)

本节课知识点

循环可以自动重复执行代码,不用重复抄写

基础语法

python


# 打印1~5
for i in range(1,6):
print(i)
 

循环固定次数

python


# 重复3次
for i in range(3):
print("我爱Python")
 

本课小练笔

1. 打印 1 到 10 所有数字
2. 循环打印5次“坚持学编程”

参考答案

python


for i in range(1,11):
print(i)

for i in range(5):
print("坚持学编程")
 

 

第7课:while 循环

本节课知识点

条件成立就一直循环,条件不成立停止

示例代码

python


a = 1
<= 5:
print(a)
a = a + 1
 

本课小练笔

1. 使用while循环输出1~8
2. 循环输出3次“编程很有趣”

参考答案

python


n = 1
while n<= 8:
print(n)
n += 1
 

 

第8课:列表 list(存一堆数据)

本节课知识点

列表可以一次性存很多数据,类似购物清单

基础用法

python


# 创建列表
fruit = ["苹果","香蕉","橙子"]
print(fruit)
# 取第1个数据(从0开始数)
print(fruit[0])
 

本课小练笔

1. 创建自己的爱好列表,包含3个爱好并打印
2. 打印列表中第2个爱好

参考答案

python


hobby = ["画画","编程","运动"]
print(hobby)
print(hobby[1])
 

 

第9课:自定义函数 def

本节课知识点

把一段常用代码打包成函数,随时调用

基础语法

python


def say_hello():
print("你好!欢迎学习Python")

# 调用函数
say_hello()
say_hello()
 

带参数函数

python


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

add(3,5)
add(10,20)
 

本课小练笔

1. 写一个函数,输出自己的名字和年龄
2. 写一个乘法函数,输入两个数,输出乘积

参考答案

python


def show_info():
print("名字:小叶")
print("年龄:12")

show_info()

def mul(x,y):
print(x * y)
mul(6,7)
 

 

第10课:综合小项目(简易计算器)

本节课知识点

综合运用:输入、运算、判断

成品代码

python


print("简易加法计算器")
num1 = int(input("请输入第一个数:"))
num2 = int(input("请输入第二个数:"))
res = num1 + num2
print("计算结果:", res)
 

本课小练笔

1. 改造代码,做成加减乘除四功能计算器
2. 自己加一句欢迎语

拓展参考

python


print("欢迎使用Python计算器")
a = int(input("数1:"))
b = int(input("数2:"))
print("加法:",a+b)
print("减法:",a-b)
print("乘法:",a*b)
print("除法:",a/b)

Python进阶10课



第1课:函数返回值 return

本节课知识点

1.  return :函数把计算结果返回到调用它的地方。之前的函数只是print输出,return可以拿到结果继续参与计算。
2. 函数遇到return就结束执行,后面代码不会运行。
3. 一个函数可以返回数字、字符串。

基础语法

python


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

num = add(3,5)
print(num)
print(num * 2)
 

本课小练笔

1. 写函数  get_area(w,h) ,接收宽和高,返回长方形面积,把结果打印。
2. 写函数,传入一个数字,返回数字的平方。

参考答案

python


def get_area(w,h):
return w * h

s = get_area(4,5)
print(s)

def square(x):
return x * x
print(square(6))
 

第2课:字符串常用操作

本节课知识点
字符串是文字序列,可以做切割、替换、获取长度。

-  len(字符串)  获取文字长度
-  .replace("旧","新")  替换文字
-  .split()  把字符串切成列表
-  f"{变量}"  f字符串格式化,方便拼接输出

示例代码

python


text = "我喜欢Python"
print(len(text))
new_text = text.replace("Python","编程")
print(new_text)

words = "苹果,香蕉,橙子".split(",")
print(words)

name = "小叶"
age = 12
print(f"我的名字是{name},今年{age}岁")
 

本课小练笔

1. 使用f字符串输出: 我身高xxx,体重xxx ,变量自己定义。
2. 把句子  "小猫小狗小兔" ,用replace把“小狗”替换成“小鱼”并打印。

参考答案

python


height = 155
weight = 42
print(f"我身高{height},体重{weight}")

s = "小猫小狗小兔"
print(s.replace("小狗","小鱼"))
 

第3课:字典dict(键值对)

本节课知识点
列表是按数字下标存取;字典用名字存取数据,适合保存一个事物的多项信息。
格式: {键:值, 键:值} 

示例代码

python


student = {
"name":"小叶",
"age":12,
"hobby":"编程"
}
print(student["name"])
student["age"] = 13
print(student)
 

本课小练笔

1. 创建字典保存你的信息:姓名、年级、爱好,打印整个字典。
2. 修改字典里的爱好,改成新爱好,再打印。

参考答案

python


me = {
"name":"小叶",
"grade":"三年级",
"hobby":"画画"
}
print(me)
me["hobby"] = "机器人"
print(me)
 

第4课:random随机库

本节课知识点
需要 import random 导入模块,就可以生成随机数字、随机抽取列表内容。

-  random.randint(a,b)  取a‑b之间随机整数,包含两端
-  random.choice(列表)  在列表随机选一个元素

示例代码

python


import random

n = random.randint(1,10)
print(n)

fruit = ["苹果","香蕉","橘子"]
pick = random.choice(fruit)
print(pick)
 

本课小练笔

1. 随机输出1‑100之间的一个数字。
2. 做简易抽奖:名单 = ["小明","小红","小刚"],随机抽1个人打印。

参考答案

python


import random
print(random.randint(1,100))

name_list = ["小明","小红","小刚"]
print(random.choice(name_list))
 

第5课:break 和 continue 循环控制

本节课知识点

-  break :立刻跳出整个循环,循环直接结束
-  continue :跳过本次循环剩下代码,直接进入下一轮循环

示例代码

python


for i in range(1,10):
if i == 5:
break
print(i)

for i in range(1,6):
if i ==3:
continue
print(i)
 

本课小练笔

1. 循环打印1‑20,遇到数字12就直接break结束循环。
2. 打印1‑10,跳过数字7。

参考答案

python


for i in range(1,21):
if i ==12:
break
print(i)

for i in range(1,11):
if i ==7:
continue
print(i)
 

第6课:文件读写(txt文本)

本节课知识点
程序读取电脑上txt文件,也可以往文件写文字。

- 写文件: open("test.txt","w",encoding="utf‑8")  w模式覆盖旧内容
- 读文件: open("test.txt","r",encoding="utf‑8") 
-  with 写法,会自动关闭文件,推荐新手使用

示例代码

python


#写入
with open("note.txt","w",encoding="utf-8") as f:
f.write("学习Python进阶\n")

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

本课小练笔

1. 创建  diary.txt ,写入两行文字:第一行“今天学习文件”,第二行“编程很有趣”。
2. 读取这个文件并且打印全部内容。

参考答案

python


with open("diary.txt","w",encoding="utf-8") as f:
f.write("今天学习文件\n")
f.write("编程很有趣\n")

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

第7课:异常处理 try‑except,防止程序崩溃

本节课知识点
用户输入错误、文件找不到会让程序直接崩溃;try捕获错误,程序不会直接退出。

python


try:
num = int(input("请输入数字:"))
print(num + 10)
except ValueError:
print("你输入的不是数字!")
 

本课小练笔

1. 写代码:尝试把用户输入转为整数;如果输入文字报错,打印提示“请输入合法数字”。
2. 写除法,捕获除数为0的错误。

参考答案

python


#第1题
try:
n = int(input("输入数字:"))
print(n)
except ValueError:
print("请输入合法数字")

#第2题
try:
a = int(input("被除数"))
b = int(input("除数"))
print(a / b)
except ZeroDivisionError:
print("除数不能等于0")
 

第8课:元组tuple与集合set

本节课知识点

- 元组  () :和列表很像,内容不能修改
- 集合  {} :自动去掉重复内容,适合去重

示例代码

python


t = (10,20,30)
print(t[0])

s = {1,2,2,3,3,3}
print(s)
 

本课小练笔

1. 创建元组保存三个城市名字,打印第二个城市。
2. 列表  nums = [2,2,5,5,7,7] ,转集合去重,打印结果。

参考答案

python


city_tuple = ("深圳","广州","上海")
print(city_tuple[1])

nums = [2,2,5,5,7,7]
res = set(nums)
print(res)
 

第9课:模块与导入,自己写模块

本节课知识点
 import xxx  导入别人写好的代码模块;也可以自己写py文件当作模块导入。
除了random,还有math数学模块。

python


import math
print(math.sqrt(16)) #开平方
 

本课小练笔

1. 使用math模块,计算25的平方根。
2. 写一个函数def calc_sum(a,b)返回a+b;把它保存为tool.py;新建另一个py文件,import tool调用calc_sum。

参考答案

python


#第一题
import math
print(math.sqrt(25))

#tool.py
def calc_sum(a,b):
return a+b

#main.py
import tool
print(tool.calc_sum(3,7))
 

第10课:综合实战:猜数字完整小游戏(综合项目)

本节课知识点
综合:random、while循环、if判断、break、异常捕获。

成品参考代码

python


import random
secret = random.randint(1,100)
print("===猜数字游戏 1~100===")

while True:
try:
guess = int(input("请猜数字:"))
if guess > secret:
print("大了")
elif guess < secret:
print("小了")
else:
print("恭喜猜对!")
break
except ValueError:
print("请输入数字!")
 

本课小练笔

1. 修改猜数字游戏,最多只能猜7次,7次没猜中游戏结束。
2. 在游戏开头打印欢迎语。

拓展参考答案

python


import random
secret = random.randint(1,100)
count = 0
print("欢迎来玩猜数字!范围1‑100,最多7次机会")

while count <7:
try:
guess = int(input("请猜数字:"))
count +=1
if guess > secret:
print("大了")
elif guess < secret:
print("小了")
else:
print("恭喜猜对!")
break
except ValueError:
print("输入数字!")
if count >=7:
print(f"机会用完,答案是{secret}")

Python 终极篇10课

第1课:面向对象‑类 class(基础)

本节课知识点

1.  class  用来创建“模板”,描述一类事物的属性(数据)和方法(函数)。
2.  __init__  构造函数,创建对象的时候自动执行,给对象设置属性。
3. self 代表对象自己,访问自己的变量、自己的函数。

示例代码

python


class Robot:
def __init__(self,name):
self.name = name
self.battery = 100

def say_hi(self):
print(f"你好,我是机器人{self.name},电量{self.battery}%")

r1 = Robot("一号机器狗")
r1.say_hi()
 

本课小练笔

1. 写一个 Cat 类,初始化要有名字、年龄;写一个meow()方法打印“喵喵”。
2. 创建2只不同名字的小猫对象,分别调用meow。

参考答案

python


class Cat:
def __init__(self,name,age):
self.name = name
self.age = age
def meow(self):
print(f"{self.name}:喵喵")

c1 = Cat("橘猫",2)
c2 = Cat("黑猫",3)
c1.meow()
c2.meow()
 

第2课:面向对象:属性修改、类的继承

本节课知识点

1. 对象可以直接修改属性;
2. 继承:子类复用父类全部代码,还可以新增自己的功能。 class 子类(父类) 

示例代码

python


class Animal:
def __init__(self,name):
self.name = name
def breath(self):
print(f"{self.name}在呼吸")

# Dog继承Animal
class Dog(Animal):
def bark(self):
print(f"{self.name}汪汪叫")

d = Dog("小狗")
d.breath()
d.bark()
 

本课小练笔

1. 父类 Vehicle ,属性speed;有run()打印行驶。子类 Car 继承Vehicle,新增honk()鸣笛。
2. 创建Car实例,调用run()、honk(),修改speed为80。

参考答案

python


class Vehicle:
def __init__(self,speed):
self.speed = speed
def run(self):
print(f"车辆以{self.speed}km/h行驶")

class Car(Vehicle):
def honk(self):
print("滴滴!鸣笛")

my_car = Car(40)
my_car.run()
my_car.honk()
my_car.speed = 80
my_car.run()
 

第3课:高阶函数:lambda匿名函数

本节课知识点

- lambda:简短的一次性小函数,不需要def写一大段。
格式: lambda 参数:返回值 
适合简单计算,搭配sorted排序使用。

示例代码

python


f = lambda x:x*x
print(f(5))

students = [("小叶",12),("小红",11),("小刚",13)]
#按年龄排序
students_sort = sorted(students, key=lambda s:s[1])
print(students_sort)
 

本课小练笔

1. 写lambda,接收两个数字返回两数相乘。
2. 列表 goods=[("苹果",5),("香蕉",3),("橙子",7)] ,用lambda按价格从小到大排序。

参考答案

python


mul = lambda a,b:a*b
print(mul(4,6))

goods=[("苹果",5),("香蕉",3),("橙子",7)]
res = sorted(goods,key=lambda g:g[1])
print(res)
 

第4课:列表推导式(快速生成列表)

本节课知识点
简洁快速生成列表,代替普通for循环append。
格式: [表达式 for 变量 in 可迭代对象 if 条件] 

示例代码

python


#生成1‑10平方
nums = [i*i for i in range(1,11)]
print(nums)

#只保留偶数
even = [x for x in range(1,21) if x%2==0]
print(even)
 

本课小练笔

1. 列表推导式生成1‑15所有数字的立方。
2. 筛选1‑30里面能被3整除的数字组成列表。

参考答案

python


cube_list = [i**3 for i in range(1,16)]
print(cube_list)

div3 = [x for x in range(1,31) if x%3==0]
print(div3)
 

第5课:多线程 threading,同时做多件事

本节课知识点
程序同一时间并行执行多个任务。例如:一边监听输入,一边循环更新状态。

注意:新手模拟机器人非常常用,一边读传感器,一边处理指令。

示例代码

python


import threading
import time

def task_a():
for i in range(5):
print(f"A任务 {i}")
time.sleep(0.5)

t = threading.Thread(target=task_a,daemon=True)
t.start()

for j in range(3):
print(f"主程序 {j}")
time.sleep(0.6)
 

本课小练笔

1. 开启子线程循环打印“传感器更新”每0.7秒一次;主线程循环打印“主控运行”每1秒。
2. 使用全局变量做一个开关,控制线程停止。

参考答案

python


import threading
import time
running = True

def sensor_task():
global running
while running:
print("传感器更新")
time.sleep(0.7)

t = threading.Thread(target=sensor_task,daemon=True)
t.start()

count = 0
while running:
print("主控运行")
time.sleep(1)
count +=1
if count >=4:
running = False
 

第6课:简易算法:查找与二分查找

本节课知识点

- 顺序查找:逐个遍历对比
- 二分查找:有序列表,快速缩小查找范围,速度更快。

示例代码

python


def linear_search(arr,target):
for idx,val in enumerate(arr):
if val == target:
return idx
return -1

nums = [2,5,7,9,13,18]
print(linear_search(nums,9))
 

本课小练笔

1. 实现顺序查找,在列表找数字,返回下标,找不到返回‑1。
2. 写简易二分查找,在有序列表找目标数字。

参考答案

python


def linear_search(arr,target):
for index,value in enumerate(arr):
if value == target:
return index
return -1

def binary_search(sorted_arr,target):
left = 0
right = len(sorted_arr)-1
while left <= right:
mid = (left+right)//2
if sorted_arr[mid]==target:
return mid
elif sorted_arr[mid]<target:
left = mid+1
else:
right = mid-1
return -1

data = [1,3,5,8,11,22]
print(binary_search(data,11))
 

第7课:json数据读写(保存字典、列表到文件)

本节课知识点
json可以把字典、列表保存到文件,下次运行程序直接读取,保存游戏存档、机器人参数。
 import json 

示例代码

python


import json

info = {"name":"机器狗","battery":88,"mode":"stand"}
#写入
with open("robot_save.json","w",encoding="utf‑8") as f:
json.dump(info,f,ensure_ascii=False,indent=2)

#读取
with open("robot_save.json","r",encoding="utf‑8") as f:
load_data = json.load(f)
print(load_data["name"])
 

本课小练笔

1. 字典保存玩家:姓名、分数、关卡;写入 player.json 。
2. 读取json,打印玩家分数。

参考答案

python


import json
player = {"name":"小叶","score":950,"level":3}
with open("player.json","w",encoding="utf‑8") as f:
json.dump(player,f,ensure_ascii=False,indent=2)

with open("player.json","r",encoding="utf‑8") as f:
data = json.load(f)
print(data["score"])
 

第8课:简单状态机编程(机器人、游戏核心思想)

本节课知识点
状态机:程序同一时刻处在某一种状态,根据条件切换状态。
机器人常见状态:待机、行走、趴下、跟踪模式、故障。

示例代码

python


state = "stand" #stand walk sit

while True:
cmd = input("指令(go/sit/stop):")
if cmd == "go":
state = "walk"
elif cmd == "sit":
state = "sit"
elif cmd == "stop":
state = "stand"
elif cmd == "exit":
break

if state == "stand":
print("状态:站立待机")
elif state == "walk":
print("状态:向前行走")
elif state == "sit":
print("状态:趴下")
 

本课小练笔

1. 扩展状态机,增加 track 跟踪模式;输入track切换跟踪,输入stop切回stand。
2. 每种状态打印对应的提示文字。

参考答案

python


state = "stand"
while True:
cmd = input("指令 go/sit/stop/track/exit:")
if cmd == "go":
state = "walk"
elif cmd == "sit":
state = "sit"
elif cmd == "stop":
state = "stand"
elif cmd == "track":
state = "track"
elif cmd == "exit":
break

if state == "stand":
print("状态:站立待机")
elif state == "walk":
print("状态:向前行走")
elif state == "sit":
print("状态:趴下")
elif state == "track":
print("状态:开启目标跟踪模式")
 

第9课:模拟PID简单闭环控制(机器人平衡仿真)

本节课知识点
PID是机器人平衡、无人机最常用算法。根据误差不断修正输出。

这里做简易仿真,不需要硬件,纯代码模拟。

示例代码

python


#简易P比例控制
angle = 8.0 #机身倾斜角度
Kp = 0.2
for _ in range(20):
error = 0 - angle
adjust = Kp * error
angle = angle + adjust
print(f"机身倾斜:{angle:.2f}")
 

本课小练笔

1. 复制P控制代码,初始倾斜12度,循环30次,观察角度回到0。
2. 修改Kp值,观察Kp太大震荡、太小修正很慢的现象。

参考答案

python


angle = 12.0
Kp = 0.2
for i in range(30):
error = 0 - angle
adjust = Kp * error
angle = angle + adjust
print(f"第{i}轮,倾斜角度 {angle:.2f}")
 

第10课:终极综合项目:模拟四足机器狗完整仿真程序

本节课知识点
综合:class类、多线程、状态机、json存档、简单P平衡控制、指令解析、跟踪模式。

纯软件仿真,没有实体硬件,模拟机器狗:站立、行走、趴下、跟踪模式,保存状态到json。

成品代码

python


import threading
import time
import json

class SimRobotDog:
def __init__(self):
self.state = "stand"
self.battery = 100
self.tilt_angle = 0.0
self.running = True
self.Kp = 0.2

def balance_loop(self):
"""平衡校正后台线程"""
while self.running:
error = 0 - self.tilt_angle
adjust = self.Kp * error
self.tilt_angle += adjust
time.sleep(0.05)

def set_state(self,new_state):
self.state = new_state

def show_status(self):
print(f"【状态:{self.state}】 倾斜角度:{self.tilt_angle:.2f} 电量:{self.battery}")

def save_config(self):
d = {"state":self.state,"battery":self.battery}
with open("dog_save.json","w",encoding="utf‑8") as f:
json.dump(d,f,ensure_ascii=False,indent=2)

def load_config(self):
try:
with open("dog_save.json","r",encoding="utf‑8") as f:
d = json.load(f)
self.state = d["state"]
self.battery = d["battery"]
except FileNotFoundError:
pass

if __name__ == "__main__":
dog = SimRobotDog()
dog.load_config()
balance_thread = threading.Thread(target=dog.balance_loop,daemon=True)
balance_thread.start()

print("====模拟机器狗仿真程序====")
print("指令:stand / walk / sit / track / save / status / exit")
while True:
cmd = input(">")
if cmd == "exit":
dog.running = False
break
elif cmd in ["stand","walk","sit","track"]:
dog.set_state(cmd)
elif cmd == "status":
dog.show_status()
elif cmd == "save":
dog.save_config()
print("已保存机器狗状态")
 

本课小练笔

1. 在仿真机器狗类里面,增加 consume_power() 方法,每次执行动作电量减少1。
2. 如果电量小于10,自动切换到 sit 趴下状态。

参考答案片段

python


def consume_power(self):
self.battery -=1
if self.battery < 10:
self.state = "sit"
print("电量过低,自动趴下!")

最新文章

随机文章