我正在编写代码,因为我想比较if语句中字符串中的int值,看看该值是否等于或大于。你知道吗
当我尝试这个:
for prog_clock, prog_length, pos_X, prog_ids in izip_longest(program_clock, programs_length, posX, progId, fillvalue=''):
epg_time_1 = self.getControl(344).getLabel()
epg_time_2 = self.getControl(345).getLabel()
epg_time_3 = self.getControl(346).getLabel()
if int(pos_X) == 375:
for program_id, program_length, program_minutes in zip(prog_id_list, programs_length, program_remaining):
if epg_time_2 == prog_clock:
print "WORKING 1"
elif prog_clock > epg_time_1 and epg_time_2 > prog_clock:
print "WORKING 2"
elif epg_time_3 == prog_clock:
print "WORKING 3"
elif epg_time_3 < prog_clock:
print "WORKING 4"
prog_clock
的输出:
21:41:45 T:5796 NOTICE: 11:00PM
21:41:45 T:5796 NOTICE: 10:00PM
21:41:45 T:5796 NOTICE: 10:00PM
21:41:45 T:5796 NOTICE: 10:45PM
21:41:45 T:5796 NOTICE: 11:05PM
21:41:45 T:5796 NOTICE: 10:00PM
21:41:45 T:5796 NOTICE: 10:00PM
epg\ U time\ U 1的输出:
9:30PM
epg\u时间\u 2的输出:
10:00PM
epg\u时间\u 3的输出:
10:30PM
我想将对象字符串中的三个字符串与prog_clock
字符串中的每个字符串进行比较,看看我能为电视节目中的每个字符串获得pass的if语句。当我试图比较它们时,它不会让我忽略这些if语句。那么我如何比较字符串中的int值来判断值是否等于或大于?你知道吗
如果字符串是相同的,那么直接比较它们就可以了
输出
编辑:在阅读了评论之后,我决定编辑我的答案并发布一个带有
time.strptime
的解决方案输出
"WORKING 2"
好的,对于每一行,你可以从下面应用函数
parseLine(str)
。我所做的基本上是:对于给定的行(例如:
21:41:45 T:5796 NOTICE: 10:00PM
)IHH:MM:SS
HH:MM(AM/PM)
当然,您可以根据行的格式调整格式(以防您决定更改它)。重要的是正确地转换时间戳,因为第一个时间戳使用24小时格式,而第二个时间戳使用12小时格式(我使用
%I
将第二个时间戳的小时部分转换为24小时格式,以便我们可以轻松地比较两者)。比较本身是由Python和支持它的time对象完成的。我还假设两个时间戳都使用空格作为中间子字符串的分隔符,但是如果第一个时间戳由制表符分隔,则可以将split()
的分隔符选项从' '
更改为'\t'
。你知道吗实际上,有多种解决方案,这可能不是最好的一个,但它确实做到了。我在最后做的测试的输出是:
对于
prog_clock
,从字符串中提取时间组件,使用datetime.strptime()
解析它并将其转换为datetime.time
对象。现在你可以直接比较时间了。只需添加四行即可解析输入,如下所示:实际上,转换为
datetime.time
对象是可选的—如果忽略它,datetime.datetime
值都将具有相同的日期(1900-01-01),并且时间比较仍然有效。你知道吗相关问题 更多 >
编程相关推荐