On 17 Oct 2019, at 20:37, Chris Angelico <rosuav@gmail.com> wrote:
On Fri, Oct 18, 2019 at 5:25 AM Anders Hovmöller <boxed@killingar.net> wrote:
On 17 Oct 2019, at 17:07, Andrew Barnert <abarnert@yahoo.com> wrote:
On Oct 17, 2019, at 05:08, Anders Hovmöller <boxed@killingar.net> wrote:
Well obviously never with literals. But most cases of multiplication aren't with literals. So how can you get a type error when doing
a*b
is the real question. And the answer is now obvious: any time the programmer thinks a and b are numbers but they are not.
If neither one is a number—in fact, if b is not an integer—you will get a TypeError.
Also, the reason you have no idea what’s in these variables is that you named them a and b instead of something meaningful.
No. The reason I don't know is because this is a hypothetical example. In real code I would "know" BUT BE WRONG because the variable names would be outright lying.
/ Anders
So if you had 'separator' and 'width', would the variable names be outright lying, or would it then be reasonable to multiply a separator character by a width (eg 80) to create a line?
Eh. No. What? Are you really being sincere? In any case this would be fine: line = separator.fill(80) (although if we're attacking each other's variable names how about "section_separator = separator character.fill(80)"?) / Anders