![玩转Scratch趣味编程](https://wfqqreader-1252317822.image.myqcloud.com/cover/656/33643656/b_33643656.jpg)
2.8 Python语句对照
本书中,初次遇到一些典型的Scratch指令时,我们也会提供对应的Python对照语句,给小朋友一个感官上的认识。
Python可谓如今应用最广泛的编程语言之一,而且Python语言和Scratch有很多类似之处,比如它们都是一句句执行的语言,有一句出了问题不会影响前面语句的执行。
另外,Python中也有一个专门用于绘图的turtle模块,和Scratch中提供的角色一样,很容易供人学习和使用。实际上,它们之间相似的地方很多,所以本书我们就以Python语言中的turtle模块作为基础,提供代码的对照。注意,这种对照并非严格对应关系,只是为了让小朋友了解“真正”的编程语言到底什么样子。
更换造型的Python对应语句
首先,我们看看本章中更换造型语句中Python里的对应语句,如下图所示。
![](https://epubservercos.yuewen.com/32680F/17977545201603006/epubprivate/OEBPS/Images/58_01.jpg?sign=1739253911-dbChAuWkHbBR7eIhASiUeyr5JuVqId4o-0-5859026a2c0030b557a973a2a3e8d4e5)
下面提供的Python语句,前面和后面两个代码块都是辅助性语句,只有中间的代码块才是真正做出“动作”的语句,在本书后面提供Python语言对应的部分,我们就不再显示这些辅助语句。
![](https://epubservercos.yuewen.com/32680F/17977545201603006/epubprivate/OEBPS/Images/58_02.jpg?sign=1739253911-87gjyAE9FCFj2xVkguu4qgzVQXPbwdRJ-0-20e441e1deaf85eee2530b0b07a2b82b)
![](https://epubservercos.yuewen.com/32680F/17977545201603006/epubprivate/OEBPS/Images/58_03.jpg?sign=1739253911-z23OvqDWccX8Fhy6DrJ3l1ipKzriJ3hn-0-6b4e5adf82defe41903b230a4584679e)
![](https://epubservercos.yuewen.com/32680F/17977545201603006/epubprivate/OEBPS/Images/58_04.jpg?sign=1739253911-sq8MiFFHn2ekyESNqYjjVjFOXrHatNwQ-0-3bf99a920896a3e5b02dddf3376deb90)
以上程序中,t代表一个turtle,通过shape函数切换绘图笔的外形,它可以选择的外形包括箭头、乌龟、圆形、方形、三角形等。
设置变量值的Python对应语句
下图所示是本章用到的设置变量的值的语句。
![](https://epubservercos.yuewen.com/32680F/17977545201603006/epubprivate/OEBPS/Images/58_06.jpg?sign=1739253911-OvM886QeSxfUWsHfsHaqowe0i2GpTrBe-0-f9deb1f8c24d47a8bcd8acfafaf7689f)
在Python中,是不能使用中文作为变量的,但我们假设可以用这个中文名,那么对应的Python语句应该是:
![](https://epubservercos.yuewen.com/32680F/17977545201603006/epubprivate/OEBPS/Images/58_07.jpg?sign=1739253911-CrqORoqi5W0FUImcbcJ5g1mqMMHTTtS9-0-e58e5d693005c9a2242373c6b4267334)
取随机数的Python对应语句
比如本章有如下取随机数的代码块:
![](https://epubservercos.yuewen.com/32680F/17977545201603006/epubprivate/OEBPS/Images/59_01.jpg?sign=1739253911-Gv48LzLZ6NP3nAtiqE9f9XXJ7uIansjN-0-657ba50de5e47744ff8e18805ca0a895)
Python中有专门用于产生随机数的模块random,这里可以使用函数uniform:
![](https://epubservercos.yuewen.com/32680F/17977545201603006/epubprivate/OEBPS/Images/59_02.jpg?sign=1739253911-wkgUPDykV5dhdDc1NPGz4QRleTS1UnTY-0-e7a5ff261d7fa7f32748c929862f9d8f)
本章内容里我们还指出过Scratch在取随机数时有无小数点的区别,因此,如下语句就是产生1和5之间的整数的随机数,包括1和5。
![](https://epubservercos.yuewen.com/32680F/17977545201603006/epubprivate/OEBPS/Images/59_03.jpg?sign=1739253911-P0C6e7lf5mXRn74TDyjy1OzezR9PtMBL-0-ab832a123531475a2878fd9d87ab508d)
对应的Python语句就要用random模块里的randint函数,代码如下。
![](https://epubservercos.yuewen.com/32680F/17977545201603006/epubprivate/OEBPS/Images/59_04.jpg?sign=1739253911-MaYVMCsie0s9K3Tl6fL7yXrts4GWSs7W-0-9da5a3a70162d8df8ec5483ba7c6aa84)
输出文字的Python对应语句
使用下图所示语句可在屏幕上输出反应时间,我们看到Scratch里连接很多字符串形成一个大字符串是比较麻烦的,但在真正的编程语言里会非常简单。
![](https://epubservercos.yuewen.com/32680F/17977545201603006/epubprivate/OEBPS/Images/59_06.jpg?sign=1739253911-caUABG8p02kYlQM60OgIUcTAn8adfeKI-0-7cfb996db41cd921a2bf4d282ef153f0)
Turtle模块也有专门的字符串输出函数write,那么对应语句如下(同样假设可以有中文的变量)。可见,这里把多个字符串连接起来就简单很多了。
![](https://epubservercos.yuewen.com/32680F/17977545201603006/epubprivate/OEBPS/Images/59_07.jpg?sign=1739253911-NwvlKe28BknBuWTbHMgK8gzZkOqBnPJx-0-be5d6b12c306a4619c496f0b44d84ba8)
控制结构的Python对应语句
循环语句和Python对应语句如下。
![](https://epubservercos.yuewen.com/32680F/17977545201603006/epubprivate/OEBPS/Images/60_01.jpg?sign=1739253911-fLeSMR1nHkgxv2LxX6wRbCGiUoJBkkW1-0-d5bc9676a10fbbe04efac476ab99ed7f)
![](https://epubservercos.yuewen.com/32680F/17977545201603006/epubprivate/OEBPS/Images/60_02.jpg?sign=1739253911-yZwQNkqsM0PWKn5GN4GrWHJzrp0LU8PI-0-dd8747c30718494b549e2120d5494f94)
条件判断和Python对应语句如下。列表也是Python中常用的类型,所以我们给出如下一个综合语句的对比。
![](https://epubservercos.yuewen.com/32680F/17977545201603006/epubprivate/OEBPS/Images/60_03.jpg?sign=1739253911-hGckvMxwMrjIjHADS80mK2StylpGIcAo-0-763a8a242dbb7a48aec0d2d8ba4e71c8)
![](https://epubservercos.yuewen.com/32680F/17977545201603006/epubprivate/OEBPS/Images/60_04.jpg?sign=1739253911-hx7vuGcXZUO21aisaHdqUt0JC17uzNLs-0-bcc0646bb1aacc75fc7f7f828c8e0e1f)