There is no direct equivalent. However,
import string result = string.capwords(myStr)
is similar. It turns the first letter of each word to uppercase and it turns all the rest of the letters to lowercase. So the above code is actually equivalent to:
<?php $result = ucwords(strtolower($myStr)); ?>
However, for most purposes, it should not make that much of a difference.
Another similar function is the title() method:
result = myStr.title()
It is the same as string.capwords(), except that it regards all non-alphabetic characters (including apostrophes) as word boundaries, instead of just whitespace.
Or an equivalent, except you loose adjacent whitespace characters.
import re def ucwords (s): """Returns a string with the first character of each word in str capitalized, if that character is alphabetic.""" return " ".join([w.upper() + w[1:] for w in re.split('\s*', s)])
This *should* be as equivalent as possible:
from string import whitespace def ucwords(source): """ >>> ucwords("Michael o'keefe") "Michael O'keefe" >>> """ uc_source = '' for idx, a_char in enumerate(source): if a_char in whitespace or not a_char.isalpha(): # whitespace or not alpha is fine to add uc_source += a_char elif a_char.isalpha() and (not idx or source[idx - 1] in whitespace): # we know we're alpha, and either the first character, or the one prev is whitespace uc_source += a_char.upper() else: # whatever else we can be, let's add! uc_source += a_char return uc_source
(PHP 4, PHP 5)
ucwords — Uppercase the first character of each word in a string
string ucwords ( string $str )
Returns a string with the first character of each word in str capitalized, if that character is alphabetic.
The definition of a word is any string of characters that is immediately after a whitespace (These are: space, form-feed, newline, carriage return, horizontal tab, and vertical tab).
Returns the modified string.
Example #1 ucwords() example