9

您如何获得与用户输入相对应的列表。如果我有一个类似的列表:

month_lst = ['January', 'February', 'March', 'April', 'May', 'June', 'July',
              'August', 'September', 'October', 'November', 'December']

如何输入 1 以返回“一月”作为答案?

input('Enter the number to be converted: ')

此外,输入需要检查列表以确保它在 1-12 范围内,因此输入 15 会读取错误消息。

4

4 回答 4

15

日历库可以提供您想要的,请参阅http://docs.python.org/2/library/calendar.html上的文档

calendar.month_name[month_number] #for the full name 

或者

calendar.month_abbr[month_number] #for the short name
于 2012-12-08T05:01:52.643 回答
1
month_lst = ['January', 'Feburary', 'March', 'April', 'May', 'June', 'July', 
              'August', 'September', 'October', 'November', 'December']
try:
    month = int(input('Enter the number to be converted: '))
    if month < 1 or month > 12:
        raise ValueError
    else:
        print(month_lst[month - 1])
except ValueError:
    print("Invalid number")
于 2013-07-26T10:34:36.677 回答
1

我知道这是一个非常古老的问题。但是我是否找到了一个非常简单的解决方案。

import calendar

def get_month_name(month_number):
    try:
        return calendar.month_name[month_number]
    except IndexError:
        print("'{}' is not a valid month number".format(month_number))
于 2018-07-25T07:19:08.323 回答
0

input()您可以使用或从用户那里获取输入raw_input(),具体取决于您的 python 版本(后者用于 Python 2.x)。

您可以使用 将给您的字符串转换为整数int()

最后,您可以在列表中查找字符串,month_lst[some_integer]其中some_integer比您从用户那里获得的整数小一。

于 2012-12-08T05:03:06.550 回答