Título: cmd ejecucion def con *args Publicado por: winnipu en 19 Abril 2016, 15:26 pm Hola a todos. Vereis, bajo windows he creado un .py usando editor de txt con el siguiente codigo:
Código: def media(*args): Me gustaria poder ejecutar esta funcion desde la consola CMD pero he probado a ejecutarlo desde su directorio asi: c:> nombreprograma.py media(1,2,3,4,5,6) y no me aparece ningun resultado. Es obvio que algo hago mal. Sabeis que? Título: Re: cmd ejecucion def con *args Publicado por: tincopasan en 19 Abril 2016, 20:38 pm no sé si estoy entendiendo ¿querés llamar a la función desde la línea de comandos cómo un argumento?
si querés usar argumentos sería sobre el nombre del archivo y no llamando a la función. así como está es imposible que funcione ni la función ya que nunca la llamas. si estás aprendiendo busca sobre llamar a funciones y sobre pasar argumentos. Título: Re: cmd ejecucion def con *args Publicado por: winnipu en 19 Abril 2016, 21:29 pm Veras, lo que quiero es llamar desde el cmd de windows a la funcion media(*args) del programa nombreprograma.py introduciendo si es posible los argumentos que yo quiera (una serie de numeros mas o menos grande). Todo ello desde la consola windows, para ver si me arroja el resultado en la misma consola. Es posible? O estoy intentando algo que no se puede hacer?
Perdona las dudas extrañas, estoy aprendiendo y se me ocurrio intentar lanzar un programa por consola. Título: Re: cmd ejecucion def con *args Publicado por: engel lex en 20 Abril 2016, 00:08 am no estoy seguro de donde sacaste que con "*args" podrías... esto se hace así
Código
Título: Re: cmd ejecucion def con *args Publicado por: winnipu en 20 Abril 2016, 00:09 am Creo que lo he solucionado mejorando el codigo y ejecutandolo desde cmd ahora si que logro ver el resultado por consola y correctamente. Pego el codigo:
Código: lista =[] Título: Re: cmd ejecucion def con *args Publicado por: tincopasan en 20 Abril 2016, 06:31 am veo que no me diste bola ni tampoco a engel lex
¿en tu nuevo código, dónde está el pase de argumentos para que los haga el script? estoy aburrido y me gusta python por lo tanto modifique un poco tu código para que veas lo que es pasar argumentos: Código
para ejecutarlo desde cmd ponés: python script.py 1 2 3 4 5 o sea llamás al compilador el nombre de tu script y los argumentos separados por espacios y listo. salvo que no hayas entendido que es pasar argumentos esa es la forma en que se puede hacer. Título: Re: cmd ejecucion def con *args Publicado por: winnipu en 20 Abril 2016, 20:34 pm Gracias tincopasan, busque solventar el problema de otro modo, pero tienes razon, tecnicamente lo que hacia yo no era pasar argumentos en linea de comandos, sino pedir datos por consola.
Tu codigo me ha ayudado a entender lo que decia engel lex, realmente desconocia el funcionamiento de sys.argv, solo habia leido sobre *args y *kwargs. Disculpa por mi falta de conocimientos. Solo una duda mas cuando codeas estas lineas: argu= sys.argv argu= argu[1:] Sobreentiendo que sys.argv no lista sus miembros desde la posicion 0 como las listas, sino que comienza en la posicion 1? Voy a leer sobre sys.argv porque la verdad es que es totalmente novedoso para mi. Gracias por encauzarme del modo correcto. Edito: Leyendo sobre el tema he visto porque usas la posicion 1 de sys.argv como si fuese el primer parametro en vez de usar el cero. Por lo que he visto el primer valor del array (sys.argv[0]) es el nombre del archivo (script.py) y a continuación, sys.argv[1] contiene el primer parámetro, en este caso por ejemplo si los argumentos introducidos son 1 2 3 4 5 6 sys.argv[1] equivaldria al string 1, sys.argv[2] al string 2 y asi sucesivamente. Gracias de veras tincopasan y engel lex por orientarme. Título: Re: cmd ejecucion def con *args Publicado por: engel lex en 20 Abril 2016, 21:23 pm antes de hacer la pregunta intentaste hacer un print a sys.argv?
|