From 9d0aaf15716a1ab124d5d047aeedc6d8584ce48d Mon Sep 17 00:00:00 2001 From: Robert Leonhart Date: Sat, 29 Aug 2020 14:45:37 +0200 Subject: [PATCH 01/11] Chapter 1 results --- 01_hello/Makefile | 2 +- 01_hello/hello.py | 9 ++++++ 01_hello/hello2.py | 72 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 82 insertions(+), 1 deletion(-) create mode 100755 01_hello/hello.py create mode 100755 01_hello/hello2.py diff --git a/01_hello/Makefile b/01_hello/Makefile index 1cbd24b42..3386eaab6 100644 --- a/01_hello/Makefile +++ b/01_hello/Makefile @@ -1,4 +1,4 @@ .PHONY: test test: - pytest -xv test.py + python3 -m pytest -xv test.py diff --git a/01_hello/hello.py b/01_hello/hello.py new file mode 100755 index 000000000..0a8fa0779 --- /dev/null +++ b/01_hello/hello.py @@ -0,0 +1,9 @@ +#!/usr/bin/env python3 +# Purpose: Say hello + +import argparse +parser = argparse.ArgumentParser(description='Say hello') +parser.add_argument('name', help='Name to greet') +args = parser.parse_args() + +print('Hello, ' + args.name + '!') diff --git a/01_hello/hello2.py b/01_hello/hello2.py new file mode 100755 index 000000000..e25e0de9b --- /dev/null +++ b/01_hello/hello2.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python3 +""" +Author : robert +Date : 2020-08-29 +Purpose: Rock the Casbah +""" + +import argparse + + +# -------------------------------------------------- +def get_args(): + """Get command-line arguments""" + + parser = argparse.ArgumentParser( + description='Rock the Casbah', + formatter_class=argparse.ArgumentDefaultsHelpFormatter) + + parser.add_argument('positional', + metavar='str', + help='A positional argument') + + parser.add_argument('-a', + '--arg', + help='A named string argument', + metavar='str', + type=str, + default='') + + parser.add_argument('-i', + '--int', + help='A named integer argument', + metavar='int', + type=int, + default=0) + + parser.add_argument('-f', + '--file', + help='A readable file', + metavar='FILE', + type=argparse.FileType('rt'), + default=None) + + parser.add_argument('-o', + '--on', + help='A boolean flag', + action='store_true') + + return parser.parse_args() + + +# -------------------------------------------------- +def main(): + """Make a jazz noise here""" + + args = get_args() + str_arg = args.arg + int_arg = args.int + file_arg = args.file + flag_arg = args.on + pos_arg = args.positional + + print(f'str_arg = "{str_arg}"') + print(f'int_arg = "{int_arg}"') + print('file_arg = "{}"'.format(file_arg.name if file_arg else '')) + print(f'flag_arg = "{flag_arg}"') + print(f'positional = "{pos_arg}"') + + +# -------------------------------------------------- +if __name__ == '__main__': + main() From 02ff1375e557d0ea254510268b19a3709ad81549 Mon Sep 17 00:00:00 2001 From: Robert Leonhart Date: Sun, 30 Aug 2020 09:58:56 +0200 Subject: [PATCH 02/11] Chapter 2 results --- 02_crowsnest/Makefile | 2 +- 02_crowsnest/crowsnest.py | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100755 02_crowsnest/crowsnest.py diff --git a/02_crowsnest/Makefile b/02_crowsnest/Makefile index 1cbd24b42..3386eaab6 100644 --- a/02_crowsnest/Makefile +++ b/02_crowsnest/Makefile @@ -1,4 +1,4 @@ .PHONY: test test: - pytest -xv test.py + python3 -m pytest -xv test.py diff --git a/02_crowsnest/crowsnest.py b/02_crowsnest/crowsnest.py new file mode 100755 index 000000000..cf571830d --- /dev/null +++ b/02_crowsnest/crowsnest.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +""" +Author : robert +Date : 2020-08-30 +Purpose: Crow's nest +""" + +import argparse + + +# -------------------------------------------------- +def get_args(): + """Get command-line arguments""" + + parser = argparse.ArgumentParser( + description="Crow's Nest -- choose the correct article", + formatter_class=argparse.ArgumentDefaultsHelpFormatter) + + parser.add_argument('word', + metavar='word', + help='A word') + + return parser.parse_args() + + +# -------------------------------------------------- +def main(): + """Make a jazz noise here""" + + args = get_args() + word = args.word + article = 'an' if word[0].lower() in 'aeiou' else 'a' + + print(f'Ahoy, Captain, {article} {word} off the larboard bow!') + + +# -------------------------------------------------- +if __name__ == '__main__': + main() From a927fba39a13ac6e3a4974234f4b873535c1fa93 Mon Sep 17 00:00:00 2001 From: Robert Leonhart Date: Sun, 30 Aug 2020 13:51:42 +0200 Subject: [PATCH 03/11] Chapter 3 results --- 03_picnic/Makefile | 2 +- 03_picnic/picnic.py | 57 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100755 03_picnic/picnic.py diff --git a/03_picnic/Makefile b/03_picnic/Makefile index 1cbd24b42..3386eaab6 100644 --- a/03_picnic/Makefile +++ b/03_picnic/Makefile @@ -1,4 +1,4 @@ .PHONY: test test: - pytest -xv test.py + python3 -m pytest -xv test.py diff --git a/03_picnic/picnic.py b/03_picnic/picnic.py new file mode 100755 index 000000000..459cb5549 --- /dev/null +++ b/03_picnic/picnic.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 +""" +Author : robert +Date : 2020-08-30 +Purpose: Picnic game +""" + +import argparse + + +# -------------------------------------------------- +def get_args(): + """Get command-line arguments""" + + parser = argparse.ArgumentParser( + description='Picnic game', + formatter_class=argparse.ArgumentDefaultsHelpFormatter) + + parser.add_argument('item', + metavar='str', + nargs='+', + help='Item(s) to bring') + + parser.add_argument('-s', + '--sorted', + action='store_true', + help='Sort the items', ) + + return parser.parse_args() + + +# -------------------------------------------------- +def main(): + """Make a jazz noise here""" + + args = get_args() + items = args.item + num = len(items) + + if args.sorted: + items.sort() + + bringing = '' + if num == 1: + bringing = items[0] + elif num == 2: + bringing = items[0] + ' and ' + items[1] + else: + items[-1] = 'and ' + items[-1] + bringing = ', '.join(items) + + print(f'You are bringing {bringing}.') + + +# -------------------------------------------------- +if __name__ == '__main__': + main() From 7a55486a356a4743b4115341741a0f5cb46b8f44 Mon Sep 17 00:00:00 2001 From: Robert Leonhart Date: Mon, 31 Aug 2020 09:42:17 +0200 Subject: [PATCH 04/11] Chapter 4 results --- 04_jump_the_five/Makefile | 2 +- 04_jump_the_five/jump.py | 56 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100755 04_jump_the_five/jump.py diff --git a/04_jump_the_five/Makefile b/04_jump_the_five/Makefile index 1cbd24b42..3386eaab6 100644 --- a/04_jump_the_five/Makefile +++ b/04_jump_the_five/Makefile @@ -1,4 +1,4 @@ .PHONY: test test: - pytest -xv test.py + python3 -m pytest -xv test.py diff --git a/04_jump_the_five/jump.py b/04_jump_the_five/jump.py new file mode 100755 index 000000000..8e20375cb --- /dev/null +++ b/04_jump_the_five/jump.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python3 +""" +Author : robert +Date : 2020-08-30 +Purpose: Jump the Five +""" + +import argparse + + +# -------------------------------------------------- +def get_args(): + """Get command-line arguments""" + + parser = argparse.ArgumentParser( + description='Jump the Five', + formatter_class=argparse.ArgumentDefaultsHelpFormatter) + + parser.add_argument('text', + metavar='str', + help='Input text') + + return parser.parse_args() + + +# -------------------------------------------------- +def main(): + """Make a jazz noise here""" + + args = get_args() + # create dictionary jumper + jumper = {'1': '9', '2': '8', '3': '7', '4': '6', '5': '0', + '6': '4', '7': '3', '8': '2', '9': '1', '0': '5'} + # Method 1 + for char in args.text: + print(jumper.get(char, char), end='') + print() + # Method 2: for loop to build new string + new_text = '' + for char in args.text: + new_text += jumper.get(char, char) + print(new_text) + # Method 3: for loop to build new list + new_text = [] + for char in args.text: + new_text.append(jumper.get(char, char)) + print(''.join(new_text)) + # Method 4: list comprehension + print(''.join([jumper.get(char, char) for char in args.text])) + # Method 5: str.translate + print(args.text.translate(str.maketrans(jumper))) + + +# -------------------------------------------------- +if __name__ == '__main__': + main() From b2bcb45862986b816cbdd1bd45d4cc64d0bd6059 Mon Sep 17 00:00:00 2001 From: Robert Leonhart Date: Mon, 31 Aug 2020 10:14:11 +0200 Subject: [PATCH 05/11] Chapter 5 results --- 05_howler/Makefile | 2 +- 05_howler/howler.py | 52 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100755 05_howler/howler.py diff --git a/05_howler/Makefile b/05_howler/Makefile index 1cbd24b42..3386eaab6 100644 --- a/05_howler/Makefile +++ b/05_howler/Makefile @@ -1,4 +1,4 @@ .PHONY: test test: - pytest -xv test.py + python3 -m pytest -xv test.py diff --git a/05_howler/howler.py b/05_howler/howler.py new file mode 100755 index 000000000..8e1a89c10 --- /dev/null +++ b/05_howler/howler.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python3 +""" +Author : robert +Date : 2020-08-31 +Purpose: Howler +""" + +import argparse +import os +import sys + + +# -------------------------------------------------- +def get_args(): + """Get command-line arguments""" + + parser = argparse.ArgumentParser( + description='Howler (upper-cases input)', + formatter_class=argparse.ArgumentDefaultsHelpFormatter) + + parser.add_argument('text', + metavar='str', + help='Input string or file') + + parser.add_argument('-o', + '--outfile', + help='Output filename', + metavar='str', + type=str, + default='') + + args = parser.parse_args() + # Input can be string or filename + if os.path.isfile(args.text): + args.text = open(args.text).read().rstrip() + + return args + + +# -------------------------------------------------- +def main(): + """Make a jazz noise here""" + + args = get_args() + out_fh = open(args.outfile, 'wt') if args.outfile else sys.stdout + out_fh.write(args.text.upper() + '\n') + out_fh.close() + + +# -------------------------------------------------- +if __name__ == '__main__': + main() From 3eea035de4f17dac6b9daf65b45ca766705cc295 Mon Sep 17 00:00:00 2001 From: Robert Leonhart Date: Mon, 31 Aug 2020 11:58:00 +0200 Subject: [PATCH 06/11] Chapter 6 results --- 06_wc/Makefile | 2 +- 06_wc/wc.py | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100755 06_wc/wc.py diff --git a/06_wc/Makefile b/06_wc/Makefile index 1cbd24b42..3386eaab6 100644 --- a/06_wc/Makefile +++ b/06_wc/Makefile @@ -1,4 +1,4 @@ .PHONY: test test: - pytest -xv test.py + python3 -m pytest -xv test.py diff --git a/06_wc/wc.py b/06_wc/wc.py new file mode 100755 index 000000000..87e14e6be --- /dev/null +++ b/06_wc/wc.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python3 +""" +Author : robert +Date : 2020-08-31 +Purpose: Emulate wc +""" + +import argparse +import sys + + +# -------------------------------------------------- +def get_args(): + """Get command-line arguments""" + + parser = argparse.ArgumentParser( + description='Emulate wc (word count)', + formatter_class=argparse.ArgumentDefaultsHelpFormatter) + + parser.add_argument('file', + help='Input file(s)', + metavar='FILE', + nargs='*', + type=argparse.FileType('rt'), + default=[sys.stdin], ) + + return parser.parse_args() + + +# -------------------------------------------------- +def main(): + """Make a jazz noise here""" + + args = get_args() + + total_lines, total_bytes, total_words = 0, 0, 0 + for fh in args.file: + num_lines, num_bytes, num_words = 0, 0, 0 + for line in fh: + num_lines += 1 + num_bytes += len(line) + num_words += len(line.split()) + total_lines += num_lines + total_bytes += num_bytes + total_words += num_words + print(f'{num_lines:8}{num_words:8}{num_bytes:8} {fh.name}') + if len(args.file) > 1: + print(f'{total_lines:8}{total_words:8}{total_bytes:8} total') + + +# -------------------------------------------------- +if __name__ == '__main__': + main() From ea72ac40821feda06f4f38b6127ce37142a67257 Mon Sep 17 00:00:00 2001 From: Robert Leonhart Date: Mon, 31 Aug 2020 14:24:15 +0200 Subject: [PATCH 07/11] Chapter 7 results --- 07_gashlycrumb/Makefile | 2 +- 07_gashlycrumb/gashlycrumb.py | 58 +++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100755 07_gashlycrumb/gashlycrumb.py diff --git a/07_gashlycrumb/Makefile b/07_gashlycrumb/Makefile index 1cbd24b42..3386eaab6 100644 --- a/07_gashlycrumb/Makefile +++ b/07_gashlycrumb/Makefile @@ -1,4 +1,4 @@ .PHONY: test test: - pytest -xv test.py + python3 -m pytest -xv test.py diff --git a/07_gashlycrumb/gashlycrumb.py b/07_gashlycrumb/gashlycrumb.py new file mode 100755 index 000000000..767d96162 --- /dev/null +++ b/07_gashlycrumb/gashlycrumb.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 +""" +Author : robert +Date : 2020-08-31 +Purpose: Gashlycrumb +""" + +import argparse +import pprint + + +# -------------------------------------------------- +def get_args(): + """Get command-line arguments""" + + parser = argparse.ArgumentParser( + description='Gashlycrumb', + formatter_class=argparse.ArgumentDefaultsHelpFormatter) + + parser.add_argument('letter', + metavar='letter', + help='Letter(s)', + nargs='+', + type=str) + + parser.add_argument('-f', + '--file', + help='Input file', + metavar='FILE', + type=argparse.FileType('rt'), + default='gashlycrumb.txt') + + + return parser.parse_args() + + +# -------------------------------------------------- +def main(): + """Make a jazz noise here""" + + args = get_args() + lookup = {} #create empty dictionary + for line in args.file: + lookup[line[0].upper()] = line.rstrip() #fill dictionary from (default) file + + pprint.pprint(lookup) #pretty print datastructures example + + for letter in args.letter: + if letter.upper() in lookup: #lookup index in dictionary + print(lookup[letter.upper()]) #print associated line + else: + print(f'I do not know "{letter}".') + + + +# -------------------------------------------------- +if __name__ == '__main__': + main() From b39e71bbbd518d2ef950a60cacc23d63faecfcb1 Mon Sep 17 00:00:00 2001 From: Robert Leonhart Date: Tue, 1 Sep 2020 09:56:23 +0200 Subject: [PATCH 08/11] Chapter 8 results --- 08_apples_and_bananas/Makefile | 2 +- 08_apples_and_bananas/apples.py | 75 +++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 1 deletion(-) create mode 100755 08_apples_and_bananas/apples.py diff --git a/08_apples_and_bananas/Makefile b/08_apples_and_bananas/Makefile index 1cbd24b42..3386eaab6 100644 --- a/08_apples_and_bananas/Makefile +++ b/08_apples_and_bananas/Makefile @@ -1,4 +1,4 @@ .PHONY: test test: - pytest -xv test.py + python3 -m pytest -xv test.py diff --git a/08_apples_and_bananas/apples.py b/08_apples_and_bananas/apples.py new file mode 100755 index 000000000..c47f82c52 --- /dev/null +++ b/08_apples_and_bananas/apples.py @@ -0,0 +1,75 @@ +#!/usr/bin/env python3 +""" +Author : robert +Date : 2020-09-01 +Purpose: Apples and bananas +""" + +import argparse +import os + + +# -------------------------------------------------- +def get_args(): + """Get command-line arguments""" + + parser = argparse.ArgumentParser( + description='Apples and bananas', + formatter_class=argparse.ArgumentDefaultsHelpFormatter) + + parser.add_argument('text', + metavar='text', + help='Input text or file' + ) + + parser.add_argument('-v', + '--vowel', + help='The vowel to substitute', + metavar='vowel', + type=str, + default='a', + choices=list('aeiou')) + + args = parser.parse_args() + # Input can be string or filename + if os.path.isfile(args.text): + args.text = open(args.text).read().rstrip() + + return args + + +# -------------------------------------------------- +def main(): + """Make a jazz noise here""" + + args = get_args() + text = args.text + vowel = args.vowel + new_text = [] + + for char in text: + if char in 'aeiou': + new_text.append(vowel) + elif char in 'AEIOU': + new_text.append(vowel.upper()) + else: + new_text.append(char) + + # Interesting other methods: + # Method 2 text = text.replace(v, vowel).replace(v.upper(), vowel.upper()) + # + # Method 3 trans = str.maketrans('aeiouAEIOU', vowel * 5 + vowel.upper() * 5) + # text = args.text.translate(trans) + # Method 4 text = [vowel if c in 'aeiou' else vowel.upper() if c in 'AEIOU' else c + # for c in args.text] + # Method 6 text = map(lambda c: vowel if c in 'aeiou' else vowel.upper() + # if c in 'AEIOU' else c, args.text) + # Method 8 text = re.sub('[aeiou]', vowel, text) + # text = re.sub('[AEIOU]', vowel.upper(), text) + + print(''.join(new_text)) + + +# -------------------------------------------------- +if __name__ == '__main__': + main() From c99b91bcf9ebf5081422ebaa084a92f8d1f7f456 Mon Sep 17 00:00:00 2001 From: Robert Leonhart Date: Tue, 1 Sep 2020 09:57:18 +0200 Subject: [PATCH 09/11] Excluded result files from .gitignore --- .gitignore | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/.gitignore b/.gitignore index 68ca39690..7dd14fd83 100644 --- a/.gitignore +++ b/.gitignore @@ -11,23 +11,4 @@ tex2pdf* .coverage .idea .vscode -02_crowsnest/crowsnest.py -03_picnic/picnic.py -04_jump_the_five/jump.py -05_howler/howler.py -06_wc/wc.py -07_gashlycrumb/gashlycrumb.py -08_apples_and_bananas/apples.py -09_abuse/abuse.py -10_telephone/telephone.py -11_bottles_of_beer/bottles.py -12_ransom/ransom.py -13_twelve_days/twelve_days.py -14_rhymer/rhymer.py -15_kentucky_friar/friar.py -16_scrambler/scrambler.py -17_mad_libs/mad.py -18_gematria/gematria.py -19_wod/wod.py -20_password/password.py -21_tictactoe/tictactoe.py + From a27ce386c3c5d236f7e5ebcb2c26f756f1bf67a3 Mon Sep 17 00:00:00 2001 From: Robert Leonhart Date: Tue, 1 Sep 2020 11:48:34 +0200 Subject: [PATCH 10/11] Chapter 9 results --- 09_abuse/Makefile | 2 +- 09_abuse/abuse.py | 77 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 1 deletion(-) create mode 100755 09_abuse/abuse.py diff --git a/09_abuse/Makefile b/09_abuse/Makefile index 1cbd24b42..3386eaab6 100644 --- a/09_abuse/Makefile +++ b/09_abuse/Makefile @@ -1,4 +1,4 @@ .PHONY: test test: - pytest -xv test.py + python3 -m pytest -xv test.py diff --git a/09_abuse/abuse.py b/09_abuse/abuse.py new file mode 100755 index 000000000..8f3977f4a --- /dev/null +++ b/09_abuse/abuse.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python3 +""" +Author : robert +Date : 2020-09-01 +Purpose: Heap abuse +""" + +import argparse +import random + + +# -------------------------------------------------- +def get_args(): + """Get command-line arguments""" + + parser = argparse.ArgumentParser( + description='Rock the Casbah', + formatter_class=argparse.ArgumentDefaultsHelpFormatter) + + parser.add_argument('-a', + '--adjectives', + help='Number of adjectives', + metavar='adjectives', + type=int, + default=2) + + parser.add_argument('-n', + '--number', + help='Number of insults', + metavar='insults', + type=int, + default=3) + + parser.add_argument('-s', + '--seed', + help='Random seed', + metavar='seed', + type=int, + default=None) + + args = parser.parse_args() + if args.adjectives < 1: + parser.error(f'--adjectives "{args.adjectives}" must be > 0') + if args.number < 1: + parser.error(f'--number "{args.number}" must be > 0') + return args + +# -------------------------------------------------- +def main(): + """Make a jazz noise here""" + + args = get_args() + random.seed(args.seed) + + adjectives = """ + bankrupt base caterwauling corrupt cullionly detestable dishonest false + filthsome filthy foolish foul gross heedless indistinguishable infected + insatiate irksome lascivious lecherous loathsome lubbery old peevish + rascaly rotten ruinous scurilous scurvy slanderous sodden-witted + thin-faced toad-spotted unmannered vile wall-eyed + """.strip().split() + + nouns = """ + Judas Satan ape ass barbermonger beggar block boy braggart butt + carbuncle coward coxcomb cur dandy degenerate fiend fishmonger fool + gull harpy jack jolthead knave liar lunatic maw milksop minion + ratcatcher recreant rogue scold slave swine traitor varlet villain worm + """.strip().split() + + for _ in range(args.number): + adjs = ', '.join(random.sample(adjectives, k=args.adjectives)) + print(f'You {adjs} {random.choice(nouns)}!') + + +# -------------------------------------------------- +if __name__ == '__main__': + main() From afdd03411ee4886aca670b4c7e79af4f12a6283f Mon Sep 17 00:00:00 2001 From: Robert Leonhart Date: Sat, 9 Jan 2021 18:19:13 +0100 Subject: [PATCH 11/11] Wod files changed --- 19_wod/Makefile | 2 +- 19_wod/inputs/20200901_Tabel.csv | 118 +++++++++++++++++++++++++++++++ 19_wod/using_pandas.py | 2 +- 19_wod/wod.py | 72 +++++++++++++++++++ 4 files changed, 192 insertions(+), 2 deletions(-) create mode 100644 19_wod/inputs/20200901_Tabel.csv create mode 100755 19_wod/wod.py diff --git a/19_wod/Makefile b/19_wod/Makefile index 1cbd24b42..3386eaab6 100644 --- a/19_wod/Makefile +++ b/19_wod/Makefile @@ -1,4 +1,4 @@ .PHONY: test test: - pytest -xv test.py + python3 -m pytest -xv test.py diff --git a/19_wod/inputs/20200901_Tabel.csv b/19_wod/inputs/20200901_Tabel.csv new file mode 100644 index 000000000..92c6643f6 --- /dev/null +++ b/19_wod/inputs/20200901_Tabel.csv @@ -0,0 +1,118 @@ +Kenmerk;Post2Naam +Fietsen;Voorzien-uit +Fietsen;Onderhouden +Fietsen;Voorzien-in +Fietsen;Bevoorraden +Gereedschap;Voorzien-in +Gereedschap;Onderhouden +Gereedschap;Voorzien-uit +Gereedschap;Bevoorraden +Gezin;Bevoorraden +Gezin;Verzekeren +Gezin;Drinken +Gezin;Schenken +Gezin;Gokken +Gezin;Verbruiken +Gezin;Bankieren +Gezin;Belasten +Gezin;Reinigen +Gezin;Overschrijven +Gezin;Bewateren +Gezin;Opnemen +Gezin;Communiceren +Gezin;Lezen +Gezin;Voeden +Gezin;Sporten +Gezin;Uitgaan +Gezin;Reizen +Gezin;Versnaperen +Hond;Voorzien-uit +Hond;Voorzien-in +Hond;Belasten +Hond;Bevoorraden +Hond;Voeden +Huis;Onderhouden +Huis;Verzekeren +Huis;Belasten +Huis;Financieren +Huishoudapparatuur;Voorzien-in +Huishoudapparatuur;Bevoorraden +Huishoudapparatuur;Onderhouden +Huishoudapparatuur;Voorzien-uit +IT-apparatuur;Voorzien-uit +IT-apparatuur;Voorzien-in +IT-apparatuur;Bevoorraden +IT-apparatuur;Onderhouden +Ix20;Verzekeren +Ix20;Reinigen +Ix20;Bevoorraden +Ix20;Voorzien-in +Ix20;Voorzien-uit +Ix20;Onderhouden +Ix20;Aftanken +Ix20;Parkeren +Ix20;Belasten +Joke;Overschrijven +Joke;Werken +Joke;Verzorgen +Joke;Hobbyen +Joke;Opnemen +Joke;Opleiden +Joke;Gokken +Joke;Sporten +Joke;Drinken +Joke;Bevoorraden +Joke;Schenken +Joke;Communiceren +Joke;Bankieren +Joke;Verzekeren +Joke;Voeden +Joke;Knippen +Joke;Versnaperen +Joke;Voorzien +Joke;Reizen +Joke;Lezen +Joke;Uitgaan +Joke;Kleden +Joke;Bekeuren +Joke;Belasten +Joke;Transporteren +Jos;Opleiden +Jos;Uitkeren +Jos;Financieren +Meubels;Voorzien-in +Meubels;Onderhouden +Meubels;Voorzien-uit +Meubels;Bevoorraden +Robert;Lezen +Robert;Versnaperen +Robert;Reizen +Robert;Uitgaan +Robert;Verzorgen +Robert;Communiceren +Robert;Sporten +Robert;Hobbyen +Robert;Kleden +Robert;Werken +Robert;Opnemen +Robert;Bankieren +Robert;Gokken +Robert;Overschrijven +Robert;Bekeuren +Robert;Verzekeren +Robert;Voorzien +Robert;Belasten +Robert;Transporteren +Robert;Bevoorraden +Robert;Voeden +Robert;Schenken +Robert;Knippen +Robert;Opleiden +Robert;Drinken +Tuin;Onderhouden +Tuin;Voorzien-uit +Tuin;Voorzien-in +Tuin;Bevoorraden +Vera;Opleiden +Vera;Financieren +Vera;Uitkeren diff --git a/19_wod/using_pandas.py b/19_wod/using_pandas.py index 8fae740dc..cade82ee3 100755 --- a/19_wod/using_pandas.py +++ b/19_wod/using_pandas.py @@ -2,5 +2,5 @@ import pandas as pd -df = pd.read_csv('inputs/exercises.csv') +df = pd.read_csv('inputs/20200901_Tabel.csv', delimiter =';') print(df) diff --git a/19_wod/wod.py b/19_wod/wod.py new file mode 100755 index 000000000..d49cdb396 --- /dev/null +++ b/19_wod/wod.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python3 +""" +Author : robert +Date : 2020-09-01 +Purpose: Rock the Casbah +""" + +import argparse + + +# -------------------------------------------------- +def get_args(): + """Get command-line arguments""" + + parser = argparse.ArgumentParser( + description='Rock the Casbah', + formatter_class=argparse.ArgumentDefaultsHelpFormatter) + + parser.add_argument('positional', + metavar='str', + help='A positional argument') + + parser.add_argument('-a', + '--arg', + help='A named string argument', + metavar='str', + type=str, + default='') + + parser.add_argument('-i', + '--int', + help='A named integer argument', + metavar='int', + type=int, + default=0) + + parser.add_argument('-f', + '--file', + help='A readable file', + metavar='FILE', + type=argparse.FileType('rt'), + default=None) + + parser.add_argument('-o', + '--on', + help='A boolean flag', + action='store_true') + + return parser.parse_args() + + +# -------------------------------------------------- +def main(): + """Make a jazz noise here""" + + args = get_args() + str_arg = args.arg + int_arg = args.int + file_arg = args.file + flag_arg = args.on + pos_arg = args.positional + + print(f'str_arg = "{str_arg}"') + print(f'int_arg = "{int_arg}"') + print('file_arg = "{}"'.format(file_arg.name if file_arg else '')) + print(f'flag_arg = "{flag_arg}"') + print(f'positional = "{pos_arg}"') + + +# -------------------------------------------------- +if __name__ == '__main__': + main()