[Newby] question about modules

Steven Bethard steven.bethard at gmail.com
Fri Dec 10 21:12:38 CET 2004


Jon wrote:
> The following four lines of code:
> 
> import sys, os, re
> sentence = raw_input("Enter a sentence:  ")
> capwords (sentence)
> print sentence
> 
> gives me the following error:  NameError: name 'capwords' is not defined
> 
> As far as I can tell from the online docs, "capwords" should be defined in
> the built-in "regex" module.  Why is it telling me that capwords is not
> defined?

Which docs are you looking at?  I couldn't find documentation for a 
capwords method or class...  Checking at the interactive prompt:

 >>> import regex
__main__:1: DeprecationWarning: the regex module is deprecated; please 
use the re module
 >>> dir(regex)
['__doc__', '__name__', 'casefold', 'compile', 'error', 'get_syntax', 
'match', 'search', 'set_syntax', 'symcomp']
 >>> import re
 >>> dir(re)
['DOTALL', 'I', 'IGNORECASE', 'L', 'LOCALE', 'M', 'MULTILINE', 'S', 'U', 
'UNICODE', 'VERBOSE', 'X', '__all__', '__builtins__', '__doc__', 
'__file__', '__name__', 'compile', 'engine', 'error', 'escape', 
'findall', 'finditer', 'match', 'purge', 'search', 'split', 'sub', 
'subn', 'template']

I don't see an object named capwords in either module.

What are you trying to do?  If you just want to capitalize words, 
str.title() is probably the easier way to do this:

 >>> s = "i wanted to be a lumberjack!"
 >>> s.title()
'I Wanted To Be A Lumberjack!'

Steve



More information about the Python-list mailing list