feat: add code for the bookbot project.

This commit is contained in:
Dan Anglin 2024-01-16 22:24:07 +00:00
parent 84a31400db
commit 8efb073cc1
Signed by: dananglin
GPG key ID: 0C1D44CFBEE68638
2 changed files with 67 additions and 0 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
/books/

66
main.py Normal file
View file

@ -0,0 +1,66 @@
def main():
path = "books/frankenstein.txt"
with open(path) as file:
file_contents = file.read()
report(
path,
get_num_words(file_contents),
character_dict(file_contents)
)
def get_num_words(text):
'''get_num_words returns the number of words in a given text string'''
words = text.split()
return len(words)
def character_dict(text):
'''character_dict returns a dictionary with the amount of times
a character appears in a given text'''
output = {
'a': 0,
'b': 0,
'c': 0,
'd': 0,
'e': 0,
'f': 0,
'g': 0,
'h': 0,
'i': 0,
'j': 0,
'k': 0,
'l': 0,
'm': 0,
'n': 0,
'o': 0,
'p': 0,
'q': 0,
'r': 0,
's': 0,
't': 0,
'u': 0,
'v': 0,
'w': 0,
'x': 0,
'y': 0,
'z': 0,
}
for character in text:
if character.lower() in output:
output[character.lower()] += 1
return output
def report(path, total_words, characters):
'''report prints a report about the specified book'''
print(f"--- Begin report of {path} ---")
print(f"{total_words} words found in the document\n")
for key, value in characters.items():
print(f"The character '{key}' was found {value} times")
print("--- End report ---")
main()