[Tutor] taking a tuple with input
Mark Lawrence
breamoreboy at yahoo.co.uk
Sat Oct 26 11:49:45 CEST 2013
On 26/10/2013 04:09, Sven Hennig wrote:
> Hey Guys,
>
> i'm running Python 3.3.2 on Windows 7 64 Bit
>
> I am writing a little script for practice and got a little problem.
> I wrote a class which got two points in the constructor (p1 and p2).
> With the function distanceOf from my class i measure the distance
> between these two points. Everything works fine. But when i want to use
> input to get the points i does not work...
>
> So how can i get an int tuple with input?
>
> Some Code:
>
> class points:
> def __init__(self, p1, p2):
> self.p1 = p1
> self.p2 = p2
> def distanceOf(self):
> diff = (self.p2[0] - self.p1[0], self.p2[1] - self.p1[1])
> a = diff[0]
> b = diff[1]
> result = math.sqrt(a**2 + b**2)
> return "The distance between the two points:", round(result)
>
> When i type test = points((25.0, 30.0), (40.0, 55.0)) and
> test.distanceOf() everything is ok. Now i wont to get input. (In the
> input prompt i write: (25.0, 30.0)
> p1 = input('Please type in some coordinates')
> p2 = input('Please type in some coordinates')
> test = points(p1, p2)
> points.distanceOf()
>
> Traceback (most recent call last):
> File "lines.py", line 16, in <module>
> line.distanceOf()
> File "lines.py", line 6, in distanceOf
> diff = (self.p2[0] - self.p1[0], self.p2[1] - self.p1[1])
> TypeError: unsupported operand type(s) for -: 'str' and 'str'
>
> i get this error
>
> can anyone help me out? How can i get an tuple with int values from user
> input?
>
> Greetings
>
Twp options from the top of my head. Either enter the coordinates
separately and build your tuples (or lists) before passing them to your
points class, or use the ast module literal_eval call. Note that if you
choose the latter, you don't need to enter the parentheses, it's the
comma that makes the tuple.
--
Python is the second best programming language in the world.
But the best has yet to be invented. Christian Tismer
Mark Lawrence
More information about the Tutor
mailing list