Python - Problema con funciones en un modulo

 
Vista:
sin imagen de perfil
Val: 12
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

Problema con funciones en un modulo

Publicado por Joaquin (7 intervenciones) el 20/06/2017 05:25:46
Hola, estoy aprendiendo sobre modulos en Python, y tengo entendido que son como las librerias en C.
Mi problema esta que a la hora de llamar una funcion de un modulo la terminal de linux me tira "systax error" (tal vez estoy haciendo algo mal).
Esto es lo que deseo hacer:

from paquete1.modulo1 import esperfecto
..
..
..
num = int(raw_input("Ingrese Numero: "))
perfecto(num) #<<< justo en esta linea me tira Syntax error"

ya intente copiar el paquete en la "raiz de python"(donde se encuentran sus modulos) incluso usar el "import sys" y decirle al programa donde buscar el paquete,, pero sigue tirando el mismo error.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Juanito

Problema con funciones en un modulo

Publicado por Juanito (31 intervenciones) el 20/06/2017 08:08:22
podrias tomar captura de pantalla? NOTA ese raw_input no es necesario, pon solonum = int(input("Ingrese Numero: "))

y otra cosa, no puede ser error de que no encuentra el paquete porque o sino te tiraria el error en la primera linea (donde lo importaste)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Problema con funciones en un modulo

Publicado por CpA (33 intervenciones) el 20/06/2017 09:45:04
si importas la función "esperfecto", la línea que pones es normal que te de error, porque "esperfecto" no es "perfecto"...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 12
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

Problema con funciones en un modulo

Publicado por Joaquin (7 intervenciones) el 20/06/2017 16:33:45
Muchas gracias por su interes.

En realidad en este post escribi mal la funcion, pero estan bien escritas em amnos lugares, y la fn es "esperfecto"
la fn que llamo desde el modulo es esta:
1
2
3
4
5
6
7
8
9
10
def perfecto(num):
     d, i = 0, 0
     while i < num:
         if num % i == 0:
              d = d + 1
        i = i + 1
    if d == num:
         return 1
    else:
         return 0

aqui adjunto la imagen del error (lo hice de dos formas y me sale el mismo error)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Problema con funciones en un modulo

Publicado por CpA (33 intervenciones) el 20/06/2017 21:33:04
No entiendo absolutamente nada...

Ahora el error te lo da en una función llamada primo... que ni "esperfecto" ni "perfecto"...

¿Por qué no subes el código tanto del main como del módulo y te podemos ayudar?, porque adivinarlo va a resultar un poco complicado...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 12
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

Problema con funciones en un modulo

Publicado por Joaquin (7 intervenciones) el 21/06/2017 03:55:28
Pido perdon por la confusion, me despiste y subi una captura usando otra funcion.

1
2
3
4
5
6
7
8
9
10
# -*- conding: utf-8 -*-
 
from paquete1.funcdecontrol import esperfecto
 
num = int(input("Ingrese Numero\n>>>"))
 
if esperfecto(num) == 1:
	print "%d es un numero perfecto" % (n)
else:
	print "%d no es un numero perfecto" % (n)

Aqui la funcion del modulo (el archivo del modulo esta en una carpeta que tiene el archivo __init__.py que corresponde para que se tome la carpeta como paquete)
1
2
3
4
5
6
7
8
9
10
def esperfecto(num):
	d, i = 0, 1
	while i < num:
		if num % i == 0:
			d = d + i
		i = i + 1
	if d == num:
		return 1
	else:
		return 0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jonathan

Problema con funciones en un modulo

Publicado por jonathan (1 intervención) el 21/06/2017 04:58:54
que extraño
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 1.120
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Problema con funciones en un modulo

Publicado por kip (257 intervenciones) el 21/06/2017 05:01:07
Hola, la estructura que deberias tener seria algo asi:

1
2
3
4
paquete1/
├── __init__.py
└── funcdecontrol.py
archivodondeimportas.py

Y dentro de funcdecontrol.py

1
2
3
4
def esperfecto(num):
......
....
..

Es asi como tienes tu proyecto ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 12
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

Problema con funciones en un modulo

Publicado por Joaquin (7 intervenciones) el 21/06/2017 19:48:17
Ya solucione el problema muchachos, elimine el archivo deonte tenia el codigo, lo volvi a crear y me ando. Muchas gracias por el interes en ayudar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar