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

            这是一个我在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()

你可能感兴趣的:(python)