Tuples !?!?

A

aaragao

Hi,

Is the tuple comparison brooked in python ?!?!?

Thanks.

Try this and you will see funny things:

# -*- coding: cp1252 -*-
import random
import csv
import struct
import array

def gera_string(res):

# acampo3
acampo3=((0,5,'muito reduzidos'),(6,20,'reduzidos'),
(21,32,'satisfatórios'),(33,40,'bons'),(41,45,'excelentes'))
# acampo4
acampo4=((0,2,'reduzidos'),(3,4,'medianos'),(5,5,'elevadas'))
# acampo5
acampo5=((0,2,'reduzidos'),(3,4,'médias'),(5,5,'elevados'))
# acampo6
acampo6=((0,2,'fracos'),(3,4,'satisfatórios'),(5,5,'elevados'))
# acampo7
acampo7=((0,2,'pouco'),(3,4,'bastante'),(5,5,'quase sempre'))
# acampo8
acampo8=((0,4,'mal'),(5,9,'satisfatoriamente'),(10,10,'de forma
exemplar'))
# acampo9
acampo9=((0,2,'muito reduzidos'),(3,4,'reduzidos'),
(5,8,'satisfatórios'),(9,10,'elevados'))
# acampo10
acampo10=((0,2,'pouco'),(3,4,'bastante'),(5,5,'muito'))
# acampo11
acampo11=((0,2,'muito pouco'),(3,4,'pouco'),(5,8,'bastante'),
(9,10,'grande'))

campo1=res[0]
campo2=res[1]
campo3=res[2]
campo4=res[3]
campo5=res[4]
campo6=res[5]
campo7=res[6]
campo8=res[7]
campo9=res[8]
campo10=res[9]
campo11=res[10]

for a in acampo3:
x=a[0]
y=res[2]
z=a[1]
print x
print y
print z
print x < y
print y < z
print z < y
if a[0] <= res[2] <= a[1]:
campo3=a[2]

for a in acampo4:
if (res[3]>=a[0] and res[3]<=a[1]):
campo4=a[2]

for a in acampo5:
if (res[4]>=a[0] and res[4]<=a[1]):
campo5=a[2]

for a in acampo6:
if (res[5]>=a[0] and res[5]<=a[1]):
campo6=a[2]

for a in acampo7:
if (res[6]>=a[0] and res[6]<=a[1]):
campo7=a[2]

for a in acampo8:
if (res[7]>=a[0] and res[7]<=a[1]):
campo8=a[2]

for a in acampo9:
if (res[8]>=a[0] and res[8]<=a[1]):
campo9=a[2]

for a in acampo10:
if (res[9]>=a[0] and res[9]<=a[1]):
campo10=a[2]

for a in acampo11:
if (res[10]>=a[0] and res[10]<=a[1]):
campo11=a[10]

...

return frase

# processar

f=open('leituras.csv','rb')
csv.register_dialect('dialecto', delimiter=';',
quoting=csv.QUOTE_NONE)
leitor =csv.reader(f,'dialecto')

for res in leitor:
print res
print gera_string(res)

f.close()

quit()
 
B

Bruno Desthuilliers

(e-mail address removed) a écrit :
Hi,

Is the tuple comparison brooked in python ?!?!?

Given the size and average level of the user base, I think this would
have been noticed.

If you hope anyone to try anything, please post the *minimal* working
code showing the problem. And while your at it, also explain the
expected result.
and you will see funny things:

Sorry but the only thing I see so far is that your code needs refactoring.
 
A

aaragao

Ok. This is small code.

The problem is '2' != 2 there is a way of converting 'some number' in
number ?

Thanks.

# -*- coding: cp1252 -*-
import random
import csv
import struct
import array

# resultados para colocar nos campos
def gera_string(res):

# acampo3
acampo1=((0,5,'muito reduzidos'),(6,20,'reduzidos'),
(21,32,'satisfatórios'),(33,40,'bons'),(41,45,'excelentes'))
campo1=''

for a in acampo1:
print res[1]
if (res[1]>=a[0] and res[1]<=a[1]):
campo1=a[2]

return campo1

# processar

res=['a','2']

print gera_string(res)

quit()
 
A

aaragao

Ok. This is small code.

The problem is '2' != 2 there is a way of converting 'some number' in
number ?

Thanks.

# -*- coding: cp1252 -*-
import random
import csv
import struct
import array

# resultados para colocar nos campos
def gera_string(res):

# acampo3
acampo1=((0,5,'muito reduzidos'),(6,20,'reduzidos'),
(21,32,'satisfatórios'),(33,40,'bons'),(41,45,'excelentes'))
campo1=''

for a in acampo1:
print res[1]
if (res[1]>=a[0] and res[1]<=a[1]):
campo1=a[2]

return campo1

# processar

res=['a','2']

print gera_string(res)

quit()

(e-mail address removed) a écrit :
Thanks. I have found that there is int() function on python. The print
function always show me a number when was 'number'. Ok thanks.
 
B

Bruno Desthuilliers

(e-mail address removed) a écrit :
Ok. This is small code.

The problem is '2' != 2

It would indeed be a problem if this expression eval'd to True. That's
the case in some, hem, 'languages', and believe me it's *not* the
RightThing.
there is a way of converting 'some number' in
number ?

assert(2 == int(2))

Anything else about tuples ?-)
 
B

Bjoern Schliessmann

Bruno said:
(e-mail address removed) a écrit :

It would indeed be a problem if this expression eval'd to True.
That's the case in some, hem, 'languages', and believe me it's
*not* the RightThing.

What kind of "hem" language is this? :)

Regards,


Björn
 
B

Bruno Desthuilliers

Bjoern Schliessmann a écrit :
What kind of "hem" language is this? :)


True

hem... Sorry, I of course meant that it would be a problem if '2' == 2
eval'd to true - or '2' != 2 eval'd to false. My bad...

Thanks for the correction anyway.

Ah, and, yes, the 'hem' language I was thinking about has a three
letters recursive acronym for name and is widely (and mostly) used for
web applications. Should I spell the name, or did you guess ?-)
 
A

aaragao

Ok people. No more discussions about this. I tought the conversion
occurs automatic but it is not case. I'm a newbie on python. Thanks to
everybody. ;-)
 
J

Jason

Ok. This is small code.
The problem is '2' != 2 there is a way of converting 'some number' in
number ?

# -*- coding: cp1252 -*-
import random
import csv
import struct
import array
# resultados para colocar nos campos
def gera_string(res):
# acampo3
acampo1=((0,5,'muito reduzidos'),(6,20,'reduzidos'),
(21,32,'satisfatórios'),(33,40,'bons'),(41,45,'excelentes'))
campo1=''
for a in acampo1:
print res[1]
if (res[1]>=a[0] and res[1]<=a[1]):
campo1=a[2]
return campo1
# processar
res=['a','2']

print gera_string(res)
(e-mail address removed) a écrit :
Hi,

Thanks. I have found that there is int() function on python. The print
function always show me a number when was 'number'. Ok thanks.

Python objects have two ways of representing themselves. The print
statement converts the objects in it into strings. Python objects can
also have a representative string which should give you enough
information to determine if you're dealing with a number or a string.
You can get this representative string via the repr() built-in
function. To get the normal string of an object, the str() built-in
will perform the conversion.

If you're using the string formatting operator (%), the "%s" specifier
will use the normal string, while the "%r" specifier will use the
representative string.

Please note that repr() will show you *all* the digits of a floating
point number, while the normal string conversion may round. This is
because floating-point numbers cannot represent most decimal exactly.
This isn't a flaw in Python, but a flaw in all IEEE floating-point
hardware (ie, your processor).

If you're using Python interactively, Python will display the results
of expressions with their representative strings.

For example:
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,764
Messages
2,569,567
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top