cadenas de caracteres

Mikel Larreategi larreategi en eibar.org
Dom Ago 24 19:06:42 CEST 2003


Se me ha olvidado antes decirte por que no funciona tu programa :)


25/08/03-n Sonia-(e)k idatzi du:
El lunes, 25 de agosto de 2003 Sonia escribió:



> #1º escribir una funcion q, dado un contorno, indique si 
> #se trata de un contorno cerrado, es decir, si el ultimo
> #punto coincide con el punto inicial. 

> def contorno_cerrado(ptox,ptoy,mov):
>   #mov='EEESSSOOOEE'
>   mov=[]
>   contN=0
>   contS=0
>   contE=0
>   contO=0
>   for i in range(0,len(mov)):
>     if mov[i]=='E':  
>       contE=contE+1
>     if mov[i]=='O':
>       contO=contO+1
>     if mov[i]=='N':
>       contN=contN+1
>     if mov[i]=='S':
>       contS=contS+1

>   if contE==contO and contN==contS:
>     if contE+contO == contN+contS:

    Esta condicion no tiene por que cumplirse, la tienes que quitar
    para que funcioneyo puedo ir 5 veces hacia el norte y 5 al sur, y
    no moverme hacia el este y el oeste, y estoy en el mismo sitio que
    al comienzo.

>       print 'Contorno cerrado'
>     else:
>       print 'Contorno abierto'

    Aqui te falta un else de la primera condicion, si no son iguales
    sera un contorno abierto.

    
> x=3
> y=6

> movimientos1=['EEESSSOOOOONNNEE'] #cerrado
> movimientos2=['NNNNNNNEESSSSEESSSOOSSOONN']  #cerrado
> movimientos3=['NNEEESSSOO']  #abierto

  El otro problema esta aqui:
  Lo que tienes en movimientos es una lista con un unico elemento que
  es una cadena. Si haces

  print movimientos1[0]

  conseguimos:

  EEESSSOOOOONNNEE

  Se considera la cadena de caracteres como lista de caracteres. Si
  pones

  movimientos1='EEESSSOOOOONNNEE'

  Tu programa funciona.

  Si movimientos tiene que ser como tu pones, entonces las
  comprobaciones las tendrias que hacer tal que asi:

  mov[0][i]

  Si utilizas esto, en el for tienes que poner esto:

  for i in range(0,len(mov[0])):

> contorno_cerrado(x,y,movimientos1)
> contorno_cerrado(x,y,movimientos2)
> contorno_cerrado(x,y,movimientos2)

  



Saludos,

Mikel Larreategi
Estudiante Ingenieria Informatica
UPV-EHU

http://usuarios.lycos.es/erral
PGP Key ID: 0x597B543C




Más información sobre la lista de distribución Python-es