TypeError:int()参数必须是字符串,类字节对象或数字,而不是'NoneType'

时间:2017-08-23 06:16:37

标签: python python-3.x

我正在尝试制作一个代码,用一些给定的月份和年份打印出日历。 我的代码看起来像这样:

#!/usr/bin/python3
"""import calender"""

import calendar
import datetime

""" begin function """


def get_the_first_day_of_the_week(month, year):
    day_of_week = datetime.date(year, month, 1).weekday()
    return


def print_out_calender(months, years):
    this_month = int(months)
    this_year = int(years)
    new = get_the_first_day_of_the_week(this_month, this_year)
    new = int(new)
    calendar.setfirstweekday(new)
    calendar.monthcalendar(this_month, this_year)
    return


print_out_calender(12, 2017)

我希望它打印出日期矩阵,但是我得到了这样的错误: 回溯(最近一次调用最后一次):

  File "./practice12.py", line 25, in <module>
    print_out_calender(12, 2017)
  File "./practice12.py", line 19, in print_out_calender
    new = int(new)
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'

我是python和编码的新手所以有人可以告诉我为什么?

4 个答案:

答案 0 :(得分:3)

new = get_the_first_day_of_the_week(this_month, this_year)

get_the_first_day_of_the_week()的返回值指定为new

但是,get_the_first_day_of_the_week()不返回任何内容,即None

更改函数以返回某些内容(大概是day_of_the_week),它应该可以正常工作。

答案 1 :(得分:0)

这是因为1在代码中是newNone不能使用无类型参数。

答案 2 :(得分:0)

从get_the_first_day_of_the_week返回 day_of_week

答案 3 :(得分:0)

您在get_the_first_day_of_the_week函数中返回None。返回day_of_week或使day_of_week成为全局变量。