面向孩子们的 Python 入门指南(一)

原文:Introduction to Python for Kids

协议:CC BY-NC-SA 4.0

一、你知道吗?

我为父母写了这一章的第一部分,其余部分是为孩子们写的。我希望在本章中让你相信编程和 Python 作为你孩子的第一门编程语言的重要性。如果你的孩子比你大(10 岁以上),他们可以自己阅读这些主题。在这一章的后半部分,我将向孩子们简要介绍他们可以用 Python 做的所有有趣的事情,他们将从我的书中学到什么,以及如何充分利用我的书。

那么,让我们开始吧。

什么是编程?

你有你的小工具——你的笔记本电脑、个人电脑、平板电脑、手机等等——只要你让它做什么,在合理的范围内,它就会做什么。怎么做?嗯,这是因为每次你给你的小工具分配任务时,它的预编程指令就会在后台启动。那些指令集被称为代码。

img/505805_1_En_1_Figa_HTML.jpg

您会发现,您的小工具需要一套完整的指令来执行最简单的任务,如打开应用或执行计算。他们毕竟只是机器,只是一切的基础上的 1 和 0。他们不能独立思考,所以我们用代码让他们思考。

换句话说,编程是你的计算机说的语言,不同的编程语言是它理解/说的不同语言。你可能懂英语、法语和普通话,但你可能不懂意大利语或日语。类似地,从字面上看,有数百种编程语言(Python、JavaScript、C、C++、C#、Ruby 等。),你的电脑可能会说几个,或者只说一个,其他的听不懂。

为什么你的孩子应该学习编码?

既然你知道了什么是编程,以及它是如何运行数字世界的,我不应该给你很多理由来说服你教你的孩子编程,对吗?

但是,你可能仍然想知道为什么你的孩子需要学习编程,为什么他们现在要学习 ??。毕竟,在我们这个时代,人们在大学里学习编程,并且只有当他们决定成为一名程序员时。

嗯,我想我有几个理由可以让你相信,为什么在这个时代,不管未来的职业抱负如何,孩子们都应该学习编程,为什么他们现在开始学习是明智的。

编程就像数学

三十年前,没有人敢做出这样的声明,但是现在,时代变了,是的,编程确实像数学一样。它无处不在,就像数学一样。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

至少在我们 18 岁之前,数学是我们教育要求的一部分,但今天并不是我们每个人都是数学家。那为什么数学被强迫灌输给我们?因为数学决定一切。我们在日常生活中需要基础数学,当然在大多数职业生涯中也需要。所以,我们学了从微积分到代数再到几何的所有东西,非常清楚长大后我们可能不会用到 90%的知识。

这正是今天编程的情况。一切都数字化了。从送餐到股市预测,应有尽有。计算机已经进入各个领域,包括建筑和制造等传统领域。现在大多数建筑设备都是数字化的,是什么驱动了它们?程序和数千行代码。

甚至艺术也被数字化了。因此,无论你的孩子进入哪个领域,他们的编程知识都将助他们一臂之力。

但除此之外,编码还通过培养逻辑思维和解决问题的能力来提高孩子的数学能力。

编码提高逻辑思维和创造力

一个矛盾的说法,但在这种情况下是正确的。您的孩子创建的每个代码块都将被逻辑驱动。

逻辑决定编程,一旦他们开始自己编码,他们将学会将一个问题分解成小部分,应用逻辑解决每个部分,然后最终将所有部分组合成一个连贯的解决方案。

img/505805_1_En_1_Figc_HTML.jpg

这就是现实世界中解决问题的方式,不管是在哪个领域,他们将在孩提时代学习这种无价的技能。

但老实说,你的孩子会厌倦逻辑。这就是创造力的来源。这个世界是靠创造力和逻辑运行的,编程也是如此。

编程没有正确的答案。如果他们正在解决问题,他们如何解决并不重要。当然,有最佳实践,但是如果你让两个程序员解决同一个问题,很可能他们的代码块看起来完全不同。

因此,当他们在编程过程中提出一个解决方案,以及针对多个问题的多个解决方案时,他们也会培养创造力。

两全其美,你说呢?

编码是未来

让我们在这里非常诚实。我们正以惊人的速度走向一个完全数字化的社会。一切都数字化了。应用无处不在。人工智能每天都在世界上掀起新的浪潮。在我们知道之前,我们将拥有人工智能驱动的技术来清洁我们的房子和驾驶我们的汽车。

难怪编程在当今世界已经成为一项无价的技能,对程序员的需求每年都在增加。

因此,编码确实是未来,通过在年轻时学习编码,你的孩子将比他们的竞争对手有优势。听起来不错,但是如果你的孩子想成为一名机械工程师,为什么他们需要编程呢?还是金融分析师?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这使我回到我最初的论点。一切都被数字化了,编码无处不在,在每一个领域。所以,如果你的孩子有编程基础,那么他们不会脱颖而出吗?

例如,一个具有编程知识的金融分析师可以自己编写一个股票预测应用,从而为公司节省大量资源,或者他们至少可以流利地使用技术术语,从而更好地指导程序员,并为他们的老板节省数百个生产时间。

所以,不管你的孩子将来要学什么,编程都会帮助他们,在不久的将来,他们会有一项可以赚钱的技能,可以用来赚外快。

在他们十几岁的时候,他们不必以卖汉堡包的最低工资作为副业。他们可以作为一名软件开发人员从事自由职业,用一半的时间工作至少可以多赚三到四倍的钱。

或者更好的是,你的孩子可以决定成为一名企业家。正如你所知道的,几乎每个创业公司都以某种方式与编程和软件有关,所以作为一名程序员,你的孩子可以自己编写应用,轻松节省数万元的程序员费用。

我相信这些都是非常有说服力的论据,可以解释为什么你的孩子需要现在就开始学习编程。

为什么是 Python?

img/505805_1_En_1_Fige_HTML.jpg

好了,现在你已经确信了你的孩子学习编码的好处,但是为什么是 Python 呢?在数十种流行的编程语言中,为什么要从 Python 开始呢?

我坚信 Python 应该是孩子现实世界编程的首选,让我来告诉你为什么。

Python 很简单

嗯,差不多就是这样。孩子们想玩得开心,如果我们想让他们学习编程,那就需要有趣和简单。Python 都是。

不像其他古老的语言,在创建第一个程序之前需要学习大量的语法和理论,Python 非常简单。语法简单易懂,逻辑性强。“打印”只是在屏幕上打印一些东西。很好记,对吧?没有很多记忆要做,你的孩子可以从一开始就开始编码和创作。

对于没有编程知识的初学者来说,它是完美的编程语言,对孩子来说更好,因为它也很有趣。

Python 有许多内置的儿童友好模块和库,可以帮助他们只用几行代码就能绘制图形、创建游戏和有趣的应用。

它可以做很多事情

现在,不要低估 Python,因为它很容易学。它可以用于从 web 开发到桌面应用开发到人工智能的几乎所有领域。

这种语言非常强大,它附带的库和模块甚至更强大。你什么都有附件。

你可以用 Turtle 创建图形,用 Tkinter 创建漂亮的桌面应用(就像你非常喜欢在笔记本电脑上使用的计算器应用),用 Pygame 创建专业游戏,用 DjangoFlask 开发成熟的网站和网络应用,用大量简单易学的库应用机器学习(人工智能)算法。Python 有无限的可能性。

通过用 Python 开始他们的编程之旅,您的孩子不仅仅是步入了编码的世界,他们还用这个时代最受欢迎的(也是最受欢迎的)编程语言之一来武装自己。

还有什么?随着 Python 的受欢迎程度以及它在人工智能等快速发展领域的采用率不断增长,Python 显然会继续存在,因此您孩子的技能在未来不太可能过时。

从现在开始,我将向孩子们致辞。

Python 好玩!

你好。所以,你是来学 Python 的。它不仅易于上手,还附带了许多附加功能,让编程变得有趣。你想知道你能用 Python 创造的所有酷的东西吗?

游戏!

谁不爱游戏,我说的对吗?但是如果你能创造出自己的游戏,然后和你的朋友一起玩呢?如果你能做到这一点,你将成为班上最受欢迎的孩子。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

还有什么?你可以随心所欲地改变游戏的功能。想要五条命而不是三条?太好了,再加两个。不够水平,你已经厌倦了?在你的游戏中编码更多的关卡!让这些水平变得格外困难,给自己一个挑战。你可以自由地做任何你想做的游戏,你甚至可以从你的朋友那里得到建议并应用到你的游戏中。

只需一点点编码,你就能修改你一直不满意的游戏,或者创造一个全新的你可以和朋友一起玩的游戏。

所以,你会在编码和编码之后(玩游戏的时候)玩得很开心*。*

图形和动画

对我来说,图形和动画是仅次于游戏的最好的东西。你呢?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

想象一下,运行一个程序来实时绘制您创建的设计。一部动画怎么样?如果您可以创建设计和动画,并在您一直想创建和玩的游戏中使用它们,会怎么样?

就像我常说的,可能性是无限的,它们只受你的创造力和想象力的限制。和 Python 一起狂奔!

网站

你使用互联网吗?那你现在肯定已经访问了至少 100 个网站了。他们看起来很棒,不是吗?如果你能创建一个和你最喜欢的网站一样的网站会怎么样?

如果你学习 Python,你当然可以。

我说的不是简单的网站。我说的是有很多很酷的功能的大型成熟网站和网络应用。经过足够的练习,你甚至可以创建像脸书和 Instagram 这样的网站和应用。

应用

Python 自带了很多工具,就像你在游戏中使用的工具一样。这些工具在 Python 中被称为库和包。在这些库的帮助下,你几乎可以创建任何东西,包括应用。

img/505805_1_En_1_Figh_HTML.jpg

你用笔记本电脑还是平板电脑?它有很多很酷的应用,对吗?有计算器应用、秒表/计时器应用、绘画应用等等。

如果你能创建那些精确的应用会怎么样?嗯,有了 Python,你当然可以。事实上,你将在本书中学习创建一些应用。你兴奋吗?

不仅如此,有了像 KivyPyQt 这样的包,你甚至可以开始用 Python 创建移动应用。我们不会在这本书里讨论这些包,但是正如你所看到的,你有很多使用 Python 的可能性。

咻!这确实是一个很大的列表。使用 Python,世界就是你的了,快来玩吧!

充分利用这本书

这一章(也是最后一章)将是仅有的两章包含大量文本。在剩下的章节里,我已经尽力让事情保持有趣和实用。

你会遇到很多例子来说明我们所涉及的每一个主题。将会有很多编码,所以我推荐你和我一起编码例子。尽量不要复制粘贴。把所有东西都打出来,这样你就可以熟悉编码了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

每一章都有很多活动、谜题和迷你项目,还有详细的、一步一步的解决方案。我建议遵循前几章的解决方案,但是一旦你足够自信,尝试自己解决难题/活动,然后用给定的解决方案进行交叉验证。

记住,编程没有错解!如果你得到了想要的结果,你就可以开始了。

这本书包括四个顶点项目(大项目)来巩固你的 Python 知识。我建议创建项目,但不要就此止步。尝试在每个项目中改变一些东西,让它成为你自己的。当然,不要忘记向你的家人、朋友和老师展示你的项目!

差不多就是这样。这是一本简单易懂的书,所以不要被它的篇幅所淹没。只要开始动手,开始编码。

摘要

在这一章中,我简要解释了什么是编程,以及为什么你的孩子需要在这么小的年龄就学习编程,而不管他们未来的愿望如何,这一章是写给父母(前半部分)和孩子(后半部分)的。我也给出了令人信服的论据,说明为什么 Python 应该是孩子首选的真实世界编程语言,以及孩子可以用 Python 做什么。我们在本章结尾简要概述了你将从本书中学到的一切,以及充分利用本书的最佳方式。

在下一章,我们将学习如何安装 Python 并创建和执行我们的第一个 Python 程序。

二、我们来装 Python 吧!

在这一章中,我们将深入了解什么是编程,以及如何用它来控制各种小工具。我们还将考虑在我们的系统中安装 Python。让我们开始吧!

说计算机的语言

语言是用于两个或更多人之间的交流,我说的对吗?但是如果有人用你不懂的语言跟你说话,你能听懂吗?当然不是。我也不会!

同样,你的电脑也不能理解它不会说的语言。所以,如果你只是看着你的电脑,用简单的英语命令它打开画图程序,它是听不懂你的。另一方面,如果你用它能理解的语言和它交谈,你肯定会得到回应。

编程语言是计算机理解的语言。Python 就是其中之一。如果你想让你的电脑或手机或 GPS 或平板电脑做些什么,你需要给它们指令。

当您点按画图应用的图标时,您的设备如何知道您实际上已经点按了它?它怎么能打开那个应用而不是别的呢?这是因为一个程序员可能写了一串代码,说当有人点击画图图标时,画图应用应该打开。如果他们修改了代码,写下点击那个图标应该打开谷歌 Chrome 浏览器,那么就会发生这种情况。

所以,一个程序员的工作极其重要。他们让设备工作。他们创造了设备的大脑,使行动成为可能。没有他们的代码,你每天使用的设备将只是一堆塑料、芯片和电线,除此之外别无其他。

所以,如果你学会了说计算机语言,你也可以给你的计算机,或者任何小工具,像这样的指令。一旦你擅长编程,你就可以创建像画图这样的应用或者像《我的世界》这样的游戏。

开始-安装 Python

现在你知道什么是编程了。它只是你给一个小工具/设备的一组指令,让它做你想让它做的事情。

那我们开始编程好吗?Python 是最简单的编程语言之一,所以这正是我们将在本书中学习的内容。

不过,在编写 Python 程序之前,您需要将它安装在您的笔记本电脑或计算机上。还记得我说过你的电脑需要说这种语言来理解你在说什么吗?

现在,您的计算机可能不会说 Python 语言。那是因为 Python 没有安装在里面。一旦你安装了它,你的电脑将在几秒钟内学会这种语言(是的,就是这么快!),然后当你用 Python 给它指令的时候,它会理解你并做出相应的反应。这是魔法!

我会给你一步一步的在你的系统上安装和运行 Python 的指导,所以跟着我做,好吗?我将对 Windows 和 Mac 分别给出说明,所以请直接跳到您设备上的说明。

在 Windows 计算机上安装 Python

让我们先看看如何在 Windows 设备上下载和安装 Python。这些步骤适用于 Windows 及更高版本。

下载 Python

  1. 在你的浏览器上打开以下链接: www.python.org/downloads/

img/505805_1_En_2_Fig1_HTML.jpg

图 2-1

Python Windows 下载页面

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  1. 点击下载按钮(看图 2-1 中的箭头)下载 Python 安装程序。记得我告诉过你编码是神奇的吗?你会看到现在的行动。当你打开页面时,它知道你使用的是 Windows 电脑,无需你告诉它。

在写这本书的时候,我已经下载了 Python 3.8.5 ,但是你可能正在下载一个更新的版本。不要担心那个。继续下载最新版本。

安装 Python

它知道你有一台 Windows 电脑,所以你现在必须安装Python 的 Windows 版本。让我们这样做:

  1. Open the .exe file you just downloaded. You will see a popup like Figure 2-2.

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    图 2-2

    Python 安装设置

  2. Do not forget to click the checkbox that says “Add Python 3.8 to PATH” (Figure 2-3).

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    图 2-3

    将 Python 添加到路径

  3. Once you have ticked the box, click install now. The installation will start, and it will look something like Figure 2-4.

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    图 2-4

    Python 安装进度

  4. Wait until the green bar reaches the end, and you will see a message that says “Setup was successful” (Figure 2-5).

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    图 2-5

    Python 设置成功消息

  5. 按下关闭按钮,你就完成了在电脑上安装 Python。万岁!img/505805_1_En_2_Figc_HTML.gif

在 Mac 设备上安装 Python

接下来让我们看看如何在 Mac 设备上下载和安装 Python。如果您有一台 Windows 计算机,并且已经按照上一节中的步骤安装了 Python,则可以跳过这一节。

Python 通常预装在任何 Mac 设备中,但您的系统中可能有旧版本的 Python。拥有任何软件的最新版本都没有坏处,所以让我们更新我们的 Python,好吗?

下载 Python

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-6

Python Mac OS 下载页面

  1. 在你的浏览器中打开以下链接:www.python.org/downloads/(图 2-6 )。

img/505805_1_En_2_Figb_HTML.jpg

  1. 点击黄色下载按钮下载 Python 安装程序。记得我告诉过你编码是神奇的吗?你会看到现在的行动。

你有没有注意到,当你从你的 Mac 设备访问下载页面时,它会自动显示“为 Mac OS X 下载最新版本”?那是因为 Python 网站的代码读取的是哪个操作系统(Windows,Mac 等。)您正在使用,并给了您自动下载的正确版本。很酷,对吧?

您的包将如图 2-7 所示下载。

img/505805_1_En_2_Fig7_HTML.jpg

图 2-7

Python 3.8.5 包已下载

在写这本书的时候,我已经下载了 Python 3.8.5,但是你可能正在下载一个更新的版本。不要担心那个。继续下载最新版本。

安装 Python

  1. Open the installer and you will see a screen like Figure 2-8.

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    图 2-8

    Python Mac 安装–简介

  2. Click Continue, and you will get the following page (Figure 2-9).

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    图 2-9

    Python Mac 安装–阅读我

  3. Click Continue again, and you will get the following page (Figure 2-10).

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    图 2-10

    Python Mac 安装–许可

  4. Click Continue again (Figure 2-11).

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    图 2-11

    Python Mac 安装–许可协议

  5. While you are at the license page, you might get a popup like the preceding one. Click Agree, and you will get the Installation Type page (Figure 2-12).

    img/505805_1_En_2_Fig12_HTML.jpg

    图 2-12

    Python Mac 安装–安装类型

  6. We are almost there! Click the Install button, and your installation should start immediately. In certain cases, you might see a popup that asks for your username and password like the following one (Figure 2-13).

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    图 2-13

    Python Mac 安装–认证

  7. 输入您的 Mac 用户名和密码,您就可以开始了。如果你正在使用你父母的系统,打电话给他们来帮助你完成这一步。

一旦完成这一步,您应该会看到安装开始(图 2-14 )。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 2-14

Python Mac 安装–安装

img/505805_1_En_2_Fig15_HTML.jpg

图 2-15

Python 包

  1. 等到蓝条跑到最后。应该不会超过几分钟。一旦完成,你的 Python 包应该会打开(图 2-15 )。

恭喜你!你已经下载了 Python!没你想的那么难,是吗?让我们在下一节中尽情享受吧。外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

摘要

在本章中,我们学习了如何在 Mac 和 Windows 中下载和安装 Python。在下一章,让我们看看如何用 Python 创建我们的第一个程序。

三、你的第一个 Python 程序

在这一章中,让我们看看用 Python 创建和运行程序,并创建我们的第一个 Python 程序。

用 Python 创建和运行程序

好了,现在我们已经安装了 Python,让我们开始创建我们的第一个程序。我们不能只在 MS word 或记事本中编写 Python 程序。事情不是这样的。我们需要一个特定的应用,可以理解你写的 Python 代码。这个应用将处理你的代码并给出你想要的结果。

其中一个默认的 Python 应用叫做 IDLE 。它是集成开发和学习环境,由 Python 软件基金会开发。安装 Python 时会自动安装(图 3-1 ):

img/505805_1_En_3_Fig1_HTML.jpg

图 3-1

Python 在 Windows 上空闲

  1. 转到您的应用(在 Windows 或 Mac 中)并输入 IDLE(图 3-1 )。

  2. When you open the application, the Python Shell will open. This is where we will type our Python programs and get our outputs (results) (Figure 3-2).

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    图 3-2

    Python Shell

  3. You can change the way the text looks in this application. You can increase the font, make the text bold, and change the font style. In order to do that, go to Options and click Configure IDLE (Figure 3-3).

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    图 3-3

    配置空闲

  4. When you click it, the following window will pop up (Figure 3-4).

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    图 3-4

    Python 空闲配置窗口

  5. 让我们将字体大小更改为 29(查看突出显示的方块),并选中“粗体”复选框(如果尚未选中的话)。

这就是我们现在要改变的,但是正如你所看到的,你有更多的选择。您可以随意使用它们来格式化 Python Shell 的文本。

Python 交互模式(Python Shell)

使用 IDLE 运行 Python 程序有两种方式。默认的方法是直接在 Python Shell 中输入代码(图 3-5 )。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-5

Python Shell 提示符

你看到箭头所指的兵种了吗?这被称为 Python Shell 提示符。它要求你在提示符后输入你的 Python 代码,这样它就可以运行代码并给出你期望的结果。

每次在 Shell 中键入 Python 代码,按回车键;它将运行该行代码并执行它。这非常方便,因为你可以立即得到结果。

你的外壳可以做数学

没错。您可以在 Python Shell 中进行数学运算。让我们试着做一些基本的操作,好吗?

我想向你证明,Python 不是你第一次学的外星语言。您可以进行极其复杂的数学计算,也可以得到 Shell 中的结果。想看看这是怎么回事吗?

好吧,让我们从简单的开始。在提示符下键入以下内容:

3 + 6

按回车键,你应该会看到下面的结果(图 3-6 )。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-6

一个简单的数学问题

你的 Python 应用只是做数学吗?多酷啊。让我们试试更复杂的东西。

(235 * 542) / (564 + 123)

运行前面的数学表达式,您应该会看到以下结果(图 3-7 )。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-7

能有多复杂?

你可以用计算器交叉验证结果。这是正确的。你可以让方程变得任意复杂,你的 Shell 不到一秒钟就会吐出结果。多试几个看看!

但你能做的就这些吗?数学问题?差远了!你甚至可以在屏幕上打印东西,这就是我们接下来要看的。但话说回来,它也不止于此。你可以用 Python 做很多事情。我不想一开始就给你太多压力,所以我们要慢慢来,好吗?

使用 Python 打印

Python 是一门非常易学的语言。证明?如果你想在屏幕上打印东西,只需使用“打印”命令。Python 或任何编程语言中预定义的代码/命令称为语法。

因此,将消息打印到屏幕上的语法如下:

print('Hello there!')

你需要在“print”后面加上左括号和右括号,并在引号内输入你的信息。它可以是单引号(“消息”)或双引号(“消息”)。

当您运行前面的代码行时,这就是您将得到的结果(图 3-8 )。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-8

打印消息

但是在这里要小心。“print”中的“p”应该是小写的 p,如果使用大写的 p,会得到如图 3-9 所示的错误信息。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-9

“打印”而不是“打印”

错误信息显示“打印”未定义。这是因为就 Python 而言,“print”不同于“Print ”,将内容打印到屏幕上的命令使用小写的 p。换句话说,Python 是区分大小写的。所以一定要使用“命令”或“语法”。

空闲脚本模式

还记得我说过用你的空闲写程序有两种方法吗?到目前为止,我们已经研究了第一种方法。乍看起来很容易,但你注意到它有问题吗?

使用 Shell 时,您可以获得每一行代码的输出,只要您编写非常简单的代码行,这就可以了。但是,一旦你开始编写实际的程序,你会想要一个应用,处理多行代码在一起,并给你最后的结果。您需要脚本模式来实现这一点。

让我们看看这是如何工作的。让我们印上同样的“你好!”语句,但现在处于脚本模式。

转到新档(图 3-10 )。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-10

打开一个新文件

一个无标题的文档将像下面这样打开(图 3-11 )。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-11

无标题文档

进入文件另存为(图 3-12 ),用保存文件。py 扩展。。py 表示一个特定的文件包含 Python 代码,并且需要这样执行。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-12

保存您的。py 文件

我们将文件命名为 print.py 。点击保存,你应该会看到你的文件名从无标题变成了 print.py,现在,你可以随意命名你的文件,但是只要确保保存类型是**“Python files”**或者你给出一个扩展名。或者两者都有,好吗?

现在,让我们再次键入我们的代码行(图 3-13 ):

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-13

编写您的代码行

print('Hello there!')

这就对了。你已经编写了你的第一个 Python 程序。呼呼!外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

让我们运行它,好吗?

转到运行➤运行模块(图 3-14 )。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-14

运行程序

它会要求你再次保存代码。单击确定。您的 IDLE 应该再次打开 Shell 窗口,在最后一个提示中,您应该看到结果(“Hello there!”)打印出来,如图 3-15 所示。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-15

输出(结果)

现在你已经运行了你的第一个 Python 程序,并且得到了你的第一个结果!又来了!外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Python 活动:打印您的姓名(以及其他一些内容)

现在我们来到了我们的第一个 Python 活动。你要打印你的名字。实际上,我们为什么不做个小介绍呢?你要介绍你自己,并把介绍打印在屏幕上。

不要担心。这并不难做到。我会教你怎么做。让我们创造一个虚构的人物,给她取名苏珊·史密斯。让我们假设她 9 岁,她喜欢小狗。现在让我们向世界介绍她吧!

打开一个新文件,保存为 introduction.py,你知道怎么做吧?

现在,跟我来。在文件中键入以下内容:

print('Hello there!')
print('My name is Susan Smith.')
print('I am 9 years old.')
print('I love puppies! :)')

我们需要在屏幕上打印出多行,所以我们创建了多个打印语句。让我们保存刚刚创建的代码并运行它。进入运行运行模块

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图 3-16

打印到屏幕上的简介

我们的介绍在屏幕上(图 3-16 )!

现在,我希望你在介绍时也这样做。你叫什么名字?你几岁了?你喜欢什么?打印屏幕上的所有内容。去吧。这很容易做到。

恭喜你,你现在是一名初露头角的 Python 开发者了。外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

摘要

在这一章,我们看了 IDLE 和它的交互式编程环境。我们在 Python Shell 中尝试了一些数学问题,然后创建了我们的第一个 print 语句。然后我们学习了脚本模式以及一次编写和运行多行代码。我们以一个活动结束了这一章,在这个活动中,我们介绍了自己,并在屏幕上打印了多行代码。

在下一章中,我们将会看到在 Python 代码中使用数字,操作数字,等等。

四、Python 喜欢数字

在前一章中,我们学习了如何开始使用 Python。我们看了看为 Windows、Mac 和 Linux 下载最新版本的 Python,然后看了看使用 IDLE 创建我们的第一个 Python 程序。

让我们在这一章看看如何玩数字。我们将看看如何在变量中存储数字,以及在 Python 中可以使用的不同类型的数字。

Python 中的数字

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

数字在任何事情中都扮演着非常重要的角色,所以难怪它们在编程中也很重要。你想在未来成为一名顶尖的游戏程序员吗?那么你需要知道你的数字。你想让球去哪里?你的太空枪应该向你的外星人射出多少子弹?子弹应该有多快?你的角色应该跑多快,或者走多快,或者做任何事情多快?你需要数字来确定所有这些以及更多。

此外,一旦你开始编程和创建不同类型的项目,你会发现数字在几乎每一种编程中都扮演着重要的角色,而不仅仅是游戏。

所以,事不宜迟,让我们看看如何在 Python 中创建数字,如何存储它们,如何使用它们,等等。

存储您的号码

我们已经看过 Python 中的数字了,还记得吗?在空闲 Shell 中键入以下内容:

3 + 5

按 Enter 键,您将获得以下输出:

8

在 Python 中玩数字就是这么简单。但是你发现问题了吗?你对结果和数字真的无能为力。编程就是自动化,我说的对吗?但是现在还没有太多的自动化。

我们能做什么?那么,如果我们可以把这些数字存储在某个地方,这样我们就可以多次使用它们,会怎么样呢?如果我们把结果存储在别的地方,这样我们就可以用它来做进一步的计算,会怎么样呢?你明白我在说什么吗?

除非你开始储存你的价值观,不管是数字、字母还是单词,否则你在编程方面做不了什么。

好吧,这很好,但是你怎么储存它们呢?Python 中有没有一个秘密容器,把你想要的所有值都存储在里面,等你需要的时候拿出来玩?不完全是,但是你可以制造这样的容器。甚至更好,不是吗?您可以创建称为变量的信息容器,在其中存储您想要的值。你可以创建无限数量的容器!😮

那么,如何创建这些变量呢?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

看看你的橱柜。你必须看到一个容器,里面装着你父母用来烹饪的每一种调味品,甚至是盐、胡椒和糖等常见的烹饪原料。你妈妈可能给它们贴了这样的标签,我说的对吗?

标有盐的容器里有盐,或者她可能有一个她理解的暗号。

类似地,你也要标记你的变量。有一定的规则来标记它们,但除此之外,你可以自由支配以任何方式标记你的变量,所以尽情享受吧。只要确保你以后阅读标签时能理解它们就行了。你需要知道你的容器里有什么,不是吗?

创建变量就是这么简单。决定一个标签/名称,并将其输入到您的 Shell 或脚本中,您就创建了您的变量。

但是如果变量中没有存储信息,它就没有用,你可以用“=”号来实现。我们在数学中用等号表示答案,不是吗?同样,在 Python 中,我们用它给变量赋值。变量在“=”的左边,值在右边。

让我给你看一些例子,让你更好地理解。

为什么我们不把上次计算中的数字存储在两个独立的变量中,这样我们就可以根据需要重用它们了?

让我们打开一个新的脚本文件(你知道怎么做),并将其保存为 numbers.py。我们将使用该文件来测试本章中的示例。

num1 = 3
num2 = 5

我将它们命名为 num1 和 num2,作为 number1 和 number2 的简写形式,所以当我回顾代码时,我记得它们指的是什么。

让我们测试一下 num1 和 num2 中是否真的存储了数字。我们为什么不把它们打印出来看看?

print(num1)
print(num2)

当我们运行前面的四行代码时,我们将得到如下结果:

= RESTART: C:/Users/aarthi/AppData/Local/Programs/Python/Python38-32/numbers.py
3
5

如您所见,变量确实存储了数字。所以,你的程序现在已经创建了两个容器,标记为 num1 和 num2,就像你妈妈标记盐和糖的容器一样。“num1”中包含值 3,“num2”中包含值 5。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

让我们更进一步。我们为什么不创建另一个变量,叫做 sum,把两个数的和存储在里面呢?

sum = num1 + num2
print(sum)

当我们现在运行 numbers.py 时,我们将得到以下结果:

= RESTART: C:/Users/aarthi/AppData/Local/Programs/Python/Python38-32/numbers.py
3
5
8

太好了。“sum”保存现在“num1”和“num2”的总和。你看到这有多方便了吗?我们不必就此止步。我们实际上可以改变这些变量的值!我们试试换 num1。我将清除脚本文件,这是留给我的内容:

num1 = 3
print(num1)
num1 = 6
print(num1)

正如您在前面的代码中看到的,我们首先将 3 赋给 num1,然后将 num1 中存储的值更改为 6。让我们看看这是否可行:

= RESTART: C:/Users/aarthi/AppData/Local/Programs/Python/Python38-32/numbers.py
3
6

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

是的,它是!“num1”最初有 3 个,但现在它有 6 个存储在里面,如果你打印 num2,你会注意到值不变为 5。所以,我们实际上可以改变变量中存储的值。我们现在手里握着一个真正项目的雏形!

但是不要太兴奋。创建变量时有一些规则要遵循。不过不要担心,规则是相当温和的。确保在创建变量时遵循这些规则,否则会出现错误。

我将列出它们,以便您以后参考:

  1. 变量应该以字母或下划线(_)开头,不能有其他字符(不能有数字或特殊字符,如!、#、$、%等。).

  2. 变量只能包含字母、数字和下划线(_)。

  3. 变量区分大小写。“num1”与“Num1”不同。

很简单,你不觉得吗?但是我们都不喜欢理论,所以让我们来测试一下这些规则,看看它们是否正确。回到您的 Shell 提示符。我们先创建一个遵循规则的变量,然后我们打破规则,看看会发生什么。

_var5 = 1

当我运行前面的代码时,什么也没有发生。看起来前面的变量被接受了。它以下划线开头,里面只有字母和数字。

如果我违反了第一条规则呢?

1var_ = 1

糟糕,我收到一个错误,内容如下:

SyntaxError: invalid syntax

如果我的变量开始是正确的,但是没有遵循第二条规则怎么办?

var$s = 5

再次出错:

SyntaxError: invalid syntax

让我们看看规则 3 是否也是正确的。让我们回到我们的数字。这一个的 py。让我们删除文件中的所有其他内容,并键入以下内容:

num1 = 3
Num1 = 7
print(num1)
print(Num1)

当您运行前面的代码行时,您应该会看到:

= RESTART: C:/Users/aarthi/AppData/Local/Programs/Python/Python38-32/numbers.py
3
7

看那个!Num1 和 num1 中可能有相同的字母和数字,但是大小写(N 和 N)完全不同。因此,Python 变量确实是区分大小写的。

我们已经成功验证了所有规则。咻!

评论

“评论”在英语中是什么意思?你有什么评论吗?描述一下?类似的东西,对吗?

类似地,您可以在 Python 代码上编写注释来描述它们。你可以把它们写在你的代码行之前或之后。这些注释仅供参考,Python 既不会读取也不会执行。

每当您在键入任何内容之前添加“#”(散列符号)时,该特定行就成为客户端。然而,当你开始一个新行的时候,你又回到了你的常规编码。因此,您的“#”正好创建一行注释。

#This is a comment

您可以使用注释来描述代码行,这样当您稍后阅读您的脚本时,您就会明白发生了什么。你也可以和你的朋友分享你的代码,你的评论会帮助他们理解它。

当您使用“#”符号时,您会创建单行注释。如果你想让你的评论跨越多行呢?

这也有一个语法:

'''
This
is
a
multi-line
comment
'''
(or)

"""
This
is
a
multi-line
comment
"""

用三个单引号/双引号(不加空格)写下你的评论,这样你就有了一个多行的评论。

你的数字有不同的形式

现在我们知道了变量是如何工作的,以及如何使用它们来存储我们的数字。在我们继续玩之前,我想给你看样东西。您知道 Python 中有不同类型的数字吗?

是的,就像数学中有整数和带小数点的数字一样,Python 中也有整数和浮点数。您甚至可以让 Python 检查代码中使用的数字类型,或者将一种数字类型转换成另一种。现在让我们看看所有这些。

整数

整数称为整数,简称 int。

让我们再次清除 numbers.py,从下面的代码行开始:

num1 = 3

“num1”存储一个整数 3。任何不带小数点的数字都是整数。

你实际上可以检查一个数字是否属于特定的类型。Python 有这些叫做内置函数的东西,可以用来做很多很酷的事情。因为它们是内置的,因为它们已经内置到 Python 中了,所以你不需要知道它们在后台是如何工作的。你可以用它们来得到你想要的结果。

例如,有一个名为“type”的内置函数,带有一个小“t”,可用于查找数字的类型。让我们找出“num1”中存储的是什么样的数,好吗?

print(type(num1))

在前面的代码行中,我让 Python 查找 num1 的类型。同样,变量或数字应该在左括号和右括号内,就像我们处理 print()语句一样。然后,我将整个内容放在一个 print 语句中,因为我想打印结果。否则,我就看不到类型检查的结果。

让我们运行前面的代码行,看看我们会得到什么:

= RESTART: C:/Users/aarthi/AppData/Local/Programs/Python/Python38-32/numbers.py
<class 'int'>

给你。上面写着‘int’,意思是整数。

这也适用于负数。

num1 = -3
print(type(num1))

结果仍然是这样的:

= RESTART: C:/Users/aarthi/AppData/Local/Programs/Python/Python38-32/numbers.py
<class 'int'>

所以,正负整数都叫整数。

现在让我们为其余的类型做同样的事情,好吗?

浮点数

浮点数有小数点。即使只有一个小数点,也会被归类为浮点。

num2 = 5.5
print(type(num2))

如果您运行前面的代码行,您将得到以下输出:

= RESTART: C:/Users/aarthi/AppData/Local/Programs/Python/Python38-32/numbers.py
<class 'int'>
<class 'float'>

看那个。最后创建的变量中存储了一个浮点数。

同样,正负小数点数字在 Python 中都称为浮点数。让我们检查一下!

num2 = -5.5
print(type(num2))

结果将是这样的:

= RESTART: C:/Users/aarthi/AppData/Local/Programs/Python/Python38-32/numbers.py
<class 'float'>

是的,它是一个浮点数。

复数

现在,让我们看看复数。你在学校学过复数吗?这些数字有实部和虚部,对吗?如果你还没有在学校学过,但是你很好奇,我建议你自己去读一读。你可以请你的父母帮助你做这项研究。一个简单的谷歌搜索应该可以消除你的疑虑。这是一个非常有趣的数学概念。另一方面,你可以跳过下一部分。这个决定完全取决于你。我们不会在任何程序中大量使用复数,所以不用担心它们。

num3 = 2 + 3j
print(type(num3))

因此,2 + 3j 是复数,其中 2 是实数,3 是虚数。如果我们运行前面的代码行,最终输出将是这样的:

= RESTART: C:/Users/aarthi/AppData/Local/Programs/Python/Python38-32/numbers.py
<class 'int'>
<class 'float'>
<class 'complex'>

这就对了。最后一个数字是一个复数。我们实际上可以分别提取实部和虚部。你想看看是怎么回事吗?

如果您想从一个复数中提取实数,请键入该数字(或包含该数字的变量),然后在其后跟一个句点(。),然后在后面加上关键字“真实”。关键字类似于 Python 中预定义的工具/方法。它们在后台做我们不知道的事情,但是在前台给我们想要的输出。在我们的例子中,我们将能够成功地提取实数。

print(num3.real)

同样,对于提取虚数,键入“imag”而不是“real”。

print(num3.imag)

当您运行前面的代码行时,您将获得以下输出:

= RESTART: C:/Users/aarthi/AppData/Local/Programs/Python/Python38-32/numbers.py
<class 'int'>
<class 'float'>
<class 'complex'>
2.0
3.0

查看前面输出中的最后两行。2.0 是实数,3.0 是虚数。它们将被提取为浮点数。

我之前说过,你可以直接给出数字。但是在这之前你需要处理一些事情。

print(3 + 4j.imag)

如果您尝试运行前面的代码行,您的代码将会出错,就像这样:

= RESTART: C:/Users/aarthi/AppData/Local/Programs/Python/Python38-32/numbers.py
<class 'int'>
<class 'float'>
<class 'complex'>
2.0
3.0
7.0

Python 认为你的虚数是 7.0 而不是 4.0。为什么呢?嗯,那是因为 Python 把 3 和 4 相加,得到的结果是 7,再把 j 加进去。所以根据它,你的复数现在是 7j 而不是 3 + 4j。在本章的下一节,我会告诉你所有关于“执行顺序”的内容,但是现在,我想让你知道在处理表达式时括号的重要性。

如果我们将复数包装在()中,让我们看看会发生什么。

print((3 + 4j).imag)

运行前面的代码行,得到如下结果:

= RESTART: C:/Users/aarthi/AppData/Local/Programs/Python/Python38-32/numbers.py
<class 'int'>
<class 'float'>
<class 'complex'>
2.0
3.0
4.0

太好了。我们得到了想要的结果。因此,圆括号保持了表达式的原样。

数字之间的类型转换

您可以将一种数字类型转换成另一种。我们将使用更多的预定义函数(方法)来完成这项工作。

若要将浮点数或复数转换为整数,请使用 int()方法。让我们清空 numbers.py 文件,重新开始。或者,您可以在我们重新开始时创建并命名一个新的脚本文件,特别是如果您希望保存每个示例的话。

num1 = 3.0
print(num1)
print(int(num1))

在前面的例子中,我在变量“num1”中存储了一个浮点数 3.0。我先打印了准确的数字。然后,我使用 int()函数将“num1”转换为整数,并打印出来。让我们看看结果:

= RESTART: C:/Users/aarthi/AppData/Local/Programs/Python/Python38-32/numbers.py
3.0
3

看那个。小数点现在没了。但是如果我们有小数点后的数字呢?接下来会发生什么?

让我们将 num1 的值编辑为 3.45,然后再次测试。

num1 = 3.45
print(num1)
#convert the number to an integer
print(int(num1))

运行前面的代码行,您将得到这样的结果:

= RESTART: C:/Users/aarthi/AppData/Local/Programs/Python/Python38-32/numbers.py
3.45
3

有意思。我们仍然得到 3,即使算上小数,这个数字接近 3.5。为什么会这样?那是因为 Python 正在做一个叫做舍入的东西。不管小数点是什么,当你进行整数转换时,它只是去掉小数点,保留整数。让我们试试 3.9,看看这是不是真的:

num1 = 3.9
print(num1)
print(int(num1))

运行上面几行代码,得到:

= RESTART: C:/Users/aarthi/AppData/Local/Programs/Python/Python38-32/numbers.py
3.9
3

我们还是没有拿到 4。☹:当你进行整数转换时,它只是去掉小数点,不管它们有多大。别担心。当我们查看 Python 中更多的内置数学函数时,您将了解如何基于小数点进行适当的舍入。

现在,让我们把一个复数转换成 int。

num1 = 3+4j
print(num1)
print(int(num1))

当我们运行前面的代码行时,我们得到如下结果:

= RESTART: C:/Users/aarthi/AppData/Local/Programs/Python/Python38-32/numbers.py
(3+4j)
Traceback (most recent call last):
  File "C:/Users/aarthi/AppData/Local/Programs/Python/Python38-32/numbers.py", line 3, in <module>
    print(int(num1))
TypeError: can't convert complex to int

天啊,我们出错了!为什么会这样?理论上,把一个复数转换成整数是不可能的,因为,你会提取哪一部分呢?

但是,如果要提取实部或虚部,可以将转换成整数。让我们试试那个。

我先把提取的实数保存在另一个变量“r”里。

num1 = 3+4j
#Find the real part of the number
r = num1.real
print(r)
print(int(r))

在前面几行代码中,我提取了实数,将其赋给变量“r”,然后将其转换为整数。当我们运行前面的代码行时,我们将得到以下结果:

= RESTART: C:/Users/aarthi/AppData/Local/Programs/Python/Python38-32/numbers.py
3.0
3

接下来让我们将整数转换成浮点数。我们需要使用 float()内置方法。

num1 = 3
print(num1)
print(float(num1))

当您运行前面的代码行时,您将得到这样的结果:

= RESTART: C:/Users/aarthi/AppData/Local/Programs/Python/Python38-32/numbers.py
3
3.0

成功转换!

这适用于复数吗?你怎么想呢?不,他们不会。我们将不得不再次提取实数或虚数,但是提取已经产生了浮点数,所以为什么要转换它们呢?

现在让我们把整数和浮点数都转换成复数。您必须使用 complex()函数来实现这一点。

num1 = 3
print(num1)
print(complex(num1))

运行前面的代码行,您将得到这样的结果:

= RESTART: C:/Users/aarthi/AppData/Local/Programs/Python/Python38-32/numbers.py
3
(3+0j)

看那个!它把整数作为复数的实部,虚部是 0。

现在让我们用浮点数试试。

num1 = 3.5
print(num1)
print(complex(num1))

运行前面的代码行,您将得到这样的结果:

= RESTART: C:/Users/aarthi/AppData/Local/Programs/Python/Python38-32/numbers.py
3.5
(3.5+0j)

它将整个浮点数作为复数的实部,虚部仍为 0。有意思!

迷你项目-你理解数字吗?

这不仅仅是一个小项目,这将是一个测试你对手头主题理解的活动。你懂 Python 中的数字吗?让我们看看!

我先描述一下问题陈述。我希望你在看我的解释之前先试一试。我们仍在一步一步地走,所以我已经确保这个活动不会太难。

问题陈述:创建三个变量(num1、num2 和 num3)并分别在其中存储数字 3、5.5 和 3 + 5j。然后,将 num1 转换为浮点数,将 num2 转换为整数。提取 num3 的虚数,替换 num3 中的虚数,并将其转换为整数。在屏幕上显示三个转换后的数字。用注释描述重要的代码行。

解决方案:

这是一个非常简单的问题,不是吗?不要担心,一旦我们涉及到更多的话题,你会看到更复杂、更有趣的内容。外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

以下是整个程序:

#Created num1, num2 and num3 and stored the respective values
num1 = 3
num2 = 5.5
num3 = 3 + 5j
#convert num1 into a floating point number
num1 = float(num1)
#convert num2 into an integer
num2 = int(num2)
#Extract the imaginary part of num3 and place it back in num3
num3 = num3.imag
#Convert the imaginary number (floating) into an integer
num3 = int(num3)
#Print everything
print(num1)
print(num2)
print(num3)

我已经在评论里描述了我所做的一切,就像问题所问的那样。代码和注释是不言而喻的,所以我相信您理解它们。为什么不尝试不同的组合和转换来更好的理解题目呢?

摘要

在这一章中,我向你介绍了数字以及如何在 Python 中使用它们。我们研究了使用变量存储数字,以及 Python 允许您创建和操作的不同类型的数字。

五、让我们一起玩转数字吧!

在前一章中,我简要介绍了在 Python 中使用数字、创建和存储数字以及可以使用的不同类型的数字。

让我们在这一章中通过看看如何使用你的数字来做计算,以及如何在 Python 的预定义数字方法中获得真正的乐趣,来看看如何使用这些数字。

拿出你的号码来玩吧

我们已经学习了在 Python 中创建和存储数字以及不同类型的数字。但是我们还没有对他们做任何事情,不是吗?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

你想最终玩你的数字吗?没错。

你也可以用 Python 做几乎所有你在数学上做的事情。你可以把两个或两个以上的数相加,数乘,数除,数减,还不止于此!你可以比通常的计算多做一点。如果你一直在做同样的计算,编程还有什么乐趣呢?

你有能找到除法余数的运算符。是的,你没看错。你再也不用通过漫长的过程来寻找剩余的东西了。我打赌你的计算器不会这么做!

你也可以做指数运算。想求 5 * 5 * 5 的结果?那是 5 的 3 次方。Python 有一个单一的操作符可以用来做这件事。还有什么?想让数字和功率有多大就有多大,你还是会立刻得到你的结果。

基本数学运算

事不宜迟,让我们看看在 Python 中可以使用的所有操作。我将通过例子解释操作符是如何工作的。清除 numbers.py 文件或创建新的脚本文件。

先来看加法。需要使用“ + ”符号将两个数相加。如果要将三个数字相加,请使用“ + ”两次。就像你在数学课上做加法一样。

num1 = 5
num2 = 7
add = num1 + num2
print(add)

当您运行前面的代码行时,您将得到这样的结果:

= RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
12

答案是正确的!让我们把事情变得更复杂,好吗?

num1 = 55.876
num2 = 100.54
#Add num1 and num2
add = num1 + num2
num3 = 1235.583
#Add the value in num3 to the current value in add
add = add + num3
print(add)

我们创建了两个数字“num1”和“num2”,将它们相加,并将结果存储在变量“add”中。然后,我们创建了另一个变量“num3 ”,并在其中存储了另一个数字。我们将“add”的当前值与“num3”相加,并将其存储回“add”中,然后打印“add”的最终值。让我们看看我们得到了什么:

= RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
1391.999

用你的计算器交叉验证。我确信那是正确的答案。如您所见,您可以添加多个数字。你也可以改变你的变量的值,通过计算它的当前值,并把它重新存储(在编程中叫做重新赋值)回那个变量。

我们在 Python 里学过加法。同样的规则也适用于减法、乘法和除法。让我们快速地看一下它们。

你需要用“”符号做减法,“ / ”做除法,“ *** ”做乘法。与数学不同,在编程语言中使用“ x 或“ X 进行乘法运算是行不通的。

num1 = 20
num2 = 10
#Addition
add = num1 + num2
print(add)
#Subtraction
sub = num1 - num2
print(sub)
#Multiplication
mul = num1 * num2
print(mul)
#Division
div = num1 / num2
print(div)

当您运行前面的代码行时,您会得到这样的结果:

= RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
30
10
200
2.0

你注意到什么了吗?每隔一次运算(加法、减法和乘法)都会产生一个整数作为输出,但是除法的结果是一个浮点数。记下这一点。在 Python 中除法总是产生十进制数。如果没有小数点,它只会以“ .0 ”结束结果,但它仍然是一个十进制(浮点)数。

Python 中的特殊数学运算

我们已经看了常见的操作符。现在来看看特别的。

你需要使用乘法运算符两次来做取幂运算。“**”是你要找的接线员。

因此,不要键入 2 * 2 * 2 * 2 ,这意味着 2 的 4 次方(2 乘以自身四次),您可以只键入 2 ** 4 ,您会得到相同的结果。如果你必须将 2 乘以 20 次,只需输入 2 ** 20 。有了这个操作员,您可以节省大量的时间和空间。

让我们看一些例子。

exp = 2 ** 4
print(exp)
exp = 2 ** 20
print(exp)
exp = 5.5 ** 3
print(exp)
exp = 5.5 ** 3.5
print(exp)

正如您在前面的代码中看到的,求幂运算也适用于浮点数。数字和指数(幂)都可以是浮点数。让我们看看结果,看看它是否有效,好吗?

= RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
16
1048576
16.5
19.25

是的,有效!

现在,让我们找到我们的余数。用模运算符“ % ”代替除法运算符“ / ”,就可以得到运算的余数。还记得一个数除以另一个数会发生什么吗?你得到一个商和一个余数,对吗?你的模数操作符也会做同样的事情,但是它只会返回余数而不是商。如果想求同一个运算的商,就用同一个数的除法运算符。

#Division
div = 5 / 2
print(div)
#Remainder
r = 5 % 2
print(r)

当您运行前面的代码时,您将得到这样的结果:

= RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
2.5
1

你看到发生了什么吗?您得到除法的浮点值作为第一个结果,得到 5 / 2 的余数作为第二个结果。

但是如果你只需要商,而不需要带小数点的完整结果呢?你也可以选择!

它被称为楼层除法运算符。用两个正斜杠写,像这样:“ // ”。

它会将你的数字相除,只返回整数,忽略小数点。让我们用简单和复杂的例子做同样的尝试。

floor = 5 // 2
print(floor)

当您运行前面的代码时,您将得到这样的结果:

= RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
2

看那个。我们只得到 2,而不是 2.5。2 是运算 5 / 2 的商。所以,如果你想分别得到商和余数,可以用除法运算得到商,用模运算得到余数。

让我们看一个更复杂的例子来测试这是否真的有效:

#Division
div = 100 / 15
print(div)
#Quotient
q = 100 // 15
print(q)
#Remainder
r = 100 % 15
print(r)

当您运行前面的代码时,您将得到这样的结果:

= RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
6.666666666666667
6
10

当你把 15 乘以 6 时,你会得到 90。所以,100 / 15 的商是 6,余数是 10。我们得到了正确的答案。有效!外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

赋值操作

Python 有一种叫做赋值操作的东西,可以让我们变得简单。我们已经看过其中一个了。还记得等于,“ = ”的运算符吗?您可以使用该运算符为变量赋值。

让我们快速看一下剩下的部分。它们很容易理解。

还有就是 += 运算符。

a += 5 基本意思是 a = a + 5 。所以,如果你想给一个变量加一个值,然后把它重新赋给同一个变量,就用这个操作符。

同样,你有 -= 、 *=/==%=/=

现在让我们看看所有这些例子。阅读以下代码行中的注释,了解每行代码的作用:

num = 5
#Add and re-assign 5
num += 5
#Ans -> 10
print(num)
#Subtract 5 from num
num -= 5
#Ans -> 5
print(num)
#Multiply the current value of num with 2
num *= 2
#Ans -> 10
print(num)
#Divide the value of num by 2
num /= 2
#Ans –> 5.0
print(num)
#Calculate num to the power 2 and re-assign it
num **= 2
#Ans –> 25.0
print(num)
#Find the quotient of num / 3
num //= 3
#Ans –> 8.0
print(num)
#Find the remainder of num / 3
num %= 3
#Ans –> 2.0
print(num)

当您运行前面的代码行时,您将得到以下结果:

= RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
10
5
10
5.0
25.0
8.0
2.0

你在之前的行动中有没有发现什么奇怪的事情?我们从整数开始,但是当我们执行除法运算时,不管运算如何,其余的结果仍然是浮点型的。我们知道为什么我们在除法运算中得到一个浮点。除法总是产生一个浮点数。但是,为什么在其余的行动中仍然如此呢?

这是因为对浮点数执行运算总是会得到一个浮点数,即使另一个数字是整数。

什么先来?

Python,实际上任何编程,在执行数学运算的顺序上,都有一种叫做优先级的东西。你一定在数学课上也学过这个。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

还记得 BODMAS 规则吗?它基本上是说,括号内的任何东西首先执行,然后是除法,然后是乘法,然后是加法,最后是减法。

Python 没有确切的规则,但它有一些类似的东西。

Python 中的优先级规则如下:

  • 执行顺序从左到右。

  • 括号具有最高的优先级。

  • 然后是取幂运算符**。

  • 然后是乘法(*)、除法(/)、地板除法(//)和模数(%)运算符。它们具有相同的优先级别。

  • 最后,还有加法(+)和减法(-)运算符,它们也具有相同的优先级。

  • 为什么我们不测试一下这些规则呢?

    就拿下面这个表达式来说吧:2 + 3 * 5。

    让我们在 Python Shell 中运行前面的表达式,看看会得到什么:

    >>> 2 + 3 * 5
    17
    
    

    为什么是 17?既然执行顺序是从左到右发生的,那么 2 + 3 不是应该先执行得到 5 吗,结果(5)不是应该已经乘以 5 得到 25 而不是 17 吗?

    这就是优先权的来源。尽管执行的顺序是从左到右,但是具有较高优先级的操作(在本例中是乘法)将首先执行,然后的结果将被加到第一个数字上(在本例中)。

    但是如果有括号会怎么样呢?

    >>> (2 + 3) * 5
    25
    
    

    现在我们得到一个 25,因为即使加法的优先级比乘法低,括号的优先级最高,所以它们首先被执行。

    如果有两个括号呢?

    >>> (2 + 3) * 5 * (1 + 2)
    75
    
    

    前面的表达式是这样做的:(5) * 5 * (1 + 2) = 5 * 5 * 3 = 75。

    当两个操作具有相同的优先级时,遵循从左到右的规则。既然你知道了数字中的优先级是如何工作的,为什么不写下不同的表达式,并猜测它们在 Python 中是如何执行的呢?然后您可以执行它们来验证您的结果。

    有数字的酷东西

    Python 是一口不断付出的井。你可以对数字做任何你想做的事情,以任何你想的方式操纵它们。怎么做?有一个很酷的小工具叫做数学模块。你还记得我告诉过你 Python 插件可以让你做很酷的东西吗?这是其中之一。

    有了这个模块,你几乎可以用 Python 做任何你想做的事情。你可以找到一个数字的力量,它的平方根,地板,天花板,等等。让我们来看看这一部分中最重要的一些。如果你想知道更多,快速的谷歌搜索会给你一个你能用数学模块做的所有操作的列表。你有一堆预定义的方法/函数来帮助你完成这些事情。

    我们开始吧!

    可以找到十进制数的底数和上限数。那是什么?您可以将小数四舍五入为整数。但是如果你使用 floor 函数,它会把数字四舍五入到最小的整数。

    打开一个新的脚本文件或清除您正在使用的脚本文件。

    在使用 Math 模块中的任何预定义方法之前,需要先将其导入到脚本文件中。您需要使用“import”关键字来实现这一点。

    import math
    
    

    前面的代码行告诉我们的程序,我们正在将数学模块导入到我们的文件中。你注意到我们是如何用一个小“m”写“数学”的吗?务必做到这一点。如果你把它写成“数学”,你会得到一个错误,因为 Python 是区分大小写的。这适用于您在 Python 中使用的任何预定义函数或关键字。您需要在不改变拼写或大小写的情况下使用它们。

    数字的下限和上限

    好了,现在我们已经导入了数学模块,让我们开始操作吧。寻找一个数的底数的语法是math.floor(num),其中“num”或者是保存浮点数的变量,或者是数本身。这同样适用于 ceil。

    import math
    print(math.floor(5.6))
    print(math.floor(5.3))
    print(math.floor(5))
    print(math.ceil(5.6))
    print(math.ceil(5.3))
    print(math.ceil(5))
    
    

    当您运行前面的代码行时,您将得到以下结果:

    RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
    5
    5
    5
    6
    6
    5
    
    

    看那个!不管小数点是多少,floor 运算总是产生最小的整数,在本例中是 5,ceil 运算总是产生最大的整数,是 6。对整数的 Floor 或 ceil 运算对数字没有影响,您将得到与结果相同的数字。

    幂和平方根

    接下来,我们来看看超能力。还记得我们如何使用“**”运算符来计算一个数的幂吗?我们也有类似的数学运算。

    它的语法是math.pow(num,power)

    所以,如果你想找出 5 的 3 次方(5 * 5 * 5),你可以这样做:

    import math
    print(math.pow(5,3))
    
    

    当您运行前面的代码时,您将得到这样的结果:

    = RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
    125.0
    
    

    结果是一个浮点数。试着用小数点工作,看看你会得到什么。

    同样,您可以用 sqrt 方法求出数字的平方根。如果 5 * 5 是 25,那么 25 的平方根就是 5。我们来测试一下!

    import math
    print(math.sqrt(25))
    
    

    运行前面的代码,您将得到这样的结果:

    = RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
    5.0
    
    

    结果又是浮点数。

    数字的阶乘

    你知道如何求一个数的阶乘吗?

    3 的阶乘是3 * 2 * 1,是 6。

    5 的阶乘是5 * 4 * 3 * 2 * 1,是 120。

    你看到这里的模式了吗?不过,你不必再费力地计算阶乘了。Python 通过阶乘方法为您做到了这一点!

    import math
    print(math.factorial(5))
    
    

    运行前面的代码,您将得到以下结果:

    = RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
    120
    
    

    是的,有效!

    罪恶,cos,谭,等等

    如果你知道 sin、cos、tan 和 log 是如何工作的,那么你会发现下一部分很有趣。如果你不知道这些概念,不用担心。一旦你在数学课上学会了这些概念,你可以回到这一节。

    您可以通过相关的预定义方法找到数字的正弦、余弦、正切和对数。在我们开始之前,我想澄清一些事情。在任何预定义的方法中,我们在括号()内给出的值/变量被称为 参数 ,我也这样称呼它们。

    import math
    print(math.sin(2))
    print(math.cos(5))
    print(math.tan(2))
    print(math.log(10,2)) #The first argument is the number and the second is the base
    
    

    运行前面的代码,您将得到以下结果:

    = RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
    0.9092974268256817
    0.28366218546322625
    -2.185039863261519
    3.3219280948873626
    
    

    你可以用你的科学计算器验证结果,你会发现结果是一样的。

    这些只是你可以用数学模块做的一些操作。至少还有十几个。

    在官方的 Python 文档中查看它们,如果你愿意,可以用它们来玩: https://docs.python.org/3/library/math.html .

    更多数值运算

    你对数学的兴趣不仅仅局限于数学模块。有很多独立的功能也很酷。您不必导入数学模块来完成这些操作,但它们同样强大。

    您想在一系列数字中找出最小的数字吗?然后使用“min”方法,给出每个你想要比较的数字作为该方法的参数,用逗号分隔。“max”也是一样。

    import math
    print(min(-100,100,40,25.64,200.3452,-253))
    print(max(-100,100,40,25.64,200.3452,-253))
    
    

    我给了 min 和 max 相同的数字列表。让我们看看结果:

    = RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
    -253
    200.3452
    
    

    有效!–253 是最小值,200.3452 是最大值。

    如果要在运算中把负数转换成正数,那么就用“abs”方法。

    print(abs(-100))
    
    

    上述代码将导致以下结果:

    = RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
    100
    
    

    使用随机数

    如果你不想在计算中使用一个数字呢?如果你想让你的电脑为你选择号码呢?Python 为您提供了保护。

    Python 还有另一个模块叫做“随机”模块,它带有一堆很酷的函数,可以帮助你的计算机在每次运行时选择一个随机数。

    现在让我们来看看。您需要首先导入随机模块。是带小“r”的“随机”。

    如果希望返回给定范围内的随机数,请使用 randrange()函数。

    import random
    print(random.randrange(1,11))
    
    

    “random”是模块的名称,“randrange”是函数的名称。我在第二个参数中给了 11,因为 random 模块忽略了范围中的最后一个数字。所以,如果我给 10,那么我只会得到从 1 到 9 的随机数。因为我想包含 10,所以我给出 11 作为我的第二个参数。

    运行前面的代码,您将得到这样的结果:

    = RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
    10
    
    

    当我再次运行时,我得到了这个:

    = RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
    2
    
    

    下一次:

    = RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
    7
    
    

    当您多次运行相同的代码行时,您会得到与我不同的结果。你为什么不自己试试看呢?外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    我们只是触及了随机模块的表面。从那来的还有更多。例如,你可以让你的程序用“choice”方法从你指定的单词或短语中选择一个字母。

    import random
    print(random.choice("Hello there!"))
    
    

    打印前面的代码,您会注意到每次运行程序时都会得到一个字母(包括感叹号和空格)。

    您也可以从一系列数字中进行选择。我们将在后面的章节中详细讨论列表,但是现在,只要理解列表包含一个数据列表,在我们的例子中,是一个数字列表,你应该把数字写在方括号中,用逗号分隔,就像这样:

    import random
    l = [1,3,5,7,9]
    
    

    现在让我们的程序从这个列表中随机选择:

    print(random.choice(l))
    
    

    运行前面的代码;第一次,我得到了这个:

    = RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
    3
    
    

    后续运行会给我随机选择。试试看!外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    “random”模块的“random”方法返回一个介于 0 和 1 之间的随机浮点数。

    import random
    print(random.random())
    
    

    当我运行前面的代码时,我得到了这样的结果:

    = RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
    0.6386828169729072
    
    

    由于 randrange 只返回一个范围内的整数,所以我可以使用 uniform 返回一个范围内的浮点数。这里唯一的区别是该函数在其结果中考虑了范围内的两个数字。

    import random
    print(random.uniform(1,10))
    
    

    当我运行前面的代码时,我得到了这样的结果:

    = RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
    3.7563014275306283
    
    

    迷你项目-数字的倍数

    在这个迷你项目中,我将教你如何用一个数的方法找到一个数的倍数。例如,如果我想显示 3 到 100 的所有倍数,我会这样做:

    Python 中还有另一种预定义的方法,称为“范围”方法。我们通常只在学习循环时才知道这个方法(在后面的章节中),但是我想在这里介绍一下,因为从技术上讲,它一个数字方法。

    范围函数,顾名思义,产生一个范围。您需要将它写成 range(num),其中所有内容都用小写字母表示:

    1. 让我们在 Python Shell 中打印以下代码行:
    >>> print(range(5))
    
    

    运行前面的代码,您将得到这样的结果:

    1. 或者,您也可以给出一个范围内的开始和结束数字,如下所示:
    range(0, 5)
    
    
    >>> print(range(1,10))
    
    

    运行前面的代码,您将得到这样的结果:

    1. 此外,您可以使用“*”运算符打印整个范围。不,不要把它和乘法运算符混淆。当某物(在我们的例子中,范围)有多个对象(在我们的例子中,多个数字)时,这个操作符用于打印。
    range(1, 10)
    
    

    让我们打开脚本并执行以下操作:

    r = range(1,10)
    
    

    现在,变量“r”包含范围。要打印“r”内的所有内容,即从 1 到 10 的数字列表,请使用“*”,如下所示:

    1. 在变量前指定“*”,这样 Python 就知道您正试图打印下一个变量中的所有内容。或者,您也可以像这样编写相同的打印语句:
    print(*r)
    
    
    print(*range(1,10))
    
    

    运行这些语句中的任意一条,您将得到以下结果:

    = RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
    1 2 3 4 5 6 7 8 9
    
    

    是的,它工作了!

    1. 如果我运行这个:
    print(*range(10))
    
    

    我会得到这个:

    = RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
    0 1 2 3 4 5 6 7 8 9
    
    

    如您所见,如果您没有给出起始范围,那么它会打印从 0 到结束范围之前的数字*。*

    1. 您也可以使用第三个参数跳过范围之间的数字。如果您给 2 作为第三个参数,您的程序将打印该范围内的第二个数字。3 表示第三个参数将打印第三个数字,4 表示第四个数字,依此类推。
    print(*range(0,10,2))
    
    

    当您运行前面的代码时,您将得到这样的结果:

    = RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
    0 2 4 6 8
    
    

    你只打印出了 0 到 10 之间的偶数。多棒啊。您可以使用第三个参数跳过任何数字。

    现在我们知道了所有这些,你能猜到我们如何应用这些来解决我们的问题吗?因此,我们需要找到给定范围内给定数字的倍数,我们知道我们将使用 range()函数来完成这一任务。

    1. 假设我们想找出从 1 到 100 的 3 的倍数,并把它们全部打印出来。所以,那是 3,6,9 直到 99,对吗?您可以在一行代码中做到这一点。在检查解决方案之前,您想亲自尝试一下吗?

    试过?好了,现在来看解决方案!

    print(*range(3,101,3))
    
    

    运行前面的代码,您将得到这样的结果:

    = RESTART: C:\Users\aarthi\AppData\Local\Programs\Python\Python38-32\numbers.py
    3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 90 93 96 99
    
    

    哇哦!很简单,不是吗?

    我们只是把倍数作为第一个参数,因为它无论如何都会是第一个结果-3 * 1 = 3。然后我们指定 101 作为第二个参数,所以如果 100 是一个倍数,它将被包含在内。最后,我们再次将 3 作为第三个参数,因为我们每次都需要跳过三个数字。而且成功了!外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    现在,你为什么不尝试不同的倍数和范围,看看它如何为你工作?

    摘要

    在这一章中,我们继续看数字。我们研究了如何使用 Python 中不同的操作符来处理数字。我们还研究了如何使用“数学”模块和预定义函数来进一步处理我们的数字。我们最后看了“随机”模块,我们像往常一样用一个迷你项目完成了这一章。

    在下一章,我们来看看 Python 中一个非常有趣的概念。我们将会看到使用 Turtle 模块来绘制图形。

    作者:绝不原创的飞龙

    物联沃分享整理
    物联沃-IOTWORD物联网 » 面向孩子们的 Python 入门指南(一)

    发表回复