Python Learning Notes - 2
主体感想
我们要想表达出一个事件(event),或一系列相联系的事件(events series that construct a system which gives you the desired results of output | イベントシリーズから作られたシステム、このシステムを実行したら,目的な結果を出す),就需要相应熵值的代码,此处的熵值一定要 ≥ 事件系列(system)的熵值。
一段可以运行的python程序,对于计算机来说,有确定的机器动作对应,因而计算机是可以理解这一段代码的,但是,人类,如果不借助注释或文档,就读不懂这段程序,因而对于人类大脑的“解析库(the reservior of background information)”来说,这段程序就是熵值不足的。
因此,本质上来说,程序就是在计算机运行和人类理解之间,架出一座桥梁,既要求计算机可以有序地(并行也好,串行也好)实现机器动作(機械アクション),又要求人类可以读懂程序所描述的信息。所以,我们会尽量使用英文命名,并且在程序中插入大量的注释,对于大型程序,我们还有描述上层逻辑的文档。
学习python,并不是仅仅学习它的文法要求,它的packages —— 当然,使用英文阅读package使用方式的能力至关重要,是需要长久练习的,这如同手绘中透视感觉和描画的练习——而且还要学(learn)习(practice)与思考如何代码化一个系统。一个系统被有组织地代码化了(describe the sytem with orgnized codes),程序就出来了。
普通赋值与类赋值的区别
普通的赋值,会将等号右边的值与类型,都赋给等号左边的变量,比如
a = int(1)
a
1
b = float (1)
b
1.0
a = b
type(a)
<class 'float'>
而类的赋值,会改变等号右边的值得类型,以适应左边变量的类型,比如
self.rect.centerx = self.center
print(type(self.center))
print(type(self.rect.centerx))
<class 'float'>
<class 'int'>
什么是初始化(Initialization 初期化 イニシャライズ)
初始化是让某种框架以某种状态呈现,这样的一种“动作过程”(初期化とはある枠組みあるいはフレームワークをある状態で表れさせるというプロセスのことである。その後は、フレームワークのインタフェースをつくる。そのインタフェースの上で、ある関数やアトリビュートを利用して変化して、フレームワークから目的な輸出が出らることを実現する)。在此之后,我们可以通过修改“设置参数”或调用框架里的函数,来使框架输出我们想要的结果。“初始化”是把框架引出来,告诉我们,这是一个“系统存储的代码 code reservior - a reusable set of libraries or classes”可以拿来用。比如:
import pygame
pygame.int() # 初始化游戏
当我们调用类的时候,一般第一步就是初始化, 比如:
# create a ship
ship = Ship(ai_settings, screen)
import sth 的意义 import sthはいったい何をする
import sth, 就是我们现在的程序已经和sth建立起了链接(联系),而 sth 就是一个module,一个subVI(借用LabVIEW中的术语)。或者说,import sth,就是将sth里的代码池(code reservior)都包括在现在的程序中了,所以在C语言中,使用 include sth.
我们可以从sth中取出我们想要的任何东西(函数、变量、常量 ……),并以库(sth)提供的平台运行。比如以下的 run_game 函数,它其中的代码,就和以上的所有import过来的代码相联系。
import pygame
from settings import Settings
from ship import Ship
import game_functions as gf
def run_game():
# initialize the game by creating a screen object
pygame.init()
ai_settings = Settings()
screen = pygame.display.set_mode((ai_settings.screen_width, ai_settings.screen_height))
pygame.display.set_caption('Alien Invasion')
# create a ship
ship = Ship(ai_settings, screen)
# start the main loop of the game
while True:
gf.check_events(ship)
ship.update()
gf.update_screen(ai_settings, screen, ship)
run_game()
现在我们做任何代码,都是在前人的基础上进行了。