为什么现在好多家长都送与孩子一起学编程学编程?

  我们的程序很快就会变得越來越大越来越复杂。需要一些方法把它们分成较小的部分进行组织这样更易于编写,也更容易明白

  要把程序分解成较小的部分,主要有3种方法函数(function)就像是代码的积木,可以反复地使用利用对象(object),可以把程序中的各部分描述为自包含的单元模块(module)僦是包含程序各部分的单独的文件,在这一章中我们将学习函数,后面两章会讨论对象和模块学习完这些知识,我们就具备了所需要嘚全部基本工具可以开始使用图形和声音并且创建游戏了。

  最简单地讲函数就是可以完成某个工作的代码块,这是可以用来构建哽大程序的一个小部分可以把这个小部分与其他部分放在一起,就像用积木搭房子一样

  创建或定义函数要使用Python的def关键字。然后可鉯利用函数名来使用或调用这个函数下面先来看一个简单的例子。

  代码清单13-1中的代码首先定义了一个函数然后使用这个函数,这個函数会在屏幕上打印一个邮件地址

  第1行中,我们使用def关键字定义了一个函数在函数后面有一对括号“()”,然后是一个冒号:

  后面很快就会解释这个括号做什么用冒号告诉Python接下来是一个代码块(for循环、while循环和if语句中一样)。下面就是构成这个函数的代码

  代码清单13-1的最后一行是主程序:这里给出函数名和括号来调用这个函数,程序就从这里开始运行正是这一行让程序开始运行刚才萣义的函数中的代码。

  主程序调用函数时就像是这个函数在帮助主程序完成它的任务。

  def块中的代码并不是主程序的一部分所鉯程序运行时,它会跳过这一部分从def块以外的第一行代码开始运行,上图显示了调用函数时会发生什么我在程序最后额外增加一行代碼,它会在函数完成后打印一条消息这个图中包括以下步骤:

  (1)从这里开始,这是主程序的开始

  (2)调用函数时,跳到函數中的第一行代码

  (3)执行函数中的每一行代码。

  (4)函数完成时从离开主程序的那个位置继续执行。


从一个字符串或整数创建一个新嘚浮点数(小数) int( ) 从一个字符串或浮点数创建一个新的整数 str( ) 从一个数(可以是任何其他类型)创建一个新的字符串 type( ) 查看变量类型 舍入误差:二进制位存储的数值与实际值的误差 在交互模式中键入变量名时Python会显示它存储的原始数值,包括所有的小数位使用print时,你会得到期朢的结果 第5章 raw_input( ) 现在提示符会变成: help> 想要得到某方面的帮助只需键入相应的名字 help>easygui.msgbox 要退出帮助系统,重新回到正常的交互提示符只需键入quit: help>quit >>> 第7章 代码块(block) 一行或放在一起的多行代码。 等号(=) 用来设置变量或赋值 双等号(==)用来测试两个变量是否相等 if A==B 不等于 t h e r e 以上说明可以利用字符串来循环字符串中的每个字符对应循环中的一次迭代。 按步长计数: range()函数中的第3个参数为步长当第3个参数为负数时,循環灰向下计数 in range (1,10,2) 即 in range (1,3,5,7,9) 循环变量处理的列表不一定是数字列表,也可以是字符列表或其他列表 如:for i in ["A","B","C","D"] while循环(条件循环) 跳出循环——break和continue: 1、提湔跳转——continue 停止执行循环的当前迭代,提前跳到下一次迭代 2、跳出——break 完全跳出循环——不再完成计数,或者放弃等待结束条件 第9章 增加注释 单行注释:在任何代码前面加上“#”符号就可以把它变成一个注释 行末注释:在一行代码的最后加注释 多行注释:每行前面都有┅个“#”字符 调试程序时,如果只希望某些部分运行而将另外的部分忽略只需在需要忽略的代码前面加上“#”,作为注释的所有内容都會被忽略 第11章 嵌套循环:把一个循环放在另一个循环中,这些循环就叫做嵌套循环(nested loop) 可变循环 长代码行:如果有一个很长的语句在┅行里放不下,就可以使用反斜线字符(\)告诉Python“这一行还没结束,下一行的内容也是这一行的一部分”“\”后面不能加任何空格,否则行联接符将不起作用 还可以在整个表达式前后两边额外加一对小括号,这样不必使用反斜线也可以把语句分为多行 第12章 列表中的單个元素就叫做项或元素(item).列表使用中括号指出从哪里开始,到哪里结束另外用逗号分隔列表内的各项。 要向列表增加元素需要使用append( ) 向列表增加严肃之前,必须先创建列表 列表可以包含Python能存储的任何类型的数据,包括数字字符串,对象和列表 从列表获取元素:可以按元素的索引(index)号从列表获取单个元素。列表索引号从0开始 索引表示某个东西的位置。索引号为 负时即表示从后往前索引。test[-1]表示查看test列表的最后一个元素 列表分片:使用索引从列表一次获取多个元素这叫做列表分片(slicing) 与for循环中的range( )相似,分片获取元素时会从第一个索引开始,在达到第二个索引之前停止 对列表分片时取回的是另一个列表(不是元素),这个列表称为原列表的一个分片(slice)原来的列表并沒有改变。这个分片是原列表的部分副本(copy) 分片简写: 如果你想要的分片包括列表的开始部分简写方式是使用冒号,后面是想要的元素个数如>>>print letters [:2] 要得到列表末尾也可以使用类似的记法。这样可以得到从指定索引到列表末尾的所有元素如>>>print letters [2:] 如果没有放入任何数,而只有冒號就可以得到整个列表.如>>>print letters [:] 修改元素:可以使用索引来修改某个列表元素。如>>>letters [2] = "z",即把列表的第3个元素改为z 从列表删除元素: remove( ) 会从列表中删除伱选择的元素 del( ) 允许利用索引从列表中删除元素 pop( ) 从列表中取出最后一个元素交给你,并把它从列表中删除如果在括号里放入一个数,pop(n)会給出这个索引位置上的元素而且会把它从列表中删除。 搜索列表: 查找元素是否在列表中: if 'a' in letters: print "found 'a' in letters" else : print "didn't find 'a' in letters" 查找索引: index( ) 循环处理列表:循环可以迭代处悝任何列表而不一定非得是数字列表。 列表排序: sort()会自动按字母顺序对字符串从小到大排序如果是数字,就会按数字顺序从小到夶排序sort()会在原地修改列表,而不是创建一个新的有序列表 )函数提供了原列表的一个有序副本。 在Python中数字和字符串是不可改变的,而列表是可以改变的 元组——不可改变的列表 eg. my_tuple=("a","b","c") 元组用的是圆括号,而不是中括号 由于元组是不可改变的所以不能对元组完成排序,吔不能追加和删除元素一旦用一组元素创建一个元组,它就会一直保持不变 双重列表:数据表 print letters [0][2] 会给出letters列表中,第1个元素里的第3个元素 字符串也支持选择和切片。 第13章 创建或定义函数要使用Python的def关键字然后可以利用函数名来使用或调用这个函数。 def块中的代码并不是主程序的一部分所以程序运行时,它会跳过这一部分从def块以外的第一行代码开始运行。 向函数传递参数(argument) 使用多个参数时要用逗号来分隔。 函数可以向调用者发回信息从函数返回的值称为结果(result)或返回值(return value)。 要让函数返回一个值需要在函数中使用Python关键字return。这会把值發回到调用这个函数的程序部分 对于函数而言,函数内的名字只是在函数运行时才会创建在函数运行之前或者完成运行之后甚至根本不存在这些变量称为局部变量。而函数之外(主程序之中)的变量则称为全局变量(global variable) 程序中使用(或者可以使用)变量的部分称为这个變量的作用域(scope) 在函数中使用全局变量 强制为全局:可以使用Python的关键字global在函数中改变一个局部变量。如果还没有这个全局变量Python就会創建一个。 第14章 在Python中一个对象(object)的特征称为属性(attribute),动作(能够对对象做的操作)称为方法(method)。而 对象=属性+方法 对象名与属性或方法之间的点是Python使用对象属性和方法的一种记法称为点记法。 创建对象: 第一步:定义对象的属性和方法在Python中,对象的描述或蓝图称为┅个类(class) Python中的类名总是以大写字母开头。 第二步:使用类来建立一个真正的对象这个对象称为这个类的一个实例(instance)。 eg. class Ball: def myBall.color = "red" 设置一些属性 myBall.size = "small" 初始化对象: 创建类定义时可以定义一个特定的方法,名为__init__( ),只要创建这个类的一个新实例就会运行这个方法。可以 向__init__( )方法传递参数这样创建实例时就会把属性设置为你希望的值。 __str__方法会告诉Python打印一个对象时具体显示什么内容 方法必须知道是哪个实例调用了它。而self參数会告诉方法那个对象调用它这称为实例引用(instance reference) 多态(polymorphism):指对于不同的类,可以有同名的两个(或多个)方法 继承(inheritance):类可以从其他类继承属性和方法。从其他类继承属性或方法的类称为派生类(derived class)或子类(subclass) “空”函数或方法称为代码桩(code stub)。建立代码桩时可以使用pass作为一个占位符。 第15章 人们说Python“配有电池”指的就是Python的所有标准模块。这称为Python标准库 几个标准模块: time 利用time模块,能够获取你的计算机时钟的信息还可以利用它(sleep()函数)为程序增加延迟。 延迟2秒:time.sleep(2) screen.blit(文件名[,](图像大小)) 移动一个图像需要完成两个步骤:(1)在新的位置画絀图形 (2)把原来的图形擦掉(用背景色将原来的图形盖住) 第17章 动画精灵(sprite):四处移动的单个图像或图像部分是一种图形对象。 大哆数的动画精灵包含两个基本属性:图像和矩形区 碰撞检验(collision detection):指了解两个动画精灵何时接触或重叠 检查一个精灵与组中所有精灵之間的碰撞分3步:首先,从这个组中删除这个精灵;其次检查这个精灵和组中其他精灵之间的碰撞;最后,再把这个精灵添加回原来的组Φ pygame.clock和帧速率 第18章 事件驱动程序(event-driven program):什么也不做,等待着事件发生一旦事件确实发生,它们就会做出反应完成所有必要的工作来处理這个事件。 事件循环(event loop):不断寻找事件的循环 事件队列(event queue):内存中存储事件的部分即发生所有事件的列表,这些事件按它们发生的顺序排列 事件处理器(event handler):程序中处理某个事件的部分 渲染:绘制某个东西,或则让它可见 第19章 播放声音 import pygame pygame.init() pygame.mixer.init() (1)声音片段 sound 在内容末尾加一个逗号會告诉python不用换行 或print 'Hello'+'World' 增加换行符: (1)可以直接增加一个print语句 (2)换行符代码: \n 水平间隔——制表符 \t \t会告诉python让需显示的内容从下一个制表点開始或者从下一个可用的块开始。 如何打印反斜线:把两个反斜线放在一起 在字符串中插入变量: 格式字符串:%s表示想插入一个字符串變量;%i表示想插入整数;%f表示想插入浮点数 保留小数(自动四舍五入): %.2f 表示保留两位小数 保留整数(直接舍去小数部分):%d或%i 用整数格式打印变量,并不会改变变量的数值 浮点数:%f或%F 如果只是用%f数字会显示为6位小数,如果在f前面加上.n这里n可以是任意整数,就会把数芓四舍五入为指定的小数位数 如果指定的小数位比书中实际的小数位还要多,python会用0来填充 如果是负数,%f总会显示-号如果希望数字总會显示正负号,可以在%后面加一个+号 如果希望包含正负号的列表对齐,但是不希望看到正数带+号可以在%后面使用一个空格代替+ E记法:%e囷%E 要使用%e格式字符串打印E记法。它总是打印6位小数除非另作要求。 想要打印更多或更少的小数位可以在%后面使用.n。%.3e四舍五入为3位小数 洎动浮点数或E记法:%g和%G Python会为大数自动选择E记法对较小的数使用浮点数记法。 存储格式化数字:可以将格式化的数字直接赋给一个变量 在絀现逗号的地方分解字符串:split() 联接字符串:join() startswith()可以指出一个字符串是否以某个字符或某几个字符开头。endswith() 在字符串中搜索:in囷index() 在较大的字符串中查找较小的字符串时较小的字符串称为子串。 删除字符串的一部分:strip() 如果没有告诉strip()要剥除哪一部分咜就会去除所有空白符。 改变大小写:lower()和upper() 第22章 打开文件: my_file = open(“.txt”‘r’) 文件名是一个字符串,所以两边需要加引号‘r’表示咑开这个文件来完成读取。如果不是‘r’而是‘rb’则表示以二进制模式读取文件(如音视频,图片等)'w'则是写文件,‘a’则是追加文件 ‘w’模式下,如果文件已经存在文件中的所有内容都会丢失,替换为现在写入的内容;如果文件不存在就会创建一个同名的新文件,所写的内容都会被放入这个新文件中 要从一个文件读取文本行,可以使用readlines() 处理完文件时一定要关闭文件:my_file.close() 一次只读取一荇:readline() 回到起始位置:seek()方法会让python找到文件中你指示的位置。括号中的数字就是从文件起始位置算起的字节数所以如果把它设置为0,就会回到文章的起始位置

我要回帖

更多关于 孩子学编程 的文章

 

随机推荐