getting an empty tuple

2005-07-31 Thread nephish
Hey there,
i have a simple database query that returns as a tuple the number of
rows that the query selected.
kinda like this

 cursor.execute('select value from table where autoinc  234')
 x = cursor.fetchall()
 print x

 21L

ok, means 21 rows met the criteria of the query. but if there are none
that match,
like i do a

 print x
 0L

how do i encorporate that into an equation ?
i have tried all kinds of stuff

if x == 0L
if x(0) == None
if x == None

anyway, what shoud i do to test if the result is empty?

thanks

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: getting an empty tuple

2005-07-31 Thread Peter Decker
On 31 Jul 2005 08:40:26 -0700, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:

 how do i encorporate that into an equation ?
 i have tried all kinds of stuff
 
 if x == 0L
 if x(0) == None
 if x == None
 
 anyway, what shoud i do to test if the result is empty?

Just like any other test:

if not x:

-- 

# p.d.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: getting an empty tuple

2005-07-31 Thread Steven D'Aprano
On Sun, 31 Jul 2005 08:40:26 -0700, nephish wrote:

 Hey there,
 i have a simple database query that returns as a tuple the number of
 rows that the query selected.
 kinda like this
 
 cursor.execute('select value from table where autoinc  234')
 x = cursor.fetchall()
 print x
 
 21L

21L is not a tuple, it is a long integer.

 ok, means 21 rows met the criteria of the query. but if there are none
 that match,
 like i do a
 
 print x
 0L
 
 how do i encorporate that into an equation ?
 i have tried all kinds of stuff

And did they work? If they didn't work, tell us the exact error message
you got.


 if x == 0L

If x is a long integer, then that will work. Of just if x == 0: will
work too.


 if x(0) == None

No. That means x is a function, and you are giving it an argument of 0,
and it returns None.

 if x == None

You said that your query returns a tuple, but then gave an example where
it returns a long int. None is not a tuple, nor a long int, so testing
either of those things against None will never be true.

Did you try any of these things in the interactive interpreter? Python is
a great language for experimenting, because you can try this yourself:

# run your setup code ...
# and then do some experimenting
cursor.execute('select value from table where autoinc  ')
# or some value that will never happen
x = cursor.fetchall()
print x

What do you get?


 anyway, what shoud i do to test if the result is empty?

Long ints are never empty, but they can be zero:

if x == 0:
print no rows were found
elif x == 1:
print 1 row was found
else:
print %d rows were found % x

Tuples can be empty: 

if len(x) == 0:
print no rows were found

or if you prefer:

if x == ():
print no rows were found


But the cleanest, most Pythonic way is just to do a truth-test:

if x:
print something was found
else:
print x is empty, false, blank, nothing...


-- 
Steven.

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: getting an empty tuple

2005-07-31 Thread nephish
ok, this is what works:
 if x == ():

sorry about the bad info. and what i ment to put was
x[0] not x(0)

thanks for the tips
its all good now

shawn


Steven D'Aprano wrote:
 On Sun, 31 Jul 2005 08:40:26 -0700, nephish wrote:

  Hey there,
  i have a simple database query that returns as a tuple the number of
  rows that the query selected.
  kinda like this
 
  cursor.execute('select value from table where autoinc  234')
  x = cursor.fetchall()
  print x
 
  21L

 21L is not a tuple, it is a long integer.

  ok, means 21 rows met the criteria of the query. but if there are none
  that match,
  like i do a
 
  print x
  0L
 
  how do i encorporate that into an equation ?
  i have tried all kinds of stuff

 And did they work? If they didn't work, tell us the exact error message
 you got.


  if x == 0L

 If x is a long integer, then that will work. Of just if x == 0: will
 work too.


  if x(0) == None

 No. That means x is a function, and you are giving it an argument of 0,
 and it returns None.

  if x == None

 You said that your query returns a tuple, but then gave an example where
 it returns a long int. None is not a tuple, nor a long int, so testing
 either of those things against None will never be true.

 Did you try any of these things in the interactive interpreter? Python is
 a great language for experimenting, because you can try this yourself:

 # run your setup code ...
 # and then do some experimenting
 cursor.execute('select value from table where autoinc  ')
 # or some value that will never happen
 x = cursor.fetchall()
 print x

 What do you get?


  anyway, what shoud i do to test if the result is empty?

 Long ints are never empty, but they can be zero:

 if x == 0:
 print no rows were found
 elif x == 1:
 print 1 row was found
 else:
 print %d rows were found % x

 Tuples can be empty:

 if len(x) == 0:
 print no rows were found

 or if you prefer:

 if x == ():
 print no rows were found


 But the cleanest, most Pythonic way is just to do a truth-test:

 if x:
 print something was found
 else:
 print x is empty, false, blank, nothing...
 
 
 -- 
 Steven.

-- 
http://mail.python.org/mailman/listinfo/python-list