博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python重写C语言程序100例--Part6
阅读量:5105 次
发布时间:2019-06-13

本文共 3515 字,大约阅读时间需要 11 分钟。

'''【程序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)

 

转载于:https://www.cnblogs.com/blfshiye/p/3765519.html

你可能感兴趣的文章
设计模式之装饰者模式
查看>>
一道不知道哪里来的容斥题
查看>>
Blender Python UV 学习
查看>>
window添加右键菜单
查看>>
入手腾龙SP AF90mm MACRO
查看>>
Window7上搭建symfony开发环境(PEAR)
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>
一些方便系统诊断的bash函数
查看>>
jquery中ajax返回值无法传递到上层函数
查看>>
css3之transform-origin
查看>>
[转]JavaScript快速检测浏览器对CSS3特性的支持
查看>>
Master选举原理
查看>>
[ JAVA编程 ] double类型计算精度丢失问题及解决方法
查看>>
小别离
查看>>
微信小程序-发起 HTTPS 请求
查看>>
WPF动画设置1(转)
查看>>
基于node/mongo的App Docker化测试环境搭建
查看>>
java web 中base64传输的坑
查看>>