[原创]Ruby学习笔记(4)-闰年、季节和月份天数的Ruby版和Python版

            这是一个我在Delphi、C#和VB.NET教学中经常让学生做的一个例子:输入年份和月份,判断该年是否是闰年;判断该月属于什么季节;该月有多少天。练习对语言的特性的掌握,诸如流程控制、数据类型、输入输出、函数等等。下面是这个问题的Python和Ruby版本。
            Python:
None.gif import  sys
None.gif
def  IsLeapYear(y):
None.gif    
if  ((y  %   4 == 0) and (y  %   100 != 0)) or (y  %   400 == 0):
None.gif        
return  True
None.gif    
else :
None.gif        
return  False
None.gif
None.gif
def  Season(m):
None.gif    
if  m  in  [ 12 , 1 , 2 ]:
None.gif        
return   " winter "
None.gif    
elif  m  in  [ 3 , 4 , 5 ]:
None.gif        
return   " spring "
None.gif    
elif  m  in  [ 6 , 7 , 8 ]:
None.gif        
return   " summer "
None.gif    
elif  m  in  [ 9 , 10 , 11 ]:
None.gif        
return   " autumn "
None.gif    
else :
None.gif        
return   " error "
None.gif        
None.gif
def  Days(y,m):
None.gif    
if  m  in  [ 1 , 3 , 5 , 7 , 8 , 10 , 12 ]:
None.gif        
return   31
None.gif    
if  m  in  [ 4 , 6 , 9 , 11 ]:
None.gif        
return   30
None.gif    
if  m == 2 :
None.gif        
if  IsLeapYear(y) == True:
None.gif            
return   29
None.gif        
else :
None.gif            
return   28
None.gif
None.gif
None.gif
print   " Please input year: "
None.gifyear
= int(sys.stdin.readline(), 10 )
None.gif
print   " Please input month: "
None.gifmonth
= int(sys.stdin.readline(), 10 )
None.gif
if  IsLeapYear(year) == True:
None.gif    
print   " This is Leap year!\n "
None.gif
else :
None.gif    
print   " This is not Leap year!\n "
None.gif
print   " %d is in %s\n "   % (month,Season(month))
None.gif
print   " %d has %d days\n "   % (month,Days(year,month))
None.gifsys.stdin.readline()

            Ruby:
None.gif # LeapYear,Season,DaysOfMonth
None.gif

None.gif
def  IsLeapYear(y)
None.gif    
if  ((y  %   4 == 0) and (y  %   100 != 0)) or (y  %   400 == 0)
None.gif        
1
None.gif    
else
None.gif        0
None.gif    end
None.gifend
None.gif
None.gif
def  Season(m)
None.gif    case m
None.gif        when 
12 , 1 , 2
None.gif            
" winter "
None.gif        when 
3 , 4 , 5
None.gif            
" spring "
None.gif        when 
6 , 7 , 8
None.gif            
" summer "
None.gif        when 
9 , 10 , 11
None.gif            
" autumn "
None.gif        
else
None.gif            
" error "
None.gif    end
None.gifend
None.gif        
None.gif
def  Days(y,m)
None.gif    case m
None.gif        when 
1 , 3 , 5 , 7 , 8 , 10 , 12
None.gif            
31
None.gif        when 
4 , 6 , 9 , 11
None.gif            
30
None.gif        when 
2
None.gif            
if  IsLeapYear(y) == 1
None.gif                
29
None.gif            
else
None.gif                
28
None.gif            end
None.gif    end
None.gifend
None.gif
None.gif
print   " Please input year: "
None.gifyear
= readline.to_i
None.gif
print   " Please input month: "
None.gifmonth
= readline.to_i
None.gif
None.gif
if  IsLeapYear(year) == 1
None.gif    
print   " This is Leap year!\n "
None.gif
else
None.gif    
print   " This is not Leap year!\n "
None.gifend
None.gif
None.gif
print   " #{month} is in #{Season(month)}\n "
None.gif
print   " #{month} has #{Days(year,month)} days\n "  
None.gifreadline()

转载于:https://www.cnblogs.com/jplee/archive/2006/10/15/529391.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值