PIoT 课程

Python
程序设计

物联网工程专业核心课程

课程定位

用 Python 解决
物联网的真实数据问题

以 Python 为载体,培养物联网数据采集、处理、分析与可视化能力

依据:课程标准

递进式项目链

采集 → 清洗 → 分析 → 可视化

一步接一步,越做越完整

依据:课程标准

课程结构

10 章,从第一行代码
到一个完整项目

语法基础→ 程序结构→ 面向对象→ 文件与异常→ 常用库→ 综合应用
学习目标

知识、能力、价值

01
知识
语法、面向对象、常用库
02
能力
独立写出规范、可复用的代码
03
价值
精益求精,尊重知识产权

依据:课程标准

AI 错误诊断界面示意

PIoT 编码工作台 · AI 错误诊断

AI 辅助编程

会用 AI 编程助手,
也知道它的局限

  • 借助 AI 生成代码
  • 智能 Debug、优化代码
  • 判断它什么时候靠不住

依据:课程标准

理实一体

理论与实践 1 : 1,边讲边练

每一章都是讲一段、练一段,课后再做综合实验

依据:课程标准

课程章节

10 章一张图

01
绪论
装好开发环境
02
语法基础
变量与数据类型
03
流程控制
选择与循环
04
高级数据类型
列表、元组、字典、集合
05
函数
一次定义,多次调用
06
面向对象
类与对象
07
文件和目录
数据读写
08
异常处理
try-except
09
常用库
NumPy、pandas、matplotlib
10
综合应用实例
空气质量数据分析
IDE 运行界面重绘
第1–2章

装好环境,
写出第一行代码

  • 安装 Python 和 PyCharm
  • 变量、数据类型输入输出
  • f-string 格式化输出

依据:PIoT《Python 程序设计》第 1–2 章

学习打卡系统运行界面重绘
第3章 流程控制

顺序、选择、循环

  • 编程任务:学习打卡系统
  • 三个模块显示日期 → 计算经验值 → 给出学习建议

依据:PIoT《Python 程序设计》第 3 章

c_f.py
# 摄氏度转华氏度:一次定义
def c_f(c):
    f = c * 9 / 5 + 32
    return f

# 多次调用
c = float(input("摄氏度:"))
f_temperature = c_f(c)
print(f_temperature)
第4–5章

数据装进容器,
功能写成函数

[ ] 列表 ( ) 元组 { : } 字典 { } 集合

依据:PIoT《Python 程序设计》第 4–5 章

point.py
from math import radians, sin, cos, acos
class Point:
    def __init__(self, lon, lat):
        self.__lon = lon     # 经度
        self.__lat = lat     # 纬度
    def getRadLon(self): return radians(self.__lon)
    def getRadLat(self): return radians(self.__lat)
def distance(p1, p2):
    a, b = p1.getRadLat(), p2.getRadLat()
    c = cos(p1.getRadLon() - p2.getRadLon())
    return 6371 * acos(sin(a)*sin(b) + cos(a)*cos(b)*c)
第6章 面向对象

把城市写成一个类

已知两座城市的经纬度,用 Point 类算出它们之间的距离

城市 A 城市 B distance(p1, p2)

依据:PIoT《Python 程序设计》第 6 章

login.py
class LoginError(Exception):
    pass
def ValidateUsernamePassword(username, password):
    if len(username) < 6:
        raise LoginError("用户名长度不少于6位")
    if len(password) < 9:
        raise LoginError("密码长度不少于9位")
try:
    name, pwd = input("用户名:"), input("密码:")
    ValidateUsernamePassword(name, pwd)
except LoginError as e:
    print(e)
第7–8章

数据存得下,
出错有兜底

  • try-except 捕获异常
  • 自定义异常校验用户名和密码

依据:PIoT《Python 程序设计》第 7–8 章

第9章 常用库

数据分析三件套

ndarray数组运算
01NumPy数组运算
DataFrame数据清洗
02pandas数据清洗
成绩分布直方图(示意数据)
03matplotlib画图

依据:PIoT《Python 程序设计》第 9 章

spider.py
import requests
from bs4 import BeautifulSoup
# url:空气质量数据页地址(占位)
response = requests.get(url=url, headers=headers)
response.encoding = 'GBK'
soup = BeautifulSoup(response.text, 'html.parser')
r1 = soup.find('div', attrs={'class': 'citychk'})
for child in r1.find_all('dl'):
    province = child.dt.b.text
    for city in child.find_all('a'):
        city_list.append([province, city.text, city.get('href')])
第10章 综合应用

把网上的空气质量
数据“爬”下来

  1. 发起请求requests.get
  2. 获取响应response.text
  3. 解析内容Beautiful Soup
  4. 保存数据按省、按城市存成 csv

依据:PIoT《Python 程序设计》第 10 章

典型实训①

一个月的空气,画成看得懂的图

折线 · 看变化饼图 · 看结构日历图 · 看全年分布
空气质量天数饼图(示意数据)
PM2.5 日历图(示意数据)

依据:PIoT《Python 程序设计》第 10 章

guess.py
import random
def newNumber():            # 出题
    return random.randint(1, 101)
def guessNumber(number):    # 猜题
    yAnswer = int(input("enter a integer between 0-100:"))
    if yAnswer > number: print("too big")
    elif yAnswer < number: print("too small")
    else: print("right"); return 1
    return 0
def guessTime(number):
    for i in range(10):
        if guessNumber(number) == 1: break
典型实训②

猜数字小游戏

  • “出题”和“猜题”拆成两个函数
  • 十次机会,猜对就结束
猜数字终端运行效果重绘

依据:PIoT《Python 程序设计》第 5 章

课程评价

过程 30% + 实践 20% + 期末 50%

过程性考核
课程实践考核
期末理论考试

平时表现、实践项目和期末考试一起算,不只看一张卷子

依据:课程标准

伴学跟随界面示意
编程环境与平台

配套编程环境与平台

  • Python 3 开发环境PyCharm / IDLE / Anaconda
  • PIoT 编码工作台伴学跟随
  • 每敲一行知识点同步出现

依据:课程标准

PIoT

写得出代码,也讲得清代码

从一行 print 到一个完整的数据分析项目

广西感知物联科技有限公司 · PIoT