我在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;)
答案 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))