语言

Make Games with Python & Pygame (1)

空扰寡人 提交于 2020-12-25 20:05:03
看见这本书很有意思,利用Python和Pygame模块进行游戏开发,边学习边翻译边写心得。 http://download.csdn.net/detail/abclixu123/4582805 这是真本书的下载地址。 第二章介绍Pygame的一些基础知识。开始也是以经典的Hello World开始。所用的开发环境就是安装Python后自带的IDLE。 HelloWorld程序如下: import pygame, sys from pygame.locals import * pygame.init() DISPLAYSURF = pygame.display.set_mode((400,300)) pygame.display.set_caption('Hello World') while True: for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() pygame.display.update() 这个程序运行后就是一个简单的黑色窗口。 对这个程序有几点说明 需要包含Pygame模块,即import pygame 在进行任何具体的Pygame的操作之前,都要进行Pygame的初始化,即pygame.init() DISPLAYSURF = pygame.display

Python 语言精华

天大地大妈咪最大 提交于 2020-11-10 06:49:57
注释 单行注释(前置井号) # this is comment Python 不允许使用关键字作为变量的名称 关键字 and exec not assert finally or break for pass class from print continue global raise def if return del import try elif in while else is with except lambda yield 数字 0, 90, 0xff 字符串 'abc' "abc" """ abc """ 变量 除关键字之外的以字母开头的名字都可以当成变量的名字,但一些内置的函数没有命名保护。 print = 3 # print(1) would throw error int = 4 # int("34g") 会报错 变量赋值会复制结果,而不是注册一个引用。 常量 这是一种书写惯例,名称都是大写的是常量,但没有只读保护 PI = 3.14 字符串常用函数 ord('A') # 65 chr(65) # A len('abc') # 3 print('abc') # abc list and touple 列表和元组 元组只是只读的列表而已,从执行效率来看,元组速度更快,元组只是和优化有关的概念。 还有一种列表,占用更少的资源空间,叫做惰性列表。 range(5) #

程序员准备面试时常犯的10个错误

冷暖自知 提交于 2020-04-07 06:29:38
无论你准备何时跳槽,开始你下一段职业生涯,你在准备面试时可能经常会犯的10个错误,犯没犯过,只有自己知道! 1.只在电脑上练习 如果面试官要考核你的技术,很有可能会要求你在白板上写代码,而不是电脑上。所以,你就不能只在电脑上练习。电脑上的编译器会自动发现你的语法错误,但是白板不会。 拿出笔和纸来练习下如何写代码。如果你自我检查之后,觉得程序正确,再将它们输入到电脑里,看看是否和原先设想的一样。 2.不为可能提出的问题做准备 面试之前一定要为可能提出的问题做准备。问题可能涉及你曾经的项目,你遇到的不同问题以及如何解决这些难题。你的回答会影响面试官对你的技术能力的印象。 在面试之前先好好回顾自己做过的项目,将自己的主要事迹整理一下。 3.不做模拟面试 原因显而易见。我们最好能排练一下在面试的时候会问哪些问题。还有,在正式面试时,虽然面试官会向你提问,但是同时,你也可以向他们提出问题,所以你要问哪些问题一定要事先准备好。这篇文章 五个程序员求职者的最佳提问 中可以帮你找到合适的问题。 4.一味地背诵解决方案 如果你准备事先记住问题答案期待到时候能派上用场,那我劝你别瞎子点灯——白费蜡了。因为刚好抽到你背的那个答案的概率微乎其微。 相反,准备方案还需要花费你很多时间和精力。Remember,你现场发挥得越好,你本身的价值就越高。 5.说话声音小 一般而言,说话声音小会让人感觉你的思路不清晰

C语言关键---sizeof

[亡魂溺海] 提交于 2020-03-01 16:33:40
sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。  二、sizeof的使用方法   1、用于数据类型    sizeof使用形式:sizeof(type)    数据类型必须用括号括住。如sizeof(int)。    2、用于变量    sizeof使用形式:sizeof(var_name)或sizeof var_name    变量名可以不用括号括住。如sizeof (var_name),sizeof var_name等都是正确形式。带括号的用法更普遍,大多数程序员采用这种形式。    注意:sizeof操作符不能用于函数类型,不完全类型或位字段。不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、未知内容的结构或联合类型、void类型等。    如sizeof(max)若此时变量max定义为int max(),sizeof(char_v) 若此时char_v定义为char char_v [MAX]且MAX未知,sizeof(void)都不是正确形式。  三、sizeof的结果   sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型

从把3000行代码重构成15行代码谈起

核能气质少年 提交于 2020-02-29 02:48:47
如果你认为这是一个标题党,那么我真诚的恳请你耐心的把文章的第一部分读完,然后再下结论。如果你认为能够戳中您的G点,那么请随手点个赞。 把三千行代码重构为15行 那年我刚毕业,进了现在这个公司。公司是搞数据中心环境监控的,里面充斥着嵌入式、精密空调、总线、RFID的概念,我一个都不懂。还好,公司之前用Delphi写的老客户端因为太慢,然后就搞了个Webform的替代,恰好我对Asp.Net还算了解,我对业务的不了解并不妨碍我称成为这个公司的一个程序员。小公司也有小公司的好,人少,进去很快负责代码开发。我当然也就搞这个数据中心智能管理系统啦。 这个系统非常的庞大,尤其牛逼的是支持客户端组态,然后动态生成网页,数据还能通过Socket实时监控(那时我还真就不懂网络编程)。这个对于当时的我来说,真真是 高、大、上 呐!!当时跟着了解整个系统大半个月才算能够调试,写一些简单的页面。 在维护系统的过程中,时不时要扩展一些功能,也就接触了下面这个类: 图片有压缩,点击这里查看清晰的原图。 看到没有,就是当年最最流行的三层架构的产物,对于刚出茅庐的毛头小子来说,这是多么专业的文件头注释,还有反射也就算了,这构造函数还能静态的,还能私有的?那时刚接触这么高大上的代码的我,瞬间给跪了! 但是,类写多了,我就感觉越来越别扭,就是下面这段代码: 图片有压缩,点击这里查看清晰的原图。 每增加一个表

C语言关键---static

百般思念 提交于 2020-02-28 13:40:48
static 这个关键字,我感觉对很多初级程序源和刚接触程序的同学来说,可能都没有完全理解它的含义。至少对我来说对它的认识不是很清楚。因此对它在次总结一下。主要作为自己的备忘录。 1.static关键字的第一特性: 隐藏 static 在修饰变量时分为全局变量和局部变量,都存在静态存储区域。 static全局变量:作用域是从定义的位置开始到整个所在cpp文件结束,其他cpp文件都不能使用static定义的变量,在同一个cpp文件中,在定义前使用要用extern关键字。因此static修饰变量会被隐藏在一个cpp文件里。 static 局部变量:作用域只在一个函数的内部使用,static局部变量是静态存储,因此在函数退出后,仍然保存值,再次进入函数时,static局部变量使用上次的值。 在局部变量前,加上关键字static,该变量就被定义成为一个静态局部变量。 我们先举一个静态局部变量的例子,如下: //Example 3 #include <iostream.h> void fn(); void main() { fn(); fn(); fn(); } void fn() { static n=10; cout<<n<<endl; n++; }   通常,在函数体内定义了一个变量,每当程序运行到该语句时都会给该局部变量分配栈内存。但随着程序退出函数体,系统就会收回栈内存

UML基础之图

为君一笑 提交于 2019-12-06 22:51:42
UML——United Modeling Language, 统一建模语言——是一种面向对象的可视化建模语言。UML 采用了一组形象化的图形(如类图)符号作为建模语言, 使用这些符号可以形象地描述系统的各个方面。UML 通过建立图形之间的各种关系(如类与类之间的关系)来描述模型。 UML 中一共有 5类(9种)图,包括 用例图、静态图( 类图、对象图 )、行为图( 状态图、活动图 )、交互图( 时序图、协作图 )、实现图( 组件图、部署图 ) 。其中的类图是最重要的,还有就是用例图和时序图也是要求要掌握的。UML 中的关系主要包括 4 种:关联关系(association)、依赖关系(dependency)、泛化关系(generalization)、实现关系(realization)。 1、用例图 首先了解一下关于用例图,用例图(Use Case Diagram): 也称为用户模型图, 是从软件需求分析到最终实现的第一步, 它是从用户的角度来描述系统功能。并指出各功能的执行者。用例图包含 3 个基本组件: 参与者(Actor), 用例(Use Case), 关系。 1.1参与者(Actor): 与系统交互的人或其他系统,即使用该系统的人或事物,在 UML 中参与者用人形图标表示。 1.2用例(Use Case): 代表系统的某项完整的功能. 在 UML 中使用一个椭圆来表示。 1

C 语言关键字,标示符和注释

空扰寡人 提交于 2019-12-05 12:34:02
一、关键字 C语言提供的有特殊含义的符号,共32个。 在Xcode中关键字全部高亮显示,关键字全部都为小写。如return、int等。 二、标识符 定义:标识符是程序员在程序中自定义的一些符号和名称。关键字是系统自带的,标识符是自定义的。如函数的名称等,用来区分各种事务。 标识符有一定的命名规则: 只能由26个小写字母,0-9的数字以及下划线组成。 严格区分大小写。 不能以数字开头。 不可以使用关键字作为标识符。 建议遵守命名规范: (1)尽量起有意义的名字; (2)多个单词可以使用驼峰标识(第二个字母的首字母大写)或者使用下划线连接。 三、注释 (1)注释用以解释代码的含义,提高程序的可读性,注释掉的内容将不会参与编译。注释是写给程序员看的,方便同事之间的交流。 (2)注释的符号 单行注释 // 多行注释 /* */ (3)可以使用注释检查代码的作用(前后对照),可以使用注释排错(因为编译器报错有时并不准确,且一个错误往往引发多个错误) (4)注释的嵌套 ①. 单行注释可以嵌套单行注释,多行注释 ②. 多行注释可以嵌套单行注释 ③. 多行注释不可以嵌套多行注释 (5)注意printf(“//abc”);这里的//在双引号内是字符串的一部分而非注释。 来源: oschina 链接: https://my.oschina.net/u/2450698/blog/547037

C++语言学习之STL 的组成

限于喜欢 提交于 2019-12-03 20:52:18
STL 有三大核心部分:容器( Container )、算法( Algorithms )、迭代器( Iterator ),容器适配器( container adaptor ),函数对象 (functor) ,除此之外还有 STL 其他标准组件。通俗的讲: 容器:装东西的东西,装水的杯子,装咸水的大海,装人的教室 ……STL 里的容器是可容纳一些数据的模板类。 算法:就是往杯子里倒水,往大海里排污,从教室里撵人 ……STL 里的算法,就是处理容器里面数据的方法、操作。 迭代器:往杯子里倒水的水壶,排污的管道,撵人的那个物业管理人员 ……STL 里的迭代器:遍历容器中数据的对象。对存储于容器中的数据进行处理时,迭代器能从一个成员移向另一个成员。他能按预先定义的顺序在某些容器中的成员间移动。对普通的一维数组、向量、双端队列和列表来说,迭代器是一种指针。 下面让我们来看看专家是怎么说的: 容器( container ):容器是数据在内存中组织的方法,例如,数组、堆栈、队列、链表或二叉树(不过这些都不是 STL 标准容器)。 STL 中的容器是一种存储 T ( Template )类型值的有限集合的数据结构 , 容器的内部实现一般是类。这些值可以是对象本身,如果数据类型 T 代表的是 Class 的话。 算法( algorithm ):算法是应用在容器上以各种方法处理其内容的行为或功能。例如

zephir-(4)基本语法

。_饼干妹妹 提交于 2019-12-03 07:57:08
#zephir-基本语法# ##前言## 先在这里感谢各位zephir开源技术提供者 每个语言都有它的语法,每个语言都有他的结构,那么今天就来和小编来讨论zephir的文件结构和命名空间,变量声明, 一些语法习惯,和一些其他的概念。 注:笔者水平有限,说的不正确的地方希望大家多多指正,一同交流技术 附上: 喵了个咪的博客: w-blog.cn zephir官网地址: http://zephir-lang.com/ github地址: https://github.com/phalcon/zephir ##1. 基本语法结构## 在PHP中,您可以将任何文件中的代码没有一个特定的结构。但在Zephir中,每个文件必须包含一个类。每个类必须有一个名称空间和目录结构必须匹配,类的名称和名称空间配合使用。 ###1.1 文件结构和命名空间### 例如,给出下面的结构,每个文件都必须的类: mylibrary/ router/ exception.zep # MyLibrary\Router\Exception router.zep # MyLibrary\Router mylibrary / router.zep: namespace MyLibrary; class Router { } MyLibrary\Router\exception.zep: namespace