使用eval函数对列表中的值进行问题

时间:2014-09-21 15:38:26

标签: python list python-3.x eval

这是我的代码。这是返回语法错误的最后一个eval行

def format_date():
    month_abrv = ['Jan','Feb','Mar','Apr','May','Jun','Jul',
                  'Aug','Sep','Oct','Nov','Dec']
    print('''This program takes an input in the format MM/DD/YYYY(ex:09/23/2014)
and outputs date in format DD Mth, YYYY (ex: 23 Sep, 2014)''')

    date_string = input('\nInput date in format MM/DD/YYYY  ')
    date_list = date_string.split('/')

    date_list[0] = eval(date_list[0])

format_date()

这是错误

Traceback (most recent call last):
  File "C:/Python34/Python ICS 140/FormatDate.py", line 16, in <module>
    format_date()
  File "C:/Python34/Python ICS 140/FormatDate.py", line 14, in format_date
    date_list[0] = eval(date_list[0])
  File "<string>", line 1
    09
     ^
SyntaxError: invalid token

1 个答案:

答案 0 :(得分:0)

在进行了一些挖掘后,我发现Python将以0开头的数字解释为八进制数。在这种情况下,使用int()函数将'09'更改为9。