[THIS CLAIMER: a bit off a bit off a bit off topic, imagine that] Chris,
You have a gift of taking things I think about but censor myself from including in my post and then blurting it out! LOL! The original question in this thread now seems a dim memory but we are now discussing not how to add a number to a string but how to multiply a string to make n combined copies and then what it means to have a fractional copy and finally a way to specify a rotation to the result. Argh!!!! But since you brought it up as a way of looking at what multiplying by an imaginary number might mean, as in rotating text, I am now going to throw in a May Tricks even if it is only April. So should I now extend a language so a rotation matrix is allowed to multiply text or even a nested list like: [ [ cos(theta), -sin(theta) ], [ sin(theta), cos(theta) ] While we are at it, why stop with imaginary numbers when you can imagine extensions thereof? Unfortunately, it has been proven there are and can only be two additional such constructs. Quaternions have three distinct imaginary axes called i,j,k and some see them as interesting to show multidimensional objects in all kinds of places such as computer vision or orbital mechanics. Octonions have seven such other imaginary axes and have uses in esoteric places like String Theory or Quantum Logic. And, yes, you can use these critters in python. You can add a quaternion type to numpy for example. Yep, octonions too. See modules like pyoctonion and pyquaternion and much more. The immoral moral of this story is that once you start opening some doors, you may find people clamoring to let in ever more things and features. You can easily bog down your code to the point where finding the commonly used parts becomes a chore as you trudge through lots of code that is rarely used but there for completeness. Oh, I want to make something clear before I get another message spelling out what I was thinking but chose to omit. I slightly misled you above. Yes, it has been proven no number higher than 8 (meaning one real dimension and seven distinct imaginary ones) can exist so octonions are the final part of that story. Well, not exactly. You lose commutativity when going from quaternions to octonions and you lose full associativity if you go higher. But you can make all kinds of mathematical constructs like sedenions with 16 dimensions. I cannot imagine ever trying to multiply a string by these critters but who knows? As I noted above, if you set some parts of each of the above to zero, they all can look like something with a real part like 3, and no (meaning zero point zero) imaginary parts. So you could argue you should support all kinds of things that MAY on examination turn out to be convertible to an integer or double. -----Original Message----- From: Python-list <python-list-bounces+avi.e.gross=gmail....@python.org> On Behalf Of Chris Angelico Sent: Thursday, April 13, 2023 12:12 PM To: python-list@python.org Subject: Re: Weak Type Ability for Python On Fri, 14 Apr 2023 at 02:05, <avi.e.gr...@gmail.com> wrote: > So why not extend it to allow complex numbers? > > >>> "Hello" * complex(5,0) > TypeError: can't multiply sequence by non-int of type 'complex' > >>> "Hello" * complex(0,5) > TypeError: can't multiply sequence by non-int of type 'complex' > Clearly a missed opportunity to rotate the text through a specified angle. ChrisA -- https://mail.python.org/mailman/listinfo/python-list -- https://mail.python.org/mailman/listinfo/python-list