#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# File and Exceptions Exercises.

# Exercise 158: Spell Checker.

"""
A spell checker can be a helpful tool for people who struggle to spell words
correctly. In this exercise, you will write a program that reads a file and
displays all of the words in it that are misspelled. Misspelled words will be
identified by checking each word in the file against a list of known words.
Any words in the user's file that do not appear in the list of known words
will be reported as spelling mistakes.
    The user will provide the name of the file to check for spelling mistakes
as a command line parameter. Your program should display an appropiate error
message if the command line parameter is missing. An error message should also
be displayed if your program is unable to open the user's file. Use your
solution to Exercise 111 when creating your solution to this exercise so that
words followed by a comma, period or other punctuation mark are not reported
as spelling mistakes. Ignore the capitalization of the words when checking
their spelling.

Hint: While you could load all of the English words from the words data set
into a list, searching a list is slow if you use Python's in operator. It is
much faster to check if a key is present in a dictionary, or if a value is
present in a set. If you use a dictionary, the words will be the keys. The
values can be the integer 0 (or any other value) because the values will never
be used.
"""

e0049ed95838c1ee4a06d2ab889dc62ae90fe476
<mask token>

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# File and Exceptions Exercises.

# Exercise 158: Spell Checker.

"""
A spell checker can be a helpful tool for people who struggle to spell words
correctly. In this exercise, you will write a program that reads a file and
displays all of the words in it that are misspelled. Misspelled words will be
identified by checking each word in the file against a list of known words.
Any words in the user's file that do not appear in the list of known words
will be reported as spelling mistakes.
    The user will provide the name of the file to check for spelling mistakes
as a command line parameter. Your program should display an appropiate error
message if the command line parameter is missing. An error message should also
be displayed if your program is unable to open the user's file. Use your
solution to Exercise 111 when creating your solution to this exercise so that
words followed by a comma, period or other punctuation mark are not reported
as spelling mistakes. Ignore the capitalization of the words when checking
their spelling.

Hint: While you could load all of the English words from the words data set
into a list, searching a list is slow if you use Python's in operator. It is
much faster to check if a key is present in a dictionary, or if a value is
present in a set. If you use a dictionary, the words will be the keys. The
values can be the integer 0 (or any other value) because the values will never
be used.
"""
