'''【程序41】题目:学习static定义静态变量的使用方法 1.程序分析:2.程序源码:'''# python没有这个功能了,仅仅能这样了:)def varfunc(): var = 0 print 'var = %d' % var var += 1if __name__ == '__main__': for i in range(3): varfunc()# attribut of class# 作为类的一个属性吧class Static: StaticVar = 5 def varfunc(self): self.StaticVar += 1 print self.StaticVarprint Static.StaticVara = Static()for i in range(3): a.varfunc()
'''题目:学习使用auto定义变量的使用方法1.程序分析: 2.程序源码:没有autokeyword,使用变量作用域来举例吧'''num = 2def autofunc(): num = 1 print 'internal block num = %d' % num num += 1for i in range(3): print 'The num = %d' % num num += 1 autofunc()
'''【程序43】题目:学习使用static的还有一使用方法。 1.程序分析:2.程序源码:有一个static变量的使用方法,python是没有,演示一个python作用域使用方法'''class Num: nNum = 1 def inc(self): self.nNum += 1 print 'nNum = %d' % self.nNumif __name__ == '__main__': nNum = 2 inst = Num() for i in range(3): nNum += 1 print 'The num = %d' % nNum inst.inc()
'''【程序45】题目:学习使用register定义变量的方法。1.程序分析:2.程序源码:没有registerkeyword,用整型变量取代'''tmp = 0for i in range(1,101): tmp += iprint 'The sum is %d' % tmp
'''【程序46】题目:宏#define命令练习(1) 1.程序分析:2.程序源码:没有C语言的宏,就这么写了'''TRUE = 1FALSE = 0def SQ(x): return x * xprint 'Program will stop if input value less than 50.'again = 1while again: num = int(raw_input('Please input number')) print 'The square for this number is %d' % (SQ(num)) if num >= 50: again = TRUE else: again = FALSE
'''题目:宏#define命令练习(2)1.程序分析: 2.程序源码:#include "stdio.h"#define exchange(a,b) { \ /*宏定义中同意包括两道衣裳命令的情形,此时必须在最右边加上"\"*/ int t;\ t=a;\ a=b;\ b=t;\ }'这个宏定义python不支持'''def exchange(a,b): a,b = b,a return (a,b)if __name__ == '__main__': x = 10 y = 20 print 'x = %d,y = %d' % (x,y) x,y = exchange(x,y) print 'x = %d,y = %d' % (x,y)
'''【程序48】题目:宏#define命令练习(3) 1.程序分析:2.程序源码:#define LAG >#define SMA <#define EQ ==#include "stdio.h"void main(){ int i=10; int j=20; if(i LAG j) printf("\40: %d larger than %d \n",i,j); else if(i EQ j) printf("\40: %d equal to %d \n",i,j); else if(i SMA j) printf("\40:%d smaller than %d \n",i,j); else printf("\40: No such value.\n");}不知道怎样用python实现相似的功能'''if __name__ == '__main__': i = 10 j = 20 if i > j: print '%d larger than %d' % (i,j) elif i == j: print '%d equal to %d' % (i,j) elif i < j: print '%d smaller than %d' % (i,j) else: print 'No such value'
'''【程序49】题目:#if #ifdef和#ifndef的综合应用。1. 程序分析:2.程序源码:#include "stdio.h"#define MAX#define MAXIMUM(x,y) (x>y)?x:y#define MINIMUM(x,y) (x>y)?y:xvoid main(){ int a=10,b=20;#ifdef MAX printf("\40: The larger one is %d\n",MAXIMUM(a,b));#else printf("\40: The lower one is %d\n",MINIMUM(a,b));#endif#ifndef MIN printf("\40: The lower one is %d\n",MINIMUM(a,b));#else printf("\40: The larger one is %d\n",MAXIMUM(a,b));#endif#undef MAX#ifdef MAX printf("\40: The larger one is %d\n",MAXIMUM(a,b));#else printf("\40: The lower one is %d\n",MINIMUM(a,b));#endif#define MIN#ifndef MIN printf("\40: The lower one is %d\n",MINIMUM(a,b));#else printf("\40: The larger one is %d\n",MAXIMUM(a,b));#endif}这个还是预处理的使用方法,python不支持这种机制,演示lambda的使用。'''MAXIMUM = lambda x,y : (x > y) * x + (x < y) * yMINIMUM = lambda x,y : (x > y) * y + (x < y) * xif __name__ == '__main__': a = 10 b = 20 print 'The largar one is %d' % MAXIMUM(a,b) print 'The lower one is %d' % MINIMUM(a,b)