character encoding conversion

Peter Otten __peter__ at web.de
Mon Dec 13 04:09:32 EST 2004


Steven Bethard wrote:

> Christian Ergh wrote:
>> flag = true
>> for char in data:
>>     if 127 < ord(char) < 128:
>>         flag = false
>> if flag:
>>     try:
>>         data = data.encode('latin-1')
>>     except:
>>         pass
> 
> A little OT, but (assuming I got your indentation right[1]) this kind of
> loop is exactly what the else clause of a for-loop is for:
> 
> for char in data:
>      if 127 < ord(char) < 128:
>          break
> else:
>      try:
>          data = data.encode('latin-1')
>      except:
>          pass
> 
> Only saves you one line of code, but you don't have to keep track of a
> 'flag' variable.  Generally, I find that when I want to set a 'flag'
> variable, I can usually do it with a for/else instead.
> 
> Steve
> 
> [1] Messed up indentation happens in a lot of clients if you have tabs
> in your code.  If you can replace tabs with spaces before posting, this
> usually solves the problem.

Even more off-topic:

>>> for char in data:
...     if 127 < ord(char) < 128:
...             break
...
>>> print char
127.5

:-)

Peter




More information about the Python-list mailing list