[Tutor] While loop issue, variable not equal to var or var
Dave Angel
davea at davea.name
Sat Jul 12 14:20:21 CEST 2014
Steven D'Aprano <steve at pearwood.info> Wrote in message:
> On Sat, Jul 12, 2014 at 09:33:20AM +0100, Alan Gauld wrote:
>
>> 2) Better (IMHO) is to convert message to lower case (or upper if
>> you prefer) and only do one comparison:
>>
>> while message.lower() != 'q':
>
> I second this advice, but with a slight modification.
>
> If you're using Python 3.3 or higher, it is better to use
> message.casefold rather than lower. For English, there's no real
> difference:
>
> py> "Hello World!".casefold()
> 'hello world!'
>
>
> but it can make a difference for non-English languages:
>
> py> "Große".lower() # German for "great" or "large"
> 'große'
> py> "Große".casefold()
> 'grosse'
>
I don't remember my high school German enough to remember if the ß
character is an example, but in various languages there are
characters that exist only in uppercase, and whose lowercase
equivalent is multiple letters. Or vice versa. And characters
that have multiple valid spellings in uppercase, but only one in
lowercase.
If the latter is true for German, perhaps GROSSE and GROßE are
valid uppercase, but only grosse for lowercase.
--
DaveA
More information about the Tutor
mailing list