使用 Linkbot 学习 Python 3 / Hello, World
Lesson Information **To Be Added** Vocabulary: Python Editor: a program used to create a block of text that will be sent to Python and interpreted. In this book we recommend IDLE 3. Line: a single sentence of programming code. Lines of code can be used to measure the size of a program and compare it to other programs. Function: a type of procedure or routine, a set of instructions to follow. Argument: data provided to a function as input. This is like the domain in algebra. String: a sequence of characters representing either a constant or a variable. Function Call: Necessary Materials and Resources: Computer Science Teachers Association Standards: L1:3.CT.4:Recognize that software is created to control computer operations Common Core Math Practice Standards: CCSS.MATH.PRACTICE.MP5 Use appropriate tools strategically.
完成本章后,你将了解如何在 Python 编辑器、IDLE 3 或其他文本编辑器中编辑程序、保存程序并运行程序。
从编程教程开始,"Hello World!"[1] 已经成为在屏幕上创建内容的第一个尝试,以下是如何使用 Python 来实现。
print("Hello, World!")
如果你使用命令行运行此程序,则在文本编辑器中输入它,将其保存为 hello.py
,然后使用 python3.0 hello.py
运行它。
否则,进入你的 Python 编辑器,创建一个新文件(在 IDLE 中按 Ctrl + N),并像在 创建和运行程序 节中一样创建程序。
运行此程序时,它会打印以下内容
Hello, World!
记住,每当你看到代码作为示例时,最好将其输入并运行它。通过实践学习可能是一种强大的工具!这值得花费时间。
以下是一个使用 Linkbot 说“Hello World”的修改版。添加了注释以帮助你逐步理解代码的作用。
import barobo #loads 'barobo' module
import time #loads 'time' module
dongle = barobo.Dongle() #uses commands from 'barobo' to connect Linkbot
dongle.connect()
robotID = input('Enter Linkbot ID: ') #prompts user for Linkbot ID
robot = dongle.getLinkbot(robotID)
print ( 'Hello Linkbot Programmer' ) #prints greeting
robot.setBuzzerFrequency(1047) #calls for pizo buzzer to make a tone
time.sleep(0.25) #sets duration of tone
robot.setBuzzerFrequency(1567) #changes tone
time.sleep(0.5)
robot.setBuzzerFrequency(0) #turns off tone.
可以随意更改蜂鸣器的频率来改变音调,以及更改 time.sleep
的持续时间,看看它对问候语有什么影响。
现在,这里还有几个程序
print("I pledge allegiance to the flag")
print("of the United States of America,")
print("and to the republic, for which it stands,")
运行此程序时,它会打印出
I pledge allegiance to the flag of the United States of America, and to the republic, for which it stands,
当计算机运行此程序时,它首先看到 行(像一行代码)
print("I pledge allegiance to the flag")
所以计算机打印
I pledge allegiance to the flag
然后计算机向下移动到下一行,看到
print("of the United States of America,")
所以计算机打印到屏幕上
of the United States of America,
计算机继续查看每一行,遵循命令,然后继续执行下一行。计算机不断运行命令,直到它到达程序的末尾。
Linkbot 配备了多色 LED,它本质上只是一个可以改变颜色的灯光。让我们尝试一个简单的程序来控制 Linkbot 上的 LED 颜色。要开始,请按照以下步骤操作
- 按下电源按钮,直到 Linkbot 闪烁明亮的红光,从而打开 Linkbot。
- 大约 5 秒后,Linkbot 会发出哔哔声并显示蓝光。现在你的 Linkbot 已打开!
- 取一根 Micro-USB 线并将 Linkbot 连接到你的电脑。
- 打开你的文本编辑器并尝试以下代码:https://wikibooks.cn/wiki/Learning_Python_3_with_the_Barobo_Linkbot
import barobo
myDongle = barobo.Dongle()
myDongle.connect()
myLinkbot = myDongle.getLinkbot()
myLinkbot.setLEDColor(0, 255, 0)
注意 如果不太理解此程序前四行中的内容,也不用担心。所有这些概念将在后面的章节中介绍。现在,只需知道,如果你想控制 Barobo Linkbot,这四行(或类似的行)是必要的。 |
运行此程序时,你应该会注意到 Linkbot 变成了绿色!在你编写的代码中,有三个数字:0、255 和 0。这三个数字决定了 Linkbot 内部红、绿、蓝 LED 的亮度,其中 0 表示最低亮度设置,255 表示最大亮度设置。如果你想尝试让 Linkbot 变成亮紫色,可以尝试将颜色数字设置为“255, 0, 255”。这告诉 Linkbot 将其红色和蓝色 LED 打开到最大亮度。当红光与蓝光混合时,它会呈现紫色!
现在可能是给你解释一下正在发生的事情,以及一些编程术语的好时机。
我们上面所做的是使用名为 print
的 函数。函数名称 - print
- 后面跟着包含零个或多个 参数 的括号。因此,在此示例中
print("Hello, World!")
有一个参数,即 "Hello, World!"
。注意,此参数是一组包含在双引号("")中的字符。这通常称为字符字符串,简称 字符串。另一个字符串示例是 "Jack and Jill went up a hill"
。函数和包含参数的括号的组合称为 函数调用。
函数及其参数是 Python 中的一种语句类型,因此
print("Hello, World!")
是一个语句示例。基本上,你可以将语句视为程序中的一行代码。
现在这些术语可能已经足够多了。
以下另一个程序
print("2 + 2 is", 2 + 2)
print("3 * 4 is", 3 * 4)
print("100 - 1 is", 100 - 1)
print("(33 + 2) / 5 + 11.5 is", (33 + 2) / 5 + 11.5)
这是程序运行时的 输出
2 + 2 is 4 3 * 4 is 12 100 - 1 is 99 (33 + 2) / 5 + 11.5 is 18.5
如你所见,Python 可以将价值数千美元的计算机变成价值 5 美元的计算器。
在此示例中,print
函数后跟两个参数,每个参数之间用逗号隔开。因此,对于程序的第一行
print("2 + 2 is", 2 + 2)
第一个参数是字符串 "2 + 2 is"
,第二个参数是 数学表达式 2 + 2
,通常称为 表达式。
需要注意的是,字符串按原样打印(不带包含的双引号),但 表达式 会被 评估 或转换为实际值。
Python 对数字有七种基本运算
运算 | 符号 | 示例 |
---|---|---|
幂(指数) | **
|
5 ** 2 == 25
|
乘法 | *
|
2 * 3 == 6
|
除法 | /
|
14 / 3 == 4.666666666666667
|
整数除法 | //
|
14 // 3 == 4
|
余数(模运算) | %
|
14 % 3 == 2
|
加法 | +
|
1 + 2 == 3
|
减法 | -
|
4 - 3 == 1
|
注意,除法有两种方式,一种返回循环小数,另一种可以获取余数和整数。运算顺序与数学中的相同
- 括号
()
- 指数
**
- 乘法
*
、除法/
、整数除法//
和余数%
- 加法
+
和减法-
因此,在需要时使用括号来构建公式。
在编程中,你经常会做一些复杂的事情,并且可能在将来忘记自己做了什么。在这种情况下,程序可能需要添加注释。注释 是对你自己和其他程序员的说明,解释正在发生的事情。例如
# Not quite PI, but a credible simulation
print(22 / 7)
其输出为
3.14285714286
注意,注释以井号开头:#
。注释用于与阅读程序的人员以及将来的自己进行交流,以清楚地说明复杂的部分。
注意,注释后可以是任何文本,并且当程序运行时,从 #
到该行末尾的文本会被忽略。#
不必位于新行的开头
# Output PI on the screen
print(22 / 7) # Well, just a good approximation
每一章(最终)将包含本章中介绍的编程特性的示例。你至少应该浏览一下它们,看看是否理解。如果不理解,可以尝试将其输入并看看会发生什么。随意修改它们,看看会发生什么。
Denmark.py
print("Something's rotten in the state of Denmark.")
print(" -- Shakespeare")
输出
Something's rotten in the state of Denmark. -- Shakespeare
School.py
# This is not quite true outside of USA
# and is based on my dim memories of my younger years
print("Firstish Grade")
print("1 + 1 =", 1 + 1)
print("2 + 4 =", 2 + 4)
print("5 - 2 =", 5 - 2)
print()
print("Thirdish Grade")
print("243 - 23 =", 243 - 23)
print("12 * 4 =", 12 * 4)
print("12 / 3 =", 12 / 3)
print("13 / 3 =", 13 // 3, "R", 13 % 3)
print()
print("Junior High")
print("123.56 - 62.12 =", 123.56 - 62.12)
print("(4 + 3) * 2 =", (4 + 3) * 2)
print("4 + 3 * 2 =", 4 + 3 * 2)
print("3 ** 2 =", 3 ** 2)
输出
Firstish Grade 1 + 1 = 2 2 + 4 = 6 5 - 2 = 3 Thirdish Grade 243 - 23 = 220 12 * 4 = 48 12 / 3 = 4 13 / 3 = 4 R 1 Junior High 123.56 - 62.12 = 61.44 (4 + 3) * 2 = 14 4 + 3 * 2 = 10 3 ** 2 = 9
- 编写一个程序,分别以字符串形式打印你的全名和生日。
- 编写一个程序,展示所有 7 个数学函数的使用。
1. 编写一个程序,分别以字符串形式打印你的全名和生日。
print("Ada Lovelace", "born on", "November 27, 1852")
print("Albert Einstein", "born on", "14 March 1879")
print(("John Smith"), ("born on"), ("14 March 1879"))
2. 编写一个程序,展示所有 7 个数学函数的使用。
print("5**5 = ", 5**5)
print("6*7 = ", 6*7)
print("56/8 = ", 56/8)
print("14//6 = ", 14//6)
print("14%6 = ", 14%6)
print("5+6 = ", 5+6)
print("9-0 = ", 9-0)