Python中的.index()函数无法工作
我正在完成一个学校的作业,内容是用Python编写一个程序,让用户输入一个日期,格式是日/月/年(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
这是我用的代码。我在字符串'date'中查找字符'/',然后从'date'中提取一个子字符串,接着把它添加到列表dates里。
看起来我的.index()函数没有按我想的那样工作。是因为我不能把一个变量作为参数传给index函数吗?还是说有其他问题。
我知道问题出在index()函数上,因为当我在循环后打印x的值时,x的值并没有更新。
这是我排查问题后得到的输出:
i=0 x=2 dates = ['12']
i=2 x=2 dates = ['12','']
而且它还进入了一个无限循环。
如果有人能帮我解决这个问题,我会非常感激 :')
2 个回答
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))
1
这是因为你的代码每次都在找到同一个实例。
i = x + 1
别忘了处理没有更多实例可以找到的情况。