游戏程序员的高属性装备——Python

现在手游越来越重度,画面越来越炫,特效、图片资源越来越多,分类越来越复杂,靠单纯的美术传图给程序,再放到项目中,实在是吃力不讨好,时间长总会出错,头都大了。

特别现在UI界面或者小块功能性UI大都是CocoStudio或CocosBuilder拼好,无论美术拼或策划拼(当然也有程序自己拼的。。。),这些都被划成了游戏美术资源,如何高效、正确组织管理这些资源是个不大不小的问题,这时候如果能有个工具能统一处理下,每次打包或提交到git / svn时,那多爽!

对!而且还得是跨平台的!一会windows下一会mac下,不能跨平台多蛋疼~~

废话不多说,直接说好处,为毛选择Python:

1.处理文档资源够简单:因为它是个脚本语言,语法简洁还没那么严格,几乎可以只关心处理逻辑

2.写起来够爽:Python是用C写的,格式化输出几乎跟C一个鸟样,对于广大程序猿来说无论后来走上哪条语言的不归路,C总是那么亲切,毕竟那是第一次~~

3.修改灵活,立竿见影:就像批处理文件一样,你在或不在,代码始终在。木有目标文件,木有链接文件,木有库文件,就源文件跟着项目走,任何时候改打开直接一顿改,直接运行就O了

4.面向对象+支持图形+支持多线程:这是我大致看了两本书总结的可能将来有用的功能,目前用不到,但至少说明这哥们足够强大~

 

------------------------------------------------------不知道为什么这么火的火火分隔线-------------------------------------------------

一、环境

跨平台,下对应的,官网两个稳定版,一个2一个3,一般都是2,完事


二、查看帮助

1.用神奇的交互式编译器运行函数

help() 

 查看模块都有什么功能  如help("math")   help("os.listdir")

 

dir()

用来列出变量或模块能使用的方法,如dir("arr")

 


三、永远先从变量说起

Python也是强类型语言,虽然不用定义时指定变量类型,可一但赋值就相当于指定了类型,再用时不同类型间就要类型转换了

基础类型:

 整型、浮点型、字符串、列表(就是可变数组,似NSMutableArray)、元组(不可变数组,似NSArray)、字典

1.数字型

跟常用语言一样用,就是不写定义类型,编译器会自动根据赋值匹配数据类型

常用函数

round(num,digit)这个函数好,看似跟格式化输出一样,其实不一样,如下

"%.2f" %math.sqrt(2)

‘1.41'



abs()绝对值

float()

long()

pow(x,y)

math.sqrt() 

math.ceil(num) 向上取整,但返回是浮点数

math.floor(num) 向下取整,返回是浮点数


2.字符串

定义:

 str = "wow~a string"

标识

对于字符串用双引号和单引号一样,原来的Python程序员习惯用单引号’ ‘ ,C / C++程序员习惯用双引号 “ “



str = str + ",add a string"    # "wow~a string,add a string"

string不玩删

 

str[1] # "o"

len("wow") # 3

str.find("a") # 4  说明:返回-1才是没找到,0也是找到,所以判断是要 >= 0,很容易忽略

str.isalpha()

str.isalnum()

str.isdigit()

str.split() #返回切分后的数组

这个比较多

str.replace("wow","ca") # "ca~a string,add a string"

str.upper()

str.lower()



str()


坑:

格式化字符串,更应该返过来说——“字符串的格式化”

为毛这样说,因为即使 “%f” %(1.2) ,返回的也是字符串

>>> "%09.2f" %(1.2)

‘000001.20'


3.列表(就是可变数组)


就像Objective-C中的NSMutableArray,可变的数组,可以随心所欲地用,常用方法:

定义

列表可吊了,直接一个[ ]就创建完毕

arr = ["a","b","c","d"]

序列相加

确实够灵活

>>> [1,2,3] + [4,5,6]

[1,2,3,4,5,6]


但要同类型,像下面就会报错

>>> [1,2,3] + "wo ca~"

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

TypeError: can only concatenate list (not "str") to list

>>> 


append和extend的区别

arr.append(item)

>>> arr = [5,6]

>>> arr.append(7)

>>> arr

[5, 6, 7]

>>> arr.append([8,9])

>>> arr

[5, 6, 7, [8, 9]]


extend()

>>> arr

[5, 6, 7]

>>> arr.extend([8,9])

>>> arr

[5, 6, 7, 8, 9]


insert(pos,item)


del arr[pos]

pop()移除最后一个元素,并且返回该值

唯一的一个既能修改又返回元素值(不带None玩)的列表方法

虽然可以pop(pos),但这就跟del arr[pos]一个效果,看使用鸟~


remove(item)


cmp(x,y) 可数字可字符串,返回-1,0,1,这点果然是C的亲儿子

len() 计算长度

index(sth) 返回第一个匹配的索引


res = arr[2]      # res = "c"


min(arr)

max(arr)

>>> min([1,2,3])

1

>>> min("ljwlef")

'e'

>>> max("ljwlef")

'w'


count(sth)

查sth有几个


arr[3] = "4"       #arr = ["a","b","c","4"]

sort()升序排列(没研究用的什么泡排的)


分片(这个很高端)

>>> arr = [11,12,13,14,15]

>>> arr[0:3:1]

[11, 12, 13]

>>> arr[0:3:2]

[11, 13]

>>> 

等同于for(i = 0;i < 3;i += 2)


4.字典

len(dict) 所有key的数量

del dict[key]

dict[key]  取某个key上的值


增删 # 不常用,用时再查

has_key(key) 返回 True / False

因为字典无序,所以没有列表的pop() / append()方法,


.clear()

.items()

.keys()

.values()


>>> dict

{'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4}

>>> dict.keys()

['a', 'c', 'b', 'e', 'd']

>>> dict.values()

[1, 3, 2, 5, 4]

>>> dict.items()

[('a', 1), ('c', 3), ('b', 2), ('e', 5), ('d', 4)]

>>>


好办,按读的直接赋值~


四、语句

这点CoffeeScript跟Python有一腿,都是用tab分段,有一点明显不一样的是,

Python的判断语句后面都要加一个冒号" : "

if "python".find("o") >= 0:

print "found~"

print "if end" #这句因为跟if平级,就不在判断内了


Python木有switch,有if

if ...

elif ...

else...


Python有while,木有传统的for,可以这样用for

for i in range(0,10,1): # 相当于 for(int i = 0,i < 10 ;i++)

...

五、函数

定义

def func(arg):

...

def func():

...


六、引用库

import os,math


======================= 不知道为毛这么火的分隔线 =======================


扯了这么多,看书用了两天,写这篇用了三天。。。。

基本用法就这么多鸟,写一般的程序足够用了,下篇写文件读写,走起!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值