不再年轻.NET

一个IT教师眼中的生活.NET、感悟.NET和技术.NET

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
            这是一个我在Delphi、C#和VB.NET教学中经常让学生做的一个例子:输入年份和月份,判断该年是否是闰年;判断该月属于什么季节;该月有多少天。练习对语言的特性的掌握,诸如流程控制、数据类型、输入输出、函数等等。下面是这个问题的Python和Ruby版本。
            Python:
import sys
def IsLeapYear(y):
    
if ((y % 4==0)and(y % 100!=0))or(y % 400==0):
        
return True
    
else:
        
return False

def Season(m):
    
if m in [12,1,2]:
        
return "winter"
    
elif m in [3,4,5]:
        
return "spring"
    
elif m in [6,7,8]:
        
return "summer"
    
elif m in [9,10,11]:
        
return "autumn"
    
else:
        
return "error"
        
def Days(y,m):
    
if m in [1,3,5,7,8,10,12]:
        
return 31
    
if m in [4,6,9,11]:
        
return 30
    
if m==2:
        
if IsLeapYear(y)==True:
            
return 29
        
else:
            
return 28


print "Please input year:"
year
=int(sys.stdin.readline(),10)
print "Please input month:"
month
=int(sys.stdin.readline(),10)
if IsLeapYear(year)==True:
    
print "This is Leap year!\n"
else:
    
print "This is not Leap year!\n"
print "%d is in %s\n" %(month,Season(month))
print "%d has %d days\n" %(month,Days(year,month))
sys.stdin.readline()

            Ruby:
#LeapYear,Season,DaysOfMonth

def IsLeapYear(y)
    
if ((y % 4==0)and(y % 100!=0))or(y % 400==0)
        
1
    
else
        0
    end
end

def Season(m)
    case m
        when 
12,1,2
            
"winter"
        when 
3,4,5
            
"spring"
        when 
6,7,8
            
"summer"
        when 
9,10,11
            
"autumn"
        
else
            
"error"
    end
end
        
def Days(y,m)
    case m
        when 
1,3,5,7,8,10,12
            
31
        when 
4,6,9,11
            
30
        when 
2
            
if IsLeapYear(y)==1
                
29
            
else
                
28
            end
    end
end

print "Please input year:"
year
=readline.to_i
print "Please input month:"
month
=readline.to_i

if IsLeapYear(year)==1
    
print "This is Leap year!\n"
else
    
print "This is not Leap year!\n"
end

print "#{month} is in #{Season(month)}\n"
print "#{month} has #{Days(year,month)} days\n" 
readline()
posted on 2006-10-15 13:23  不再年轻.NET  阅读(1315)  评论(2编辑  收藏  举报