Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: jeanbkn en 7 Febrero 2015, 16:48 pm



Título: Duda muy básica
Publicado por: jeanbkn en 7 Febrero 2015, 16:48 pm
Hola, digamos que soy nuevo en programación, he querido empezar con python, la verdad es que no me atrae mucho ir leyendome tutoriales, creo que soy mejor analizando códigos, aprendo más...

He querido contar los números del 1 al 30, pero que esten separados por y sólo una coma, sin espacios entre medio, y no lo puedo lograr jajaja, no sé por qué

Este código me funciona, sin embargo los numerillos me salen " 1, 2, 3, 4" (La idea es que salga sin espacios)
Código:
x=1
while x<=30
 print x
 print ","
 x=x+1
luego viendo otros códigos intente probar este, pero ni idea de por qué no me funciona:
Código:
x=1

while x<=21:
 print x
 print ","
 x=x+1

def Replace(string):
 string= string.replace(" ","")
 return string

string = x
print replace(string)

PD: Hay algun grupo de usuarios o comunidad interesada aprender SQL o algún lenguaje de programación? , pienso que aprender sólo es bastante aburrido, seria interesante tener alguien más con quien hablar y compartir xD

Saludos


Título: Re: Duda muy básica
Publicado por: GonzaFz en 7 Febrero 2015, 17:13 pm
Debes colocar una coma al final del print para indicar que sigue en la misma linea.
Código
  1. x = 1
  2. while x <= 30:
  3. print x,
  4. x += 1
  5.  

Un tip de programacion:
Cuando vas a iterar una cantidad de veces determinada, o mejor dicho conocida antes de iniciar el bucle, se recomienda usar "for":
Código
  1. for x in range(1, 30):
  2. print x,
  3.  

La funcion range(start, stop[, step]) https://docs.python.org/2/library/functions.html#range (https://docs.python.org/2/library/functions.html#range) crea una lista que empieza en start, finaliza en stop y avanza tanto como step indique.
Si pasas un solo argumento sera stop, y start comenzara automaticamente en 0.
Si pasas dos argumentos el primero será start, el segundo stop.
Si pasas tres argumentos sera como el anterior nada mas que el ultimo indicara cuanto avanzar.


Título: Re: Duda muy básica
Publicado por: Eleкtro en 7 Febrero 2015, 17:45 pm
También puedes hacerlo de esta manera, usando la función join para concatenar los elementos de la lista usando el string especificado:

Código
  1. values = range(1, 31)
  2. print ','.join(map(str, values))

Output:
Código:
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30

Edito: Obviamente si lo prefieres puedes utilizar la secuencia directamente, te lo he escrito así para denotar la diferencia entre los datatypes, ya que estás aprendiendo.

Saludos.