Python重写C语言程序100例--Part6
'''
【程序41】
题目:学习static定义静态变量的使用方法
1.程序分析:
2.程序源码:
'''
# python没有这个功能了,仅仅能这样了:)
def varfunc():
var = 0
print 'var = %d' % var
var += 1
if __name__ == '__main__':
for i in range(3):
varfunc() # attribut of class
# 作为类的一个属性吧
class Static:
StaticVar = 5
def varfunc(self):
self.StaticVar += 1
print self.StaticVar print Static.StaticVar
a = Static()
for i in range(3):
a.varfunc()
'''
题目:学习使用auto定义变量的使用方法
1.程序分析:
2.程序源码:
没有autokeyword,使用变量作用域来举例吧
'''
num = 2
def autofunc():
num = 1
print 'internal block num = %d' % num
num += 1
for 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.nNum if __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 = 0
for i in range(1,101):
tmp += i
print 'The sum is %d' % tmp
'''
【程序46】
题目:宏#define命令练习(1)
1.程序分析:
2.程序源码:
没有C语言的宏,就这么写了
'''
TRUE = 1
FALSE = 0
def SQ(x):
return x * x
print 'Program will stop if input value less than 50.'
again = 1
while 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:x
void 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) * y
MINIMUM = lambda x,y : (x > y) * y + (x < y) * x if __name__ == '__main__':
a = 10
b = 20
print 'The largar one is %d' % MAXIMUM(a,b)
print 'The lower one is %d' % MINIMUM(a,b)
Python重写C语言程序100例--Part6的更多相关文章
- Python重写C语言程序100例--Part1
''' [程序1] 题目:有1.2.3.4个数字,能组成多少个互不同样且无反复数字的三位数?都是多少? 1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成全部的排列后再去 掉不满足条件 ...
- Python重写C语言程序100例--Part9
''' [程序71] 题目:编写input()和output()函数输入,输出5个学生的数据记录. 1.程序分析: 2.程序源码: 使用list来模拟结构(不使用class) stu = [strin ...
- C 语言经典100例
C 语言经典100例 C 语言练习实例1 C 语言练习实例2 C 语言练习实例3 C 语言练习实例4 C 语言练习实例5 C 语言练习实例6 C 语言练习实例7 C 语言练习实例8 C 语言练习实例9 ...
- C语言经典100例-ex002
系列文章<C语言经典100例>持续创作中,欢迎大家的关注和支持. 喜欢的同学记得点赞.转发.收藏哦- 后续C语言经典100例将会以pdf和代码的形式发放到公众号 欢迎关注:计算广告生态 即 ...
- C语言经典100例-ex001
系列文章<C语言经典100例>持续创作中,欢迎大家的关注和支持. 喜欢的同学记得点赞.转发.收藏哦- 后续C语言经典100例将会以pdf和代码的形式发放到公众号 欢迎关注:计算广告生态 即 ...
- 黑马程序员——经典C语言程序设计100例
1.数字排列 2.奖金分配问题 3.已知条件求解整数 4.输入日期判断第几天 5.输入整数进行排序 6.用*号显示字母C的图案 7.显示特殊图案 8.打印九九口诀 9.输出国际象棋棋盘 10.打印楼梯 ...
- C语言经典程序100例
-------------------------------------------------------------------------------- [程序1] 题目:古典问题:有一对兔子 ...
- C语言经典100例(51-100)
[程序51] 题目:学习使用按位与 & . 分析:0&0=0; 0&1=0; 1&0=0; 1&1=1 #include "stdio.h" ...
- 经典c程序100例==91--100
[程序91] 题目:时间函数举例1 1.程序分析: 2.程序源代码: #include "stdio.h" #include "time.h" void mai ...
随机推荐
- EasyUI - Progressbar 进度条控件
效果: html代码: <div id="p" style="width:400px;"></div> JS代码: $(function ...
- JSP自定义标签——简单标签(2)
在前一篇博客中,我们已经学习了自定义的简单标签的基本使用方法,这一篇我们来学习如何在简单标签中添加标签属性.对自定义标签添加一些属性,可以使我们的标签功能更加灵活和复用.例如前一篇博客使用简单标签来对 ...
- Servlet的学习之Request请求对象(2)
在上一篇<Servlet的学习(十)>中介绍了HttpServletRequest请求对象的一些常用方法,而从这篇起开始介绍和学习HttpServletRequest的常用功能. 使用Ht ...
- PHP开发-上传文件
<?php /****************************************************************************** 参数说明: $max_ ...
- AngularJS 学习笔记值post传值
问题直接调用$http.post()方法时 传值格式是这样的 php接收端接收到的是json格式的,怎么做的跟Ajax post那样传值呢? 分析原因,angular的$http.post()方法默认 ...
- MOCKITO 应用示例
package com.paic.wms.service.auditflow.impl; import static org.junit.Assert.*; import java.util.Arra ...
- JOHN W. TUKEY: HIS LIFE AND PROFESSIONAL CONTRIBUTIONS
DAVID R. BRILLINGER 写的关于John的一片纪念文章 JOHN W. TUKEY: HIS LIFE AND PROFESSIONAL CONTRIBUTIONS (The Ann ...
- timeout connect 10000 # default 10 second time out if a backend is not found
timeout connect <timeout> timeout contimeout <timeout> (deprecated) Set the maximum time ...
- Android 编程之第三方开发 MaoZhuaWeiBo微博开发演示样例-1
在大学期间我做过非常多类似这种APP.这个是我们小组之前做的,我后期增加非常多新元素.完好了这个应用,由于为了加强 专业技术嘛.也是常常熬夜写些小东西,嘿嘿.只是还算不错.起码技术长进了不少嘛,还是非 ...
- moodle中文API之表单API
Form API 表单API 文件夹 1.概述 2.亮点 3.使用方法 4.表单元素 4.1 基本表单元素 4.2 定制表单元素 5.经常使用函数 5.1 add_action_buttons($c ...