使用Python的类和对象写万年历

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

在网上通过学习和看其他人的Python万年历程序(连接 https://www.cnblogs.com/chen-cai/p/11613813.html),然后自己写了半下午终于写了出来,刚学Python没多久别见怪,然后想着使用Python 中的类和对象对上述程序进行改写,学习也遇到了一些问题,和大家分享一下。

一、具体代码

下面直接黏贴具体代码,而函数编写万年历时需要注意的事项,具体链接中已有介绍,这里不再做描述,以下是具体代码:

#coding:utf-8
#coding:utf-8
class WanNianli(object):

    def __init__(self, year, month):
    
        self.year = year
        self.mouth = month
       
        
        
    def call_year(self, year):
    
        ayear = self.year
        if 0 == ayear % 4 and 0 != ayear % 100 or 0 == ayear % 400:
            return True
        else:
            return False
            
            
    def call_month(self, year, month):
    
        days = 31
        if 2 == month: 
            if self.call_year(year): #调用自身类中的函数时,必须使用 (self.)
                days = 29
            else:
                days = 28
        elif 4 == month or 6 == month or 9 == month or 11 == month:
            days = 30
        return days
    
    
    def call_week(self, year, month):
        today = 0
        for i in range(0, year):
            if self.call_year(i):
                today += 366
            else:
                today += 365
        for i in range(1, month):
            today += self.call_month(year, i)
        return today
        
        
    def call_print(self, year, month):
    
        print()
        print("日\t一\t二\t三\t四\t五\t六")
        print()
        count = 0
        

        for c in range(self.call_week(year, month) % 7):
            print(end="\t")
            count += 1

        for day in range(1, self.call_month( year, month) + 1):
            print(day, end="\t")
            count += 1
            if 0 == count % 7:
                print("\n")
  

ku_wannain =  WanNianli(2021, 12)     
ku_wannain.call_print(2021, 12) 



# 二、在使用类和对象编写过程中遇到的部分问题

## 1.显示的问题
第一次使用CSDN写文章,不是很熟悉,把部分截图放到里面,放置大家出错。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210216194923317.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021021619494678.png)

## 2.遇到的部分问题
1.__init__()  具体写法不要写错了:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210216195140960.png)

2.调用类中函数时,要加上self. :
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210216195248900.png)

3.类中函数在具体调用传参时,不要再带self:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210216195410917.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3ODIxOTcw,size_16,color_FFFFFF,t_70)
不要忘记了对象的实例化就行了

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值