From 2226ce4131141e157e4278cc5a9dcbb6b0656ee1 Mon Sep 17 00:00:00 2001 From: kuanweih Date: Wed, 10 Oct 2018 00:02:13 -0400 Subject: [PATCH 1/4] done --- task-03/get_top_names.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/task-03/get_top_names.py b/task-03/get_top_names.py index 4535204..a5c1758 100644 --- a/task-03/get_top_names.py +++ b/task-03/get_top_names.py @@ -4,14 +4,22 @@ https://github.com/astropgh/learning-by-doing/tree/master/task-03 """ + def extract_data_lines(filename, start_text, end_text): """ open `filename`, and yield the lines between the line that contains `start_text` and the line that contains `end_text` """ # fill in code as needed + to_yield = False with open(filename) as fh: for line in fh: + if start_text in line: + to_yield = True + elif end_text in line: + break + if to_yield == True: + yield line # fill in code as needed # use `yield line` to return desired lines but keep the function going From 00ef64c51e8d45be622147e9bd7d50a672a9a7e9 Mon Sep 17 00:00:00 2001 From: kuanweih Date: Wed, 10 Oct 2018 00:04:22 -0400 Subject: [PATCH 2/4] done --- task-03/get_top_names.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/task-03/get_top_names.py b/task-03/get_top_names.py index a5c1758..2f693dc 100644 --- a/task-03/get_top_names.py +++ b/task-03/get_top_names.py @@ -10,7 +10,6 @@ def extract_data_lines(filename, start_text, end_text): open `filename`, and yield the lines between the line that contains `start_text` and the line that contains `end_text` """ - # fill in code as needed to_yield = False with open(filename) as fh: for line in fh: @@ -20,8 +19,6 @@ def extract_data_lines(filename, start_text, end_text): break if to_yield == True: yield line - # fill in code as needed - # use `yield line` to return desired lines but keep the function going if __name__ == '__main__': From 900d215f4af1d8a08ed004a5a9026d6c729241d8 Mon Sep 17 00:00:00 2001 From: kuanweih Date: Wed, 10 Oct 2018 00:26:55 -0400 Subject: [PATCH 3/4] bug for yeild twice --- task-03/get_top_names.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/task-03/get_top_names.py b/task-03/get_top_names.py index 2f693dc..c241636 100644 --- a/task-03/get_top_names.py +++ b/task-03/get_top_names.py @@ -5,7 +5,8 @@ """ -def extract_data_lines(filename, start_text, end_text): +def extract_data_lines(filename, start_text, end_text, + include_start=False, include_end=False): """ open `filename`, and yield the lines between the line that contains `start_text` and the line that contains `end_text` @@ -13,12 +14,19 @@ def extract_data_lines(filename, start_text, end_text): to_yield = False with open(filename) as fh: for line in fh: + if include_end == True: + if to_yield: + yield line + if end_text in line: + break + if include_start == False: + if to_yield: + yield line if start_text in line: to_yield = True - elif end_text in line: - break - if to_yield == True: - yield line + if include_start == True: + if to_yield: + yield line if __name__ == '__main__': @@ -26,5 +34,6 @@ def extract_data_lines(filename, start_text, end_text): start_text = '2017' end_text = '' - for line in extract_data_lines(filename, start_text, end_text): + for line in extract_data_lines(filename, start_text, end_text, + include_start=True, include_end=True): print(line) From ff2bb80637ba7d2acc4b6708c6d3a51ad0333f01 Mon Sep 17 00:00:00 2001 From: kuanweih Date: Wed, 10 Oct 2018 10:05:09 -0400 Subject: [PATCH 4/4] done adding include_start and include_end --- task-03/get_top_names.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/task-03/get_top_names.py b/task-03/get_top_names.py index c241636..3c56e35 100644 --- a/task-03/get_top_names.py +++ b/task-03/get_top_names.py @@ -14,17 +14,16 @@ def extract_data_lines(filename, start_text, end_text, to_yield = False with open(filename) as fh: for line in fh: - if include_end == True: - if to_yield: - yield line if end_text in line: + if include_end: + yield line break if include_start == False: if to_yield: yield line if start_text in line: to_yield = True - if include_start == True: + if include_start: if to_yield: yield line