the meaning of rユ.......ï¾

Steven D'Aprano steve+comp.lang.python at pearwood.info
Mon Jul 23 12:33:45 EDT 2012


On Mon, 23 Jul 2012 15:24:21 +0200, Henrik Faber wrote:

> I disagree. Firstly, Python could already support the different types of
> strings even with the ASCII character set. For example, the choice could
> have made to treat the apostophe string 'foo' differently from the
> double quote string "foo". Then, the backtick could have been used
> `foo`.

In Python 2, backticks are a synonym for the repr() function:

py> x = object()
py> `x`
'<object object at 0xb7ec7470>'

That's gone in Python 3.


> Bash for example uses all three and all three have very different
> meanings. Python is different: explicit is better than implicit, and I'd
> rather have the "r" the signifies what weird magic is going on instead
> of having some weird language rules. It would not be different with some
> UTF-8 "rawstring" magic backticks.


I'm not entirely sure why you think that r"..." is more explicit than 
some other quote marks, say `...`. Apart from the mnemonic "r for raw-
string", they're both equally mysterious language rules. (Just try 
explaining why backslashes in raw-strings are normal characters, *unless* 
the last character of the string is a backslash.)

py> print r"ab\"
  File "<stdin>", line 1
    print r"ab\"
               ^
SyntaxError: EOL while scanning single-quoted string


0_o

Personally, I like Python's quoting rules, even with quirks like the 
above. I don't like quoting rules that magically evaluate expressions or 
interpolate variables.


> Secondly, there's a reason that >=, <= and friends are in use. Every
> keyboard has a > key and every keyboard has a = key. I don't know any
> that would have >=, <= or != as UTF-8. It is useful to use only a
> limited set of characters.

You don't need a keyboard with a bazillion keys. You just need a keyboard 
with a couple of extra modifier keys, and some good mnemonics for what 
characters go with what keys. Plus a mechanism for entering arbitrary 
code points that otherwise aren't attached to a key.

Hey, if the Japanese and Chinese can manage it, English speakers can 
surely find a way to enter π or ∞ without a keyboard the size of a 
battleship.


> And if I think of PHP's latest fiasco that happened with unicode
> characters, it makes me shudder to think you'd want that stuff in
> Python. 

Oh please. Just because the PHP "designers" couldn't design a hammer 
doesn't mean that the idea of hammers is faulty.

(Cynical about PHP? Who, me?)


> If I remember correctly, it was the Turkish locale that they
> stuggled with: Turkey apparently does not have a capital "I", 

Not exactly. It has two.

Unlike most other European languages, Turkish and a few other languages 
includes both a dotted and dotless I. Other languages mix them up: dotted 
lowercase i goes with dotless uppercase I, like in English. But in 
Turkish, you have ı <=> I and i <=> İ.

http://en.wikipedia.org/wiki/Dotted_and_dotless_I

And if this wasn't so serious, it would be hilarious:

http://gizmodo.com/382026/a-cellphones-missing-dot-kills-two-people-puts-three-more-in-jail




-- 
Steven



More information about the Python-list mailing list