课程 1:Karel机器人
- Karel设计的目的: 学生能够以某种方式在简单的环境中学习编程思想,而不受大多数编程语言所特有的复杂性的影响,那么教授编程基础知识会更加容易。
点击导航栏的 Karel学习 按钮开始学习。
- Karel世界: 通过网站在线课程动画演示认识
- Karel基本指令: 通过网站在线课程动画演示以及动手操作(点击按钮无需输入代码)认识四个基本指令
move()
:让Karel向前移动一格
turn_left()
:让Karel向左转90度
pick_beeper()
:让Karel捡起当前位置的蜂鸣器
put_beeper()
:让Karel在当前位置放下一个蜂鸣器
- Karel编程: 通过网站在线课程动画演示编程。先分析说明实现的功能,运行观察跟所描述的功能与实际是否一致。主要练习四个基本指令。
- 定义新函数: 在Karel编程中,可以通过组合已有的基本指令,定义新的函数,让程序更简洁、易读。
- 使用
def
关键字定义新函数。
- 例如:用
turn_left()
组合出 turn_right()
和 turn_around()
。
# 让Karel向右转,相当于左转三次
def turn_right():
turn_left()
turn_left()
turn_left()
# 让Karel掉头,相当于左转两次
def turn_around():
turn_left()
turn_left()
注释:
- 注释是对代码的解释说明,不会被程序执行。
- 可以帮助自己和他人理解代码的作用和思路。
- 在Python中,使用 # 开头表示单行注释。
# 这是一个注释,解释下面代码的作用
move() # 让Karel前进一步
良好的注释习惯可以让程序更易读、易维护。
文档字符串:
- 文档字符串(docstring)是用于描述模块、类或函数用途的特殊多行注释,通常放在定义体的第一行。
- 使用 ''' ... ''' 或 """ ... """ 包裹内容。
- 文档字符串有助于代码自解释和自动化文档生成。
def greet(name):
"""
打招呼函数
参数:name - 要打招呼的对象
返回:无
"""
print("Hello,", name)
可以通过 help(greet) 或 greet.__doc__ 查看文档字符串内容。
- 任务分解: 任务分解是将一个复杂问题拆解为若干个简单、易于实现的小步骤,有助于理清思路、降低编程难度。
- 例如“填补坑洼”问题,可以分解为:
1.移动到坑洞处
2.通过放下一个蜂鸣器来填补坑洞
3.前往下一个角落
- 每个小步骤可以用一个函数或一段代码实现,逐步组合成完整解决方案。
# 代码示例
def main ():
move()
fill_pothole()
move()
def fill_pothole ():
turn_right()
move()
put_beeper()
turn_around()
move()
turn_right()
通过任务分解,可以让程序结构更清晰,便于调试和维护。
任务分解的原则:
- 自顶向下: 先整体分析任务,再逐步细化为小步骤或子任务。
- 每步简单明确: 每个子任务应尽量简单、易于实现,避免一步包含过多操作。
- 可复用性: 优先将重复出现的操作封装为函数,便于复用和维护。
- 顺序与逻辑清晰: 分解后的步骤要有明确的执行顺序,逻辑关系清楚。
- 迭代测试: 每完成一个小步骤或函数,及时测试,确保正确后再继续分解和实现。
迭代测试有助于及时发现和修正问题,避免错误积累,提升编程效率和代码质量。
温馨提示:多动手实践,遇到问题多尝试,善用动画演示和按钮操作,逐步掌握Karel的基本指令和编程思路。
常见问题与调试建议:
1. 如果Karel没有按预期移动,请检查指令顺序和拼写。
2. 如果遇到错误提示,仔细阅读提示内容,定位问题所在。
3. 可以多运行几次,观察Karel的行为,逐步修正程序。
作业1:拾取报纸