[Tutor] hypotenuse

John Fouhy john at fouhy.net
Fri Mar 14 02:13:32 CET 2008


On 14/03/2008, Robert Childers <rbtchilders at gmail.com> wrote:
> I am in an early lesson in "A Byte of Python."  Instead of writing a program
> to find the area of a rectangle I thought it would be useful to write a
> program to determine the length of the diagonal of a "golden rectangle",
> which would of course equal the sq root of the sum of the squares of the
> width and height.  Here is my program:
> >>> height = input ("Height:")
> Height:1
> >>> width = input ("Width:")
> Width:1.618
> >>> int = ((height**2) + (width**2))
> >>> print int
> 3.617924
>  >>> hypotenuse * hypotenuse = int
> SyntaxError: can't assign to operator
>
> I looked ahead in the lesson and could find no mention of square roots.  How
> do I find the square root of an integer?

Hi Robert,

This kind of thing:

 >>> hypotenuse * hypotenuse = int

will never work.  The thing on the left side of an equals sign must
always be a single name.
(there is an exception to this -- "unpacking" -- but I won't explain
it now.  You should come to it in time)

Python provides a square root function, but it's not available by
default.  You need to import the math module first -- your tutorial
should cover importing.  Basically, the code will look something like
this:

>>> import math
>>> hyp_squared = height**2 + width**2
>>> hypotenuse = math.sqrt(hyp_squared)

Finally, "int" is a built-in type, so it's bad programming style to
use it as a variable name. (the same goes for "list", "str", and a few
others)  That's why, in my example, I used "hyp_squared" as the name
for the hypotenuse squared.

-- 
John.


More information about the Tutor mailing list