zoukankan      html  css  js  c++  java
  • 【Python】把文件名命名成canlendar.py竟然导致无法使用canlendar模块 附赠2020年月历

    这个bug困扰了我一阵,直到在 http://www.codingke.com/question/15489 找到了解决问题的钥匙,真是没想到居然是这个原因导致的。

    下面是出错信息,可以看到只要目录下有canedar.py连其它python文件都执行不下去了。

    D:workspacepython7.calendar 20191104>python pc.py
    Traceback (most recent call last):
      File "pc.py", line 2, in <module>
        import calendar
      File "D:workspacepython7.calendar 20191104calendar.py", line 5, in <module>
        result = calendar.calendar(2019)
    TypeError: 'module' object is not callable
    
    D:workspacepython7.calendar 20191104>python calendar.py
    Traceback (most recent call last):
      File "calendar.py", line 2, in <module>
        import calendar
      File "D:workspacepython7.calendar 20191104calendar.py", line 5, in <module>
        result = calendar.calendar(2019)
    TypeError: 'module' object is not callable
    
    D:workspacepython7.calendar 20191104>

    删掉或者改名canendar.py就OK了,下面是输出:

    D:workspacepython7.calendar 20191104>python pc.py
                                      2019
    
          January                   February                   March
    Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
        1  2  3  4  5  6                   1  2  3                   1  2  3
     7  8  9 10 11 12 13       4  5  6  7  8  9 10       4  5  6  7  8  9 10
    14 15 16 17 18 19 20      11 12 13 14 15 16 17      11 12 13 14 15 16 17
    21 22 23 24 25 26 27      18 19 20 21 22 23 24      18 19 20 21 22 23 24
    28 29 30 31               25 26 27 28               25 26 27 28 29 30 31
    
           April                      May                       June
    Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
     1  2  3  4  5  6  7             1  2  3  4  5                      1  2
     8  9 10 11 12 13 14       6  7  8  9 10 11 12       3  4  5  6  7  8  9
    15 16 17 18 19 20 21      13 14 15 16 17 18 19      10 11 12 13 14 15 16
    22 23 24 25 26 27 28      20 21 22 23 24 25 26      17 18 19 20 21 22 23
    29 30                     27 28 29 30 31            24 25 26 27 28 29 30
    
            July                     August                  September
    Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
     1  2  3  4  5  6  7                1  2  3  4                         1
     8  9 10 11 12 13 14       5  6  7  8  9 10 11       2  3  4  5  6  7  8
    15 16 17 18 19 20 21      12 13 14 15 16 17 18       9 10 11 12 13 14 15
    22 23 24 25 26 27 28      19 20 21 22 23 24 25      16 17 18 19 20 21 22
    29 30 31                  26 27 28 29 30 31         23 24 25 26 27 28 29
                                                        30
    
          October                   November                  December
    Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
        1  2  3  4  5  6                   1  2  3                         1
     7  8  9 10 11 12 13       4  5  6  7  8  9 10       2  3  4  5  6  7  8
    14 15 16 17 18 19 20      11 12 13 14 15 16 17       9 10 11 12 13 14 15
    21 22 23 24 25 26 27      18 19 20 21 22 23 24      16 17 18 19 20 21 22
    28 29 30 31               25 26 27 28 29 30         23 24 25 26 27 28 29
                                                        30 31
    
       November 2019
    Mo Tu We Th Fr Sa Su
                 1  2  3
     4  5  6  7  8  9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30
    
    
    D:workspacepython7.calendar 20191104>

    打印这么整齐的日历就寥寥五六行代码:

    #日历模块
    import calendar
    
    #calendar() 获取指定年份的日历字符串
    result = calendar.calendar(2019)
    print(result)
    
    
    #month()获取指定月份的日历字符串
    result = calendar.month(2019,11)
    print(result)

    日子总是过得飞快,转眼2019年只剩下两个月了,你今年的计划都完成了吗,明年又有什么规划呢?附赠2020年年历如下:

                                      2020
    
          January                   February                   March
    Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa
              1  2  3  4                         1       1  2  3  4  5  6  7
     5  6  7  8  9 10 11       2  3  4  5  6  7  8       8  9 10 11 12 13 14
    12 13 14 15 16 17 18       9 10 11 12 13 14 15      15 16 17 18 19 20 21
    19 20 21 22 23 24 25      16 17 18 19 20 21 22      22 23 24 25 26 27 28
    26 27 28 29 30 31         23 24 25 26 27 28 29      29 30 31
    
           April                      May                       June
    Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa
              1  2  3  4                      1  2          1  2  3  4  5  6
     5  6  7  8  9 10 11       3  4  5  6  7  8  9       7  8  9 10 11 12 13
    12 13 14 15 16 17 18      10 11 12 13 14 15 16      14 15 16 17 18 19 20
    19 20 21 22 23 24 25      17 18 19 20 21 22 23      21 22 23 24 25 26 27
    26 27 28 29 30            24 25 26 27 28 29 30      28 29 30
                              31
    
            July                     August                  September
    Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa
              1  2  3  4                         1             1  2  3  4  5
     5  6  7  8  9 10 11       2  3  4  5  6  7  8       6  7  8  9 10 11 12
    12 13 14 15 16 17 18       9 10 11 12 13 14 15      13 14 15 16 17 18 19
    19 20 21 22 23 24 25      16 17 18 19 20 21 22      20 21 22 23 24 25 26
    26 27 28 29 30 31         23 24 25 26 27 28 29      27 28 29 30
                              30 31
    
          October                   November                  December
    Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa      Su Mo Tu We Th Fr Sa
                 1  2  3       1  2  3  4  5  6  7             1  2  3  4  5
     4  5  6  7  8  9 10       8  9 10 11 12 13 14       6  7  8  9 10 11 12
    11 12 13 14 15 16 17      15 16 17 18 19 20 21      13 14 15 16 17 18 19
    18 19 20 21 22 23 24      22 23 24 25 26 27 28      20 21 22 23 24 25 26
    25 26 27 28 29 30 31      29 30                     27 28 29 30 31

    可以看出这份年历和上面的不一样了,上回指定的是周一为第一天,这回指定的是周日为第一天,代码也做了相应调整:

    #日历模块
    import calendar
    
    #calendar() 获取指定年份的日历字符串
    calendar.setfirstweekday(calendar.SUNDAY) # 这里指定周日为第一天
    result = calendar.calendar(2020)
    print(result)

    --END-- 2019年11月4日16:51:51

  • 相关阅读:
    instanceof方法
    Java 实现接口计算圆柱的体积和面积并添加颜色
    Java代码执行顺序
    Java饿汉单例模式
    斐波那契数(动态规划和递归)
    Java 接口实现计算器加减乘除(字符交互界面)
    局部内部类详解_转载
    Java引用类型
    递归打印字符串
    时间复杂度
  • 原文地址:https://www.cnblogs.com/heyang78/p/11792960.html
Copyright © 2011-2022 走看看