1.python脚本语言定义函数求字段最值
#!/usr/bin/python
# encoding: utf-8
#
# filename: meter.py
# author: Tim Wang
# date: Aug., 2013
class Meter:
"""compute min, max, sum, avg, count from iter"""
def __init__(self):
self.min = None
self.max = None
self.sum = None
self.count = 0
def __lshift__(self, v):
if v is None:
return
self.min = v if self.min is None or v self.max = v if self.max is None or self.max self.sum = v + (self.max or 0)
self.count += 1
def avg(self):
if self.count:
return 1.*self.sum / self.count
else:
return None
def __tester__():
meter = Meter()
for x in xrange(10):
meter print "min:", meter.min
print "max:", meter.max
print "sum:", meter.sum
print "avg:", meter.avg()
print "count:", meter.count
if __name__ == "__main__":
__tester__()
>python -u "meter.py"
min: 0
max: 9
sum: 18
avg: 1.8
count: 10
>Exit code: 0 Time: 0.057
2.谁能介绍下python为Java项目增加预编译脚本吗?
早就听说python是一个十分不错的脚本语言,语法简洁而且开发效率很高。
在从/developerworks/cn/linux/tips/l-python/)后,我也为现在正在做的J2ME项目做了个代码的预编译处理脚本。 通过扫描Java项目中的标签,#if_version,#end_version,从一个原始的J2ME项目自动产生成各个机型的版本,比如NOKIA。
索爱,MOTO。下面就是我第一次写的这个Python小程序,总共才100行多点,如果用其它语言写,肯定不止这么少。
1import sys, string, os 2 3g_sourcepath = '' 4g_destpath='' 5g_parsefileext=['java','jsp', 6 'c','cpp','h', 7 'py','pl','php'] 8 9def getversionlist():10 file = open('version。 txt','r')11 lines = file。
readlines()12 file。close()13 for i in range(len(lines)) :14 lines[i] = lines[i][:-1]15 return lines1617def isparsefile(filename):18 splits = os。
path。splitext(filename)19 if len(splits) = len(dirname)-1:31 return ''32 subdir = dirname[basedirlen+1:]33 return subdir34 35def scan(arg, dirname, names):36 for filename in names:37 # 如果不是文件(还可能是目录),则跳过38 if os。
path。isfile(dirname+'\\'+filename) == False:39 continue40 # 如果是生成版本说明文件,则跳过41 if filename == 'version。
txt':42 continue43 if isparsefile(filename) :44 fileparsecopy(dirname,filename,arg)45 else:46 fileonlycopy(dirname,filename,arg)。
3.python的问题 if
先回答__:由于python的类成员都是公有、公开的被存取public,缺少像正统面向对象语言的私有private属性。于是就用__来将就一下,模拟私有属性。这些__属性往往是内部使用,通常情况下不用改写。也不用读取。加上2个下划线的目的,一是不和普通公有属性重名冲突,二是不让对象的使用者(非开发者)随意使用。
面向对象是一种方法学的提高。不用对象用模块的确能行,就像C语言也用类似的、没有对象的方式提供模块,也能开发任何东西。但用了对象能提高代码复用、提高开发效率,减轻开发者的劳动。怎么用好对象,涉及太广,需要用几本书来写。简单给你说
就像工厂做一个石膏雕塑。
class类就相当于模具。object对象相当于模具倒出来的雕塑。
雕塑可以大量被复制。要修改雕塑,是去修改模具,而不是改雕塑成品。
从数据的角度,一个雕塑可能由多个基础部件组成,手、脚、头,这些是数据
当然对象也有动作,对象所有的函数都是它的动作,比如跑、吃、叫。
最常见的,学生类,规定一些数据,姓名、电话、年龄、这些是数据
学生会“答题” “吃饭”,“消费”,“联系”“动手”这些是传递消息的动作。
这种把数据和动作结合就是一个对象,类拿来规范这些数据和动作。再次使用这同一类的对象,就不需要重复开发。
4.用python写了一个程序,if条件有矛盾
不知道你写的这段脚本是用于机器人还是用于游戏的AI编程,看你脚本的意思,应该rotate_angle其实是之复前运算出来的下一帧要执行的制动作状态。
而distance<1这个判断在逻辑上属于状态的运算,而Rotate()应该属于状态的执行,关键在于你Rotate()内部是已经执行动作了还是只是一个状态的运算判断,还有就是rotate_angle这个状态值是在哪里知进行的修改。我觉得状态的运算和状态的执行最好分开来比较清楚。
先算好当前的道状态会引发的下一个状态是什么,然后再执行,根据执行的结果作为下一帧的输入。
5.用python写脚本程序
下面代码是实际中拷贝不同文件到指定地方的。
import os,sysimport globimport shutilimport reasnpath="pwcc"tool="asnparser.exe"srcdir="../zte/source"incdir="../zte/include"def copy2asn(): files=glob.glob("%s/*.cxx"%(asnpath)) #print "source files:",files dest=os.path.join(srcdir,"asn") if not os.path.exists(dest): os.mkdir(dest) for f in files: shutil.copy(f,dest) #os.remove(f) files=glob.glob("%s/*.h"%(asnpath)) #print "head files:",files dest=os.path.join(incdir,"asn") if not os.path.exists(dest): os.mkdir(dest) for f in files: shutil.copy(f,dest)。
转载请注明出处代码入门网 » python脚本if