title: TypeError: bad operand type for unary -: 'str'
body: <p>I've got a problem with Python 2.7.3-32bits on Windows. I put this code to see if anyone can help me out with this error. The comments are in Spanish but it don't affect the code.</p>
  
  <pre><code> import gtk
   import numpy
   import math
   import os
  
   #Pedimos el nombre de la imagen de origen
   nombreFich = input("Por favor, introduzca el nombre de la imagen de origen:")
  
   #Validar que existe el fichero
   imagen1 = gtk.Image()
   imagen1.set_from_file('C:\\Users\\xxx\\Desktop\\xxxx.png')
   pb1 = imagen1.get_pixbuf()
   pm1 = pb1.get_pixels_array()
  
   #Hacemos una copia de la imagen
   pm2 = pm1.copy()
  
   #Validamos los puntos de distorsion hasta que sean validos
   puntos = " "
   arrayPuntos = " "
   while(puntos == " " and len(arrayPuntos) &lt; 4):
       print"Por favor, introduzca los puntos de distorsión xc yc r e:"
       puntos= raw_input()
       arrayPuntos = puntos.split(" ")
  
   #Sacamos los puntos separando la cadena por el caracter espacio
   xc =(puntos[0])
   yc =(puntos[1])
   r =(puntos[2])
   e =(puntos[3])
  
   #función que calcula el grado de distorsión
   def grado(self,z,e): 
       if(z&gt;1):
           return 1
       elif(e&lt;0):
           return (1/z)**(-e/(1-e))
       else:
          return z**e
  
   #Distorsionamos la imagen
   def distors(xc,yc,r,e,x,y):
       d = math.sqrt(x**2+y**2)#Sacamos la distancia
       z = d/r
       if(z!=0):
           g=grado(z,e)
           xm=x*g
           ym=y*g
           return xm,ym
  
       else:
           xm=x
           ym=y
           return xm,ym
   def recorrido (pm1, xc, yc, r, e):
       pm2 = pm1.copy()
  
       x= str(--r)
       y= str(--r)
       while (y &lt;= r):                     
           while (x &lt;= r):
               xm, ym = mover(xc, yc, r, e, x, y)
               pm2[yc+y][xc+x] = pm1[yc+ym][xc+xm]
               x = x+1
           y= y+1
           x= -r
  
  
       return pm2
   pm2 = recorrido(pm1, xc, yc, r, e)
  
   #Guardamos los cambios
   pb2 = gtk.gdk.pixbuf_new_from_array(pm2,pb1.get_colorspace(),pb1.get_bits_per_sample())
   nomfich2 = nombreFich+"_copia"
   ext = os.path.splitext("C:\\Users\xxx\Desktop\xxxx.png_copia")[1][1:].lower()
   pb2.save("C:\\Users\xxx\Desktop\xxxx.png_copia",ext)
   print"FINISH"
  </code></pre>
  
  <p>When I run the python code I get the following error:</p>
  
  <pre><code> Traceback (most recent call last):
     File "F:\Dropbox\Práctica Pitón\Práctica3.0.py", line 71, in &lt;module&gt;
       pm2 = recorrido(pm1, xc, yc, r, e)
     File "F:\Dropbox\Práctica Pitón\Práctica3.0.py", line 59, in recorrido
       x= str(--r)
   TypeError: bad operand type for unary -: 'str'
  </code></pre>