2017-03-08 26 views
2

我正在编写代码以获取日期(日月和年)的输入以及他们要重复执行任务的次数) 我想使用for循环使用时间作为边界。 代码:TypeError:'>'在'int'和'str'实例之间不受支持

def addtimeslot(): 
    times = int(times_repeated.get()) 
    print(times_repeated.get()) 
    variable_end.get() 
    day = variable_day.get() 
    month = variable_month.get() 
    year = variable_year.get() 
    fulldateadd = datetime.date(year, month, day) 
    name1 = str(name.get()) 
    minute = int('00') 
    second = int('00') 
    hour1 = variable_st.get() 
    starttimehour = str(datetime.time(hour1,minute,second)) 
    hour2 = variable_end.get() 
    endtimehour = str(datetime.time(hour2,minute,second)) 
    for i in range(0 , times): 
     fulldateadd = datetime.date(year, month, day) 
     cursor.execute('''INSERT INTO dates (Date, Name, Start, End) VALUES(?,?,?,?);''', (fulldateadd , name1, starttimehour, endtimehour)) 
     day = int(day) + 7 
     if day > '31': 
      month = int(month) + 1 

我得到这个错误:

TypeError: '>' not supported between instances of 'int' and 'str' 
+2

你已经用'day = int(day)+ 7'创建了''''int',所以测试应该是'if day> 31:',即比较一个int'31'而不是一个字符串''31''。 – AChampion

+4

将来请发布完整的堆栈跟踪,以便人们不必猜测哪条线路导致错误。 – glibdud

+0

这是修复它,谢谢! – simons21

回答

3

由于问题不应该在评论中回答我将提供@AChampion的解决意见:

您已经使dayintday = int(day) + 7所以测试应该是如果day > 31:,即比较一个int 31而不是一个字符串'31'

相关问题