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("电量过低,自动趴下!")