[Tutor] Beginner's question
Joel Goldstick
joel.goldstick at gmail.com
Thu Nov 22 16:14:16 CET 2012
On Thu, Nov 22, 2012 at 10:02 AM, Prasad, Ramit
<ramit.prasad at jpmorgan.com>wrote:
> Peter O'Doherty wrote:
> >
> > Hi list,
> > Firstly, apologies for the low-level nature of this question - it's
> > really quite basic but I don't seem to be able to solve it.
> >
> > I need to write a program that examines 3 variables x, y, z, and prints
> > the largest odd number. I've tried all sorts of variations and this is
> > the current version:
> >
> > x, y, z = 26, 15, 20
> >
> > if x > y and x > z and x%2 != 0:
> > print 'x is largest and odd'
> > elif y > x and y > z and y%2 != 0:
> > print 'y is largest and odd'
> > elif z > x and z > y and z%2 != 0:
> > print 'z is largest and odd'
> > else:
> > print 'no odd'
> >
> >
> > A solution should be possible using only the simple operators and
> > keywords above, no functions, lists or any other form of iteration.
> > (It's from p. 16 of Introduction to Computation and Programming Using
> > Python, and no, it's not "homework"!)
> >
>
> The "smart" solution is eluding me so my inelegant solution would
> figure out what is odd for each x,y, and z. Then compare only looking
> at values that are odd. Your current if statement only works if
> all values are odd, but not if the largest value is even and the
> middle (or low) value is odd. The following code snippets should
> give you an idea how to create the if statement so that it works
> correctly
>
> useX = x % 2 # 1 is equivalent to True
> if useX and ( ( useY and x > y ) or not useY ) # and for z:
> print 'X-izard, use largest odd value attack!', x
>
>
> ~Ramit
>
>
> This email is confidential and subject to important disclaimers and
> conditions including on offers for the purchase or sale of
> securities, accuracy and completeness of information, viruses,
> confidentiality, legal privilege, and legal entity disclaimers,
> available at http://www.jpmorgan.com/pages/disclosures/email.
> _______________________________________________
> Tutor maillist - Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>
Oops. I sent this to Ramit, not the list. Sorry Ramit
Here is another idea:
x, y, z = 26, 15, 20
largest = None
if x %2:
largest = x
if y % 2:
if y > largest:
largest = y
if z % 2:
if z > largest:
largest = z;
if Largest:
print "largest value is", largest
else:
print "no odd values"
untested
--
Joel Goldstick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20121122/b5f60bfc/attachment.html>
More information about the Tutor
mailing list