是的。
从过程式、静态类型的编程语言例如 Pascal, C 或者 C++ 以及 Java 的某一子集开始引导学生入门仍然是常见的做法。 但以 Python 作为第一种编程语言进行学习对学生可能更有利。Python 具有非常简单和一致的语法和庞大的标准库,而且最重要的是,在编程入门教学中使用 Python 可以让学生专注于更重要的编程技能,例如问题分解与数据类型设计。 使用 Python,可以快速向学生介绍基本概念例如循环与过程等。 他们甚至有可能在第一次课里就开始接触用户自定义对象。
对于之前从未接触过编程的学生来说,使用静态类型语言会感觉不够自然。 这会给学生带来必须掌握的额外复杂性,并减慢教学的进度。 学生需要尝试像计算机一样思考,分解问题,设计一致的接口并封装数据。 虽然从长远来看,学习和使用一种静态类型语言是很重要的,但这并不是最适宜在学生的第一次编程课上就进行探讨的主题。
还有许多其他方面的特点使得 Python 成为很好的入门语言。 像 Java 一样,Python 拥有一个庞大的标准库,因此可以在课程非常早期的阶段就给学生布置一些 实用 的编程项目。 编程作业不必仅限于标准四则运算和账目检查程序。 通过使用标准库,学生可以在学习编程基础知识的同时开发真正的应用,从而获得更大的满足感。 使用标准库还能使学生了解代码重用的概念。 而像 PyGame 这样的第三方模块同样有助于扩大学生的接触领域。
Python 的解释器使学生能够在编程时测试语言特性。 他们可以在一个窗口中输入程序源代码的同时开启一个解释器运行窗口。 如果他们不记得列表有哪些方法,他们这以这样做:
>>>
>>> L = [] >>> dir(L) ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'] >>> [d for d in dir(L) if '__' not in d] ['append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']>>> help(L.append) Help on built-in function append:append(...)L.append(object) -> None -- append object to end>>> L.append(1) >>> L [1]
通过使用解释器,学生编写程序时参考文档总是能伴随在他们身边。
Python 还拥有一些很好的 IDE。 IDLE 是一个以 Python 基于 Tkinter 编写的跨平台 Python IDE。 Emacs 用户将高兴地了解到 Emacs 具有非常好的 Python 模式。 所有这些编程环境都提供语法高亮、自动缩进以及在编写代码时使用交互式解释器等功能。 请访问 Python wiki 查看 Python 编程环境的完整列表。