我正在尝试制作一个代码,用一些给定的月份和年份打印出日历。 我的代码看起来像这样:
#!/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和编码的新手所以有人可以告诉我为什么?
答案 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
在代码中是new
。 None
不能使用无类型参数。
答案 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
成为全局变量。