0

因此,如果用户输入 2,它将显示 2 月 28 日和 3 月 3 日 31 日等。不用说我是 python 新手,这是我尝试编写的第一个函数。我不知道我是否可以让变量响应用户输入或者这可行

def dates(month ):
  1="Jan,31"
  2="Feb,28"
  3="Mar,31"
    print(  month )


def main():
   userin = input("Enter a number: ")
  month(userin)

main()
4

1 回答 1

11

使用calendar模块;该calendar.monthrange()函数返回一个(weekday, number_of_days)元组:

>>> import calendar
>>> print calendar.monthrange(2012, 2)[1]
29

请注意,您必须包括年份;毕竟,在闰年,二月有 29 天。

可以使用该datetime模块获取当前年份:

import datetime
year = datetime.date.today().year

现在您只需要询问月份数:

import datetime
import calendar

def main():
    year = datetime.date.today().year
    userin = int(raw_input("Enter a month as number: "))  # Python 3: `int(input(...))` 
    print '{}, {}'.format(calendar.month_abbr[userin], calendar.monthrange(year, userin)[1])

这将打印缩写的月份和天数:

Enter a month as number: 2
Feb, 28
于 2013-07-02T12:56:32.903 回答