1以游戏的思路来理解编程,就是一系列的规则,能够形成封装的函数,实现一定的输入和输出构建对应关系。实际上,游戏就是这个复杂的函数,能够针对玩家的输入有一定的输出(如得分,游戏结束等等)。幸运的是,我们不必从头做起,我们可以利用前人写的各种工具库来快速实现。
2项目思维,将复杂的目标分解为一个个小的模块,乃至函数(以文件的形式)。于是可以最后能够开发各种游戏乃至软件。以python面向对象的编程的特点,我们需要定义一个个的类和函数,理论上各种变量就对应于现实的一个属性,只要描述的属性足够多,可以以更高的精度来逼近现实事物。面向对象,基于类和对象,就是属性+方法,属性就是定义的不同变量(描述不同性质),方法就是各种定义的函数。本质上对象是对现实的一种抽象,而对象是实例的一种抽象,实例是对象的具体表达。如我们都住在房子(对象),但具体的位置,大小等等(实例)是不同的。简单的小项目不需要模板,但实现复杂的功能,有模板能够更好地完成工作
3程序需要在一定的运行环境实现其功能。程序本质上都是基于文本符号的交互,更底层的是各种逻辑门的运算,我们通过各种定义如aii码来构建符号与二进制数字的关系,于是能够通过文本的输入与计算机进行交互。如今的图形界面的交互也是这样的思路。于是我们能够通过这些措施来实现高于语言的功能,如我们的各种app。
4表达式的形成就是简单的符号组合(基本的算术运算符有加、减、乘、除、乘方),而运算符号有一定的优先级。然后在这个基础可以形成函数,而变量这些功能就对应于数学的定义域,函数的输出就对应于值域。这些基本的数据类型如整数型int,浮点数型float,字符串型等等就是这些变量的类型。所谓的强制类型转换就是改变其存储数据的应用范围,如整数转化为浮点数是精度的改变(任何超出15位小数精度的部分都会被丢弃)
5变量命名是重要的(在python中有效的变量名由字母、数字和下划线组成,变量名必须以字母或下划线开头,变量名是要区分大小写的),一方面这是储存数据的单元(用于存储“值”的占位符),另一方面作为函数的参数需要比较明确的意义以便于人们理解。实际上,把值存入变量可以避免一次又一次的计算同一个表达式,在我们的数学计算是有意义的。变量名要能够帮助理解变量所代表的值的含义。然后变量需要赋值,一般来说初始化是好习惯,然后再更新即放入一定的表达式中运算,最后实现一定的输出。当然,我们需要养成测试的好习惯,即在运行程序前就思考正确的答案应该是什么,从而为代码的修改提供依据(使用print语句)。还有,及时保存程序很重要,时刻记住ctrl+s。
6简单的程序是一行一行输入语句,运行程序后语句立刻执行,这是基本的措施,但很繁琐,我们需要进一步抽象。这就是函数,能够如同变量的值减少重复运算,这种架构其实也是代码,但只有当你调用这个函数,才会执行函数内部的代码。一次性定义一段代码之后可以多次调用它,这无疑大大简化各种计算。将函数的用处清楚地写入注释里,这有助于把一整套函数集成起来。函数头:def函数名(参数):;函数体:具体的语句如计算公式,然后有一定的输出或者return。函数只有被调用时才执行。实际上函数可以被视为黑箱,我们知道其可以针对一定的输入实现一定的输出,这最后能够升维到算法的层次甚至各种功能。
7代码如何运行,结合冯诺依曼计算机体系,我们知道这是存储器的不同区块的数据的选择性提取到cpu计算(以变量为基础,其存储于硬盘的一定地址),然后各种返回值也同样存储于特定的存储器地址中。
8模运算+d,a=d.可以用于计算12小时制或24小时制的小时,如20:00时再过8个小时是几点的问题,可以用20加8得28,可以取24的余数得4。使用模运算和余数可以来做24小时时钟的小时计算。这是计算周期的一个很重要的方法,如2d游戏对象可以到处移动,当一个物体移动到界面边缘的情况,有时希望它可以环绕屏幕运动,在一侧消失然后在另一侧冒出来。其位置的数值在这个情况的变化可以使用模运算,新位置值等于原来的位置值加上移动值然后取得屏幕宽度的余数。
如何处理字符串和数字,即数据类型的强制转换,如数值转换为字符串输出,可以使用r函数将数字转换为字符串,从而能够使用不同的运算(数字的+是计算,字符串的+是连接字符串)
调用python以外的函数集即模块,是其他人建立好并添加到python中的,要想调用这些函数需要将其导入如iui。
9计算机的本质是逻辑运算。任何复杂的程序可以分解为基本的布尔逻辑包括非(not)、与(and)和或(or)。这些基本的逻辑门的不断组合嵌套能够形成复杂的函数。
10程序的控制流程,从基础的顺序执行到顺序分支循环语句的结合(可以根据程序中的值来改变控制流程),再到各种复杂的叠套结构。在python中根据数据来改变控制流程的方式是使用if语句,可以有多个条件通过与或非连接起来。使用任意的布尔逻辑和断言的能力允许行
喜欢学医路漫漫请大家收藏:(m.fubook.win),腐书网更新速度最快。