I slept very late last night.It ___me a along time to do the homework.

问题描述:

I slept very late last night.It ___me a along time to do the homework.
为什么空格处是took而不是has taken?

语义上讲
has taken作为完成时态,表示强调一种结果.而此处“花很长时间写作业”是在表述一种原因来解释前半句.如果没有前半句,则可以用has taken.
took作为过去时态,侧重的是过程,在此处用合适.
语法上讲
前后两句时态一致,用过去时.