python中的.index()函数无法正常工作

时间:2014-07-18 06:09:06

标签: python string

我在python中完成学校作业,用户必须以dd / mm / yyyy格式输入日期,我必须拆分每个部分(dd,mm,yyyy)并将它们存储在列表中。

date = input("Enter a date in the following format 'dd/mm/yyyy: "); 
date = date+'/'

    def split(date):
        dates = []
        i = 0
        while i < len(date):
            x = date.index('/', i)
            dates.append(date[i:x])
            i = x
        return dates

这是我使用的代码。我正在寻找角色&#39; /&#39;在我的字符串&#39; date&#39;然后从我追加到列表日期的日期中提取子字符串。

显然我的.index()函数并没有像我希望的那样工作。是因为我不能将变量作为索引函数的参数传递吗?还是有其他问题。

我知道index()函数是个问题,因为当我在迭代之后打印x的值时,x的值不会被更新。

这是我在排除故障后得到的输出     i = 0 x = 2个日期= [&#39; 12&#39;]
    i = 2 x = 2个日期= [&#39; 12&#39;,&#39;&#39;]

并继续进入无限循环

任何有关此事的帮助将不胜感激:&#39;)

2 个答案:

答案 0 :(得分:1)

那是因为你的代码每次都在寻找相同的实例。

i = x + 1

不要忘记处理没有更多内容的部分。

答案 1 :(得分:0)

from datetime import datetime

def date_split(date_input):
    try:
        date_obj = datetime.strptime(date_input, "%d/%m/%Y") # This line with validate input
    except ValueError:
        print "Please verify input format and range : ", date_input
        return
    else:
        return [date_obj.day, date_obj.month, date_obj.year]

date = raw_input("Enter a date in the following format dd/mm/yyyy: ")
print date_split(str(date))