A question I have...
steve at REMOVE-THIS-cybersource.com.au
Sat Oct 30 08:13:13 CEST 2010
On Sat, 30 Oct 2010 15:05:37 +1300, Lawrence D'Oliveiro wrote:
> In message <mailman.168.1287872943.2218.python-list at python.org>, geremy
> condra wrote:
>> ... dividing strings by a number doesn't make sense.
> The logical meaning would be the opposite of multiplying strings by a
> >>> "abc" * 3
> >>> "abcabcabc" // 3
That is a hyper-generalisation. Just because * and + are defined for
strings doesn't mean we have to define other operators as well.
In general, given a string S, there is no substring s such that s*n = S
and therefore in general S//n will almost always raise an error, for
nearly all S and nearly all n. Of the infinite number of combinations of
string S and integer n, only a vanishingly small proportion will define
S//n. Given how rarely string division would apply, and the lack of any
real-world use-case, there is no sensible reason to define S//n.
One could define functions that do anything, but very few of them are
useful. Defining string//int, or string//string, are not some of the
useful ones. One might as well define math.sqrt("spam\nspam\nspam\spam")
= "spam" (it's spam in a square, geddit?) and declare that's the
"logical" meaning. But that would be silly.
More information about the Python-list