少儿学python技术文章
这篇文章主要知识点是关于python、海龟游戏程序、少儿编程班的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书
第一个海龟程序
让我们使用海龟作图来编写第一个程序。在一个新的IDLE窗口中输入如下的代码并将其保存为SquareSpiral1.py(你也可以通过http://www.nostarch. com/teachkids/下载该程序以及本书中的所有其他的程序)。
SquareSpiral1.py
# SquareSpiral1.py - Draws a square spiral import turtle t = turtle.Pen() for x in range(100): t.forward(x) t.left(90)
当运行这段代码的时候,我们会得到一幅漂亮整齐的图片(如图2-1所示)。
程序是如何工作的
让我们一行一行地分析这个程序,看看它是如何工作的。SquareSpiral1.py的第1行是注释。正如我们在第1章中所学过的,注释以一个井号(#)开头。注释允许我们在程序中写入给自己或以后可能阅读该程序的其他人一些提示。计算机不会阅读或试图理解井号之后的任何内容;注释只是让我们写出关于程序是做什么的一些说明。在这个例子中,我们将程序的名称以及针对其做什么的一个简单说明放入到注释之中。
第2行导入(import)了绘制海龟图形的功能。导入已经编写过的代码,这是编程工作的最酷的事情之一。如果我们编写了一些有趣并有用的程序,可以将其与其他的人分享,同时也可以自己重用它。尽管海龟作图最初源自20世纪60年代的Logo编程语言[1],但一些很酷的Python程序员构建了一个库(library,库就是可以重用的代码的一个集合),来帮助其他程序员在Python中使用海龟作图。当我们输入了import turtle,就表示我们的程序能够使用那些Python程序员所编写的代码。图2-1中的小的黑色箭头表示海龟,它在屏幕上移动的时候会使用钢笔绘图。
程序的第3行是t = turtle.Pen(),它告诉计算机,我们将使用字母t表示海龟的钢笔。这使得我们只需要录入t.forward(),而不是turtle.Pen().forward(),就可以让海龟在屏幕上移动的时候用海龟的钢笔进行绘制。字母t是告诉海龟做什么的一种快捷方式。
第4行最为复杂。在这里,我们创建了一个循环(loop),它重复一组指令很多次(一次又一次地循环这些代码行)。这个特定的循环设置了一个范围(range,或列表),其中拥有从0~99的100个数字(计算机几乎总是从0开始计数,而不是像我们通常那样从1开始)。在该循环中,字母x遍历了范围中的每一个数字。因此,x从0开始,然后变为1,然后是2,依次类推,直到99,一共100个步骤。
x叫作变量(variable)[2](在第1章中的YourName.py程序中,name就是变量)。变量存储了在程序进行的过程中可以修改(变化)的一个值。我们在所编写的几乎每一个程序中,都要使用变量,因此,早点认识变量为好。
接下来的两行代码缩进了,或者说,在左边留出了空格。这意味着,它们位于该循环之中(in the loop)并且和上面的那一行代码一起,每次x从0~99的范围中获取一个新的数字的时候,这些代码行都会重复,直到达到100次。
发生了什么
让我们看看Python初次读取这一组指令的时候发生了什么。命令t.forward(x)让海龟的钢笔在屏幕上向前移动x个点。因为x是0,钢笔根本不会移动。最后一行代码t.left(90)让海龟向左转90°,或者说转四分之一个圈。
由于这个for循环,程序继续运行并且回到了循环的开始位置。计算机加1后将x移动到范围中的下一个值,因为1仍然位于从0~99的范围中,循环继续。现在x是1,因此,钢笔向前移动1个点。然后,钢笔向左移动90个点,因为代码是t.left(90)。这样一次一次地继续执行,当x到达99,即循环的最后一次迭代,钢笔围绕着正方形螺旋线的外围画了一条长长的线条。
下面我们随着x从0增加到100,将循环的每一步可视化地表示出来
for x in range(100): t.forward(x) t.left(90)
循环0到4:绘制了前4条线(在x = 4之后)。
循环5到8:绘制了另外4条线;正方形出现了。
循环9到12:正方形螺旋线变为了12条线(3个正方形)。
计算机屏幕上的点或像素可能太小了,以至于我们无法很好地看到它们。但是,随着x变得越来越接近100,海龟绘制的线条包含了越来越多的像素。换句话说,当x变得越来越大,t.forward(x)绘制的线条越来越长。屏幕上的海龟箭头,绘制一会儿,然后向左转,再绘制一会儿,再向左转,这样一次又一次地绘制,每次线条都变得越来越长。
最后,我们有了一个炫目的正方形形状。连续4次向左转90°,就可以得到一个正方形,就像是围绕一栋建筑连续4次左转的话,将会带着我们绕建筑转一圈并且回到起点一样。
在这个示例中,我们之所以得到一个螺旋线,是因为每次左转的时候,都走得更远一点。绘制的第一个线条只是1步长(x = 1的时候),然后是2(循环的下一次迭代),然后是3,然后是4,以此类推,直到达到100步长,这时候,线条的长度为99像素。再一次强调下,屏幕上的像素可能太小了,以至于我们无法很容易地看到单个的点,但是,它们是存在的,而且我们会看到随着程序包含更多的像素,线条会变得越来越长。
通过完成所有的90°角的旋转,我们得到了完美的正方形。
以上就是本次给大家分享的关于少儿学python的全部知识点内容总结,大家还可以在下方相关文章里找到少儿编程顺德 、 一对一教儿童编程序 、 郯城少儿编程 、 儿童编程机器人 、 成都市酷思少儿编程 、 等少儿学python相关文章进一步学习,感谢大家的阅读和支持。
上一篇:儿童编程挑战习题
下一篇:python制作旋转的海龟
展开 +
收起 -
Copyright 2018-2021 www.xz577.com 码农之家
版权投诉 / 书籍推广:520161757@qq.com
Python实现破解猜数游戏算法示例
本文实例讲述了Python实现破解猜数游戏算法。分享给大家供大家参考,具体如下: QQ群里的聊天机器人会发起猜数小游戏. 玩法如下: 1. 用户发 #猜数 到群里 2. 机器人响应: 猜数已经开始, 范围是1-10000之间的某个数 3. 你发送 #猜数[123] 到群里 4. 机器人响应: 大了或者小了, 或者恭喜你猜中了 5. 你根据刚才猜的123, 和返回, 猜一个更小或更大的数, 发送 #猜数[111] , 即返回第2步 那么最好的猜测方法肯定是找居中的数了, 由于心算耗时, 所以直接上python脚本破解这个: #!/usr/bin/env python# -*- coding: utf-8 -*-__author__ = 'huhu, huyoo353@126.com'def find_middle(start, end): #print start, end return round((start+end)/2.0)if __name__ == '__main__': start, end = '','' text = raw_input(u" 输入猜数的范围(如:421-499 或者421 499 或者421,499):").decode('gb18030') spliters = '-, ' for c in spliters: if text.find(c) != -1: num_list = text.sp……
python制作填词游戏步骤详解
如何用 PYTHON制作填词游戏 新建一个PYTHON文档。用JUPYTER NOTEBOOK打开即可。 print("Heart is " + color)print(noun + " are red")print("I like " + food) 我们首先确定一下填词的大概方向。 color = input("Please enter a color: ")noun = input("Please enter a noun: ")food = input("Please enter a food: ")print("Heart is " + color)print(noun + " are red")print("I like " + food) 每个填词的内容用INPUT来导入。 尝试测试并且填写内容看看效果。 color = input("Please enter a color: ")noun = input("Please enter a noun: ")food = input("Please enter a food: ")print("Heart is " + color)print(noun + " are red")print("I like " + food) 如果我们要填写数字也是可以的,只不过数字是字符串。 color = int(input("Please enter a color: "))noun = int(input("Please enter a noun: "))food = int(input("Please enter a food: "))print("Heart is " + color)print(noun + " are red")print("I like " + food) 如果定义为整型的话,字符串就……
python怎么做游戏
PyGame是一个Python的库,能够让你更容易的写出一个游戏。它提供的功能包括图片处理和声音重放的功能,并且它们能很容易的整合进你的游戏里。 下面是五子棋的代码,我的理解都写在注释里了 (推荐学习:Python视频教程) import pygame# 导入pygame模块print(pygame.ver)# 检查pygame的版本,检查pygame有没有导入成功EMPTY = 0BLACK = 1WHITE = 2# 定义三个常量函数,用来表示白棋,黑棋,以及 空black_color = [0, 0, 0]# 定义黑色(黑棋用,画棋盘)white_color = [255, 255, 255]# 定义白色(白棋用)# 定义棋盘这个类class RenjuBoard(object): def __init__(self): # self._board = board = [[EMPTY] * 15 for _ in range(15)] # 将棋盘每一个交叉点都看作列表的一个元素位,一共有15*15共225个元素 self._board = [[]] * 15 self.reset() #重置棋盘 def reset(self): for row in range(len(self._board)): self._board[row] = [EMPTY] * 15 #定义棋盘上的下……
200 行python 代码实现 2048 游戏
创建游戏文件 2048.py 首先导入需要的包: import cursesfrom random import randrange, choicefrom collections import defaultdict 主逻辑 用户行为 所有的有效输入都可以转换为"上,下,左,右,游戏重置,退出"这六种行为,用 actions 表示 actions = ['Up', 'Left', 'Down', 'Right', 'Restart', 'Exit'] 有效输入键是最常见的 W(上),A(左),S(下),D(右),R(重置),Q(退出),这里要考虑到大写键开启的情况,获得有效键值列表: letter_codes = [ord(ch) for ch in 'WASDRQwasdrq'] 将输入与行为进行关联: actionsdict = dict(zip(lettercodes, actions * 2)) 状态机 处理游戏主逻辑的时候我们会用到一种十分常用的技术:状态机,或者更准确的说是有限状态机(FSM) 你会发现 2048 游戏很容易就能分解成几种状态的转换。 state 存储当前状态, state_actions 这个词典变量作为状态转换的规则,它的 key 是状态,……