我试图解析节目时间表,这样我就可以确定某些节目的播放时间。我在解析整个字符串时创建了一个相对有效的程序,但是当我将它拆分成行时,它开始生成一个字符串索引超出范围错误。我通过将范围缩小1并确保我没有检查不存在的索引坐标来解决这个问题,但现在程序只打印了两次。这是我的代码。
scheduleLines = schedule.splitlines()
timeCoordinate = -10
for Line in scheduleLines:
for counter in range(len(Line) - 1):
if counter <= timeCoordinate:
continue
if Line[counter].isdigit() == True:
if Line[counter + 1] == ":":
print(Line[counter:counter + 4])
timeCoordinate = counter + 4
if counter + 2 < len(Line):
if Line[counter + 2] == ":":
print(Line[counter:counter + 5])
timeCoordinate = counter + 5
它仅打印9:00和8:00,这是时间表。该程序的先前版本可以提取和打印所有时间。当我将它发布到StackoverFlow时,我无法正确格式化时间表,但每次加上节目的名称都是不同的一行。
2月12日星期一
上午9:00 - CanDo的ep9
9:30 - 故事时间ep7
上午10:00 Afro Tusk ep3
11:00a - Thunderbolt ep1
12:00 - 西雅图,现在ep27
1:00p - Startime ep53
3:00p - heartBeat Radio ep6
3:30单身父亲ep13p
4:00p - 交通阻塞
6:00 - Livin it Up ep 7
6:30体育&amp;东西ep15
7:00 - Lidline Sports
8:00 - 西雅图体育周刊ep22
9:00p - Reggae ep6
10:00 - MoJam Monday ep7
11:00 Just My Opinion ep21
午夜 - 多样化编程
答案 0 :(得分:0)
根据我的理解,您希望从您可以执行的给定字符串中提取所有时间。
- (void)layoutSubviews {
(super layoutSubviews];
CGRect r = [self trackRectForBounds:self.bounds];
CGFloat startPosition = r.origin.x;
CGFloat width = r.size.width;
}
<强>输出:强>
schedule = """Monday Feb 12th
9:00 am - CanDo’s ep9
9:30 - Storytime ep7
10:00am Afro Tusk ep3
11:00a - The Thunderbolt ep1
12:00 - Seattle here and Now ep27
1:00p - Startime ep53
3:00p - heartBeat Radio ep6
3:30 Single Father ep13p
4:00p - Traffic Jam
6:00 - Livin it Up ep 7
6:30 Sports & Stuff ep15
7:00 - Lidline Sports
8:00 - Seattle Sports Weekly ep22
9:00p - The Reggae ep6
10:00 - MoJam Monday ep7
11:00 Just My Opinion ep21
Midnight - Diverse Programming
"""
scheduleLines = filter(None, schedule.splitlines())
for i in scheduleLines:
if i[0].isdigit():
t = i.split()
print t[0]