Python 是一种通用的编程语言,可用于创建桌面应用程序、3D 图形、视频游戏,甚至网站。 它是入门编程的绝佳语言,因为它易于学习,并且比 C、C++ 或 Java 等复杂语言更简单。 尽管如此,Python 功能强大且足够健壮,可以创建高级应用程序,并且几乎在每个使用计算机的行业中都有使用。 这使得 Python 成为一种适合所有年龄段的优秀语言,无论您是否有任何编程经验。
安装 Python
在学习 Python 之前,您可能需要安装它。
Linux:如果您使用 Linux,则已包含 Python,但请确保您拥有的是 Python 3。 要检查安装的版本,请打开终端窗口并键入
python --version
如果显示您安装的是版本 2,或者根本没有安装任何版本,请尝试指定 Python 3
python3 --version
如果找不到该命令,则必须从您的软件包管理器或软件中心安装 Python 3。 您的 Linux 发行版使用的软件包管理器取决于发行版。 最常见的是 Fedora 上的 dnf 和 Ubuntu 上的 apt。 例如,在 Fedora 上,您键入以下内容
sudo dnf install python3
MacOS:如果您使用的是 Mac,请按照 Linux 的说明查看是否已安装 Python 3。 MacOS 没有内置的软件包管理器,因此如果找不到 Python 3,请从 python.org/downloads/mac-osx 安装。 尽管您的 macOS 版本可能已经安装了 Python 2,但您应该学习 Python 3。
Windows:Microsoft Windows 当前未附带 Python。 请从 python.org/downloads/windows 安装。 务必在安装向导中选择Add Python to PATH。 请阅读我的文章 如何在 Windows 上安装 Python,了解 Microsoft Windows 的具体说明。
运行 IDE
要用 Python 编写程序,您真正需要的只是一个文本编辑器,但拥有集成开发环境 (IDE) 会更方便。 IDE 将文本编辑器与一些友好且有用的 Python 功能集成在一起。 IDLE 3 和 PyCharm (社区版) 是众多选项中的两个,您可以考虑使用。
IDLE 3
Python 自带一个名为 IDLE 的基本 IDE。

opensource.com
它具有关键字突出显示功能,可帮助检测键入错误、代码完成提示以及用于快速轻松地测试代码的“运行”按钮。 要使用它
- 在 Linux 或 macOS 上,启动终端窗口并键入 idle3。
- 在 Windows 上,从“开始”菜单启动 Python 3。
- 如果您在“开始”菜单中没有看到 Python,请通过在“开始”菜单中键入 cmd 来启动 Windows 命令提示符,然后键入 C:\Windows\py.exe。
- 如果这不起作用,请尝试重新安装 Python。 务必在安装向导中选择Add Python to PATH。 有关详细说明,请参阅 docs.python.org/3/using/windows.html。
- 如果仍然不起作用,请使用 Linux。 它是免费的,并且只要将您的 Python 文件保存到 USB 拇指驱动器,您甚至无需安装即可使用它。
PyCharm 社区版
PyCharm (社区版) IDE 是一款出色的开源 Python IDE。 它具有关键字突出显示功能,可帮助检测错别字、引号和括号完成功能以避免语法错误、行号(调试时很有用)、缩进标记以及用于快速轻松地测试代码的“运行”按钮。
要使用它
- 安装 PyCharm (社区版) IDE。 在 Linux 上,最简单的方法是使用 Flatpak 安装。 或者,从 PyCharm 网站下载正确的安装程序版本,并手动安装。 在 MacOS 或 Windows 上,从 PyCharm 网站下载并运行安装程序。
- 启动 PyCharm。
- 创建一个新项目。
告诉 Python 做什么
关键字告诉 Python 您希望它做什么。 在您的新项目文件中,将以下内容键入到您的 IDE 中
print("Hello world.")
- 如果您使用的是 IDLE,请转到“运行”菜单并选择“运行模块”选项。
- 如果您使用的是 PyCharm,请单击左侧按钮栏中的“运行文件”按钮。

opensource.com
关键字 print 告诉 Python 打印出您在括号和引号中提供的任何文本。
但这不是很令人兴奋。 在其核心,Python 只能访问基本关键字,例如 print、help、基本数学函数等等。
您可以使用 import 关键字加载更多关键字。
在 Python 中使用 turtle 模块
Turtle 是一个有趣的模块。 将以下代码键入到您的文件中(替换旧代码),然后运行它
import turtle
turtle.begin_fill()
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.end_fill()
看看您可以使用 turtle 模块绘制哪些形状。
要清除您的 turtle 绘图区域,请使用 turtle.clear() 关键字。 您认为关键字 turtle.color("blue") 有什么作用?
高级 turtle
您可以尝试一些更复杂的代码来获得类似的结果。 您可以使用 while 循环,告诉 Python 执行四次:绘制一条线然后转弯,而不是手动编码每一行和每一个转弯。 Python 能够使用名为 counter 的变量来跟踪它执行这些操作的次数。 您很快将了解更多关于变量的信息,但现在看看您是否能说出 counter 和 while 循环 如何交互。
import turtle as t
import time
t.color("blue")
t.begin_fill()
counter=0
while counter < 4:
t.forward(100)
t.left(90)
counter = counter+1
t.end_fill()
time.sleep(2)
运行脚本后,就可以探索一个更好的模块了。
通过制作游戏学习 Python
为了更多地了解 Python 的工作原理并为更高级的图形编程做准备,让我们专注于游戏逻辑。 在本教程中,我们还将学习计算机程序的结构,方法是制作一个基于文本的游戏,其中计算机和玩家掷虚拟骰子,掷出点数最高的人获胜。
计划您的游戏
在编写代码之前,重要的是要考虑您打算编写什么。 许多程序员在开始编写代码之前编写简单的文档,以便他们有一个要编程的目标。 以下是骰子程序在您随游戏一起提供文档时可能的样子
- 启动骰子游戏并按 Return 或 Enter 键掷骰子。
- 结果将打印到您的屏幕上。
- 系统会提示您再次掷骰子或退出。
这是一个简单的游戏,但文档告诉您很多关于您需要做什么的信息。 例如,它告诉您您需要以下组件来编写此游戏
- 玩家:您需要一个人类来玩游戏。
- AI:计算机也必须掷骰子,否则玩家就无人可赢或输。
- 随机数:一个普通的六面骰子会产生一个介于 1 到 6 之间的随机数。
- 运算符:简单的数学运算可以将一个数字与另一个数字进行比较,以查看哪个更高。
- 获胜或失败消息。
- 再次玩或退出的提示。
制作骰子游戏 alpha 版
很少有程序一开始就具备所有功能,因此第一个版本将仅实现基本功能。 首先是一些定义
变量是一个可以更改的值,它们在 Python 中被大量使用。 每当您需要程序“记住”某些内容时,您都会使用变量。 事实上,代码处理的几乎所有信息都存储在变量中。 例如,在数学方程式 x + 5 = 20 中,变量是 x,因为字母 x 是值的占位符。
整数是一个数字;它可以是正数或负数。 例如,1 和 -1 都是整数。 14、21 甚至 10,947 也是如此。
Python 中的变量易于创建且易于使用。 骰子游戏的初始版本使用了两个变量:player 和 ai。
将以下代码键入到名为 dice_alpha 的新项目中
import random
player = random.randint(1,6)
ai = random.randint(1,6)
if player > ai :
print("You win") # notice indentation
else:
print("You lose")
启动您的游戏以确保它能正常工作。
这个基本版本的骰子游戏运行良好。 它实现了游戏的基本目标,但感觉不太像游戏。 玩家永远不知道他们掷了什么或计算机掷了什么,而且即使玩家想再次玩,游戏也会结束。
这在软件的第一个版本(称为 alpha 版本)中很常见。 既然您确信可以完成主要部分(掷骰子),那么现在是时候向程序添加内容了。
改进游戏
在游戏的第二个版本(称为 beta 版)中,一些改进将使其感觉更像游戏。
1. 描述结果
与其只是告诉玩家他们是否获胜,不如让他们知道他们掷了什么更有趣。 尝试对您的代码进行以下更改
player = random.randint(1,6)
print("You rolled " + player)
ai = random.randint(1,6)
print("The computer rolled " + ai)
如果您现在运行游戏,它将崩溃,因为 Python 认为您正在尝试进行数学运算。 它认为您正在尝试添加字母“You rolled”和当前存储在 player 变量中的任何数字。
您必须告诉 Python 将 player 和 ai 变量中的数字视为句子中的单词(字符串),而不是数学方程式中的数字(整数)。
对您的代码进行以下更改
player = random.randint(1,6)
print("You rolled " + str(player) )
ai = random.randint(1,6)
print("The computer rolled " + str(ai) )
现在运行您的游戏以查看结果。
2. 减慢速度
计算机速度很快。 人类有时可能很快,但在游戏中,最好建立悬念。 您可以使用 Python 的 time 函数在悬念部分减慢游戏速度。
import random
import time
player = random.randint(1,6)
print("You rolled " + str(player) )
ai = random.randint(1,6)
print("The computer rolls...." )
time.sleep(2)
print("The computer has rolled a " + str(player) )
if player > ai :
print("You win") # notice indentation
else:
print("You lose")
启动您的游戏以测试您的更改。
3. 检测平局
如果您玩足够多的游戏,您会发现即使您的游戏似乎运行正常,但实际上存在一个错误:当玩家和计算机掷出相同的数字时,它不知道该怎么办。
要检查一个值是否等于另一个值,Python 使用 ==。 这是两个等号,而不仅仅是一个。 如果您只使用一个,Python 会认为您正在尝试创建一个新变量,但您实际上是在尝试进行数学运算。
当您想要超过两个选项(即,赢或输)时,您可以使用 Python 的关键字 elif,它的意思是else if。 这允许您的代码检查某些结果中的任何一个是否为真,而不仅仅是检查一个事物是否为真。
像这样修改您的代码
if player > ai :
print("You win") # notice indentation
elif player == ai:
print("Tie game.")
else:
print("You lose")
多次启动您的游戏,尝试与计算机掷出的点数打成平手。
编程最终版本
骰子游戏的 beta 版本功能齐全,并且比 alpha 版本更像游戏。 对于最终版本,创建您的第一个 Python 函数。
函数是可以作为不同单元调用的代码集合。 函数很重要,因为大多数应用程序都有大量代码,但并非所有代码都必须一次运行。 函数使启动应用程序并控制发生什么以及何时发生成为可能。
将您的代码更改为如下所示
import random
import time
def dice():
player = random.randint(1,6)
print("You rolled " + str(player) )
ai = random.randint(1,6)
print("The computer rolls...." )
time.sleep(2)
print("The computer has rolled a " + str(ai) )
if player > ai :
print("You win") # notice indentation
else:
print("You lose")
print("Quit? Y/N")
continue = input()
if continue == "Y" or continue == "y":
exit()
elif continue == "N" or continue == "n":
pass
else:
print("I did not understand that. Playing again.")
此版本的游戏会在玩家玩完后询问他们是否要退出游戏。 如果他们回复 Y 或 y,则会调用 Python 的 exit 函数,游戏退出。
更重要的是,您已经创建了自己的函数,名为 dice。 dice 函数不会立即运行。 事实上,如果您在此阶段尝试您的游戏,它不会崩溃,但它也没有真正运行。 要使 dice 函数实际执行某些操作,您必须在代码中调用它。
将此循环添加到您现有代码的底部。 前两行仅用于上下文,并强调哪些内容缩进,哪些内容不缩进。 请密切注意缩进。
else:
print("I did not understand that. Playing again.")
# main loop
while True:
print("Press return to roll your die.")
roll = input()
dice()
while True 代码块首先运行。 因为根据定义 True 始终为真,所以此代码块始终运行,直到 Python 告诉它退出。
while True 代码块是一个循环。 它首先提示用户开始游戏,然后调用您的 dice 函数。 这就是游戏开始的方式。 当 dice 函数结束后,您的循环要么再次运行,要么退出,具体取决于玩家如何回答提示。
使用循环来运行程序是编写应用程序最常见的方式。 循环确保应用程序保持打开足够长的时间,以便计算机用户可以使用应用程序中的函数。
下一步
现在您已经了解了 Python 编程的基础知识。 本系列中的下一篇文章 介绍了如何使用 PyGame 编写视频游戏,PyGame 是一个比 turtle 具有更多功能的模块,但也复杂得多。
本文最初于 2017 年 10 月发布,并已由作者更新。
18 条评论