What is Python?

Tim Hammerquist tim at degree.ath.cx
Thu Sep 21 19:19:20 EDT 2000


Grant Griffin <g2 at seebelow.org> wrote:
> My bigger problem nowadays is accidentally putting single-quotes around
> strings in C.  (Either double- or single-quotes will work in Python, but
> I tend to use single-quotes because they make for less of that nasty
> "punctuation clutter" that I left Perl to get away from. <wink>)

I also prefer single-quotes, unless I'm quoting a real language.  I
don't like:

	"And God said unto the gerbil, \"Do not chew your owners table.\"."
nor
	'It\'s not their table.'

and I very much like the _ability_ (but not duty) of defining my own quote
character in Perl:

	qq{And God said, "Are you talkin' to me?! Huh, $gerbil_name?!}

> I'm basically competant in them, but I've never really
> "mastered" them.  So I remain uncomfortable with them, and I always have
> to keep my handy reference chart at hand.

Nothing wrong with looking in the book.  One can guess, though, by your
discomfort with regexps, that you've not worked extensively in a *nix
shell?

> Actually, when I first took up Perl, I looked for something _like_
> Python's string module, but I found none;

Um, Perl built-ins:
	perldoc -f join
	perldoc -f split

Split on whitespace:
	@words = split $sentence;        # Perl
	words = string.split( sentence ) # Python

Split on ':':
	@attributes = split ':', $line_from_passwd;
	attributes = string.splitfields( line_from_passwd, ':' )

Split on any non-alphanumeric character:
	@alphas = split /\W/, $line;
	# Um...didn't find it in the string module

Join on ' ':
	$line = join ' ', @words;
	line = string.join( words )

Join on ':':
	$line = join ':', words;
	line = string.join( words )

Yes, I realize that splitting on non-alphanums required a regex, but the
fact that Perl's split supports regexps when called upon is definitely a
feature.

> the Camel book
> would win a Pulitzer Prize here if the Pulitizer folks had a category
> for "Worst Technical Writing" <0.1 wink>), but REs represent a major
> hurdle for beginners.

This is very true, and REs were a major hurdle for me as well.  I had to
buckle down and learn regexps as a separate concept before I could
really appreciate how Perl integrated them.  As far as the Camel goes,
this is not an infrequent thread in clpm.  The Camel is widely regarded
as a much better _reference_ than an instructional or tutorial book, and
I agree wholeheartedly.  I was unable to "learn" Perl from the Camel,
but since I grokked Perl, the Camel is invaluable.

> To be fair, though, one of the few things I miss about Perl is its easy
> use of REs: that's obviously one of its great strengths.  However,
> Python's approach of providing that same functionality as a module, not
> as a fundamental language feature, is definitely more "Pythonic": the
> result is significantly more verbose, but that's exactly the point:
> there's quite a lot of "implicit is worse than explicit" (to coarsely
> paraphrase) baggage that comes along with Perl's approach.

This is probably one of the side-effects of Larry's styling Perl after
natural language.  I should say that I'm not only a computer language
fan, but also a foreign language major with several Romance languages as
a hobby.  Might that be why my mind appears *twisted* in liking Perl's
approach?

> i-heard-somewhere-that-this-is-level-of-modularity-one-of-the
>    -major-design-goals-of-the-TBD-perl6-<wink>-ly y'rs,


-- 
-Tim Hammerquist <timmy at cpan.org>

Legend -- a lie that has attained the dignity of age.
	-- H. L. Mencken



More information about the Python-list mailing list