Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] Problema con este codigo

Estas en el tema de Problema con este codigo en el foro de Python en Foros del Web. Hola a todos, recurro otra vez a ustedes ya que tengo otra vez una duda, estoy en una comunidad en google plus en la cual ...
  #1 (permalink)  
Antiguo 24/04/2013, 10:05
 
Fecha de Ingreso: agosto-2012
Ubicación: Villahermosa
Mensajes: 26
Antigüedad: 12 años, 3 meses
Puntos: 0
Problema con este codigo

Hola a todos, recurro otra vez a ustedes ya que tengo otra vez una duda, estoy en una comunidad en google plus en la cual cada semana leemos un capitulo de un libro de python y nos planteamos desafios usando solo lo visto en la semana. Apenas vamos por la semana 1 y estamos viendo el "for", segun yo me creia muy bueno cuando plantearon el siguiente desafio:

Ingresar el valor maximo de las barras
Ingresar el valor maximo de barra 1
Ingresar el valor maximo de barra 2
Ingresar el valor maximo de barra 3
Ingresar el valor maximo de barra 4

y mostrarlo como en la imagen.



las barras se deben de llenar con el valor ingresado por el usuario previamente.

La verdad no se como lograr que las barras se rellenen usando solo "for", lo he logrado con if y else, pero no solo con "for".

Ayuda por favor
  #2 (permalink)  
Antiguo 24/04/2013, 10:10
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Problema con este codigo

Te falto el código que tienes hecho.
  #3 (permalink)  
Antiguo 24/04/2013, 11:37
 
Fecha de Ingreso: agosto-2012
Ubicación: Villahermosa
Mensajes: 26
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Problema con este codigo

Bueno tengo este codigo :

Código:
maximo = input("Tamanho maximo: ")
b1 = input("Tamanho de barra1: ")
b2 = input("Tamanho de barra2: ")
b3 = input("Tamanho de barra3: ")
b4 = input("Tamanho de barra4: ")

print ""
print "El maximo alcance de la barra es: ", maximo

pos = 0
barra_vacia = "    "
barra_llena = "----"

print "+"*23	

for x in range(maximo):
	
	pos = maximo - x
	
	if pos <= b1:
		c1 = barra_llena
	else:
		c1 = barra_vacia

	if pos <= b2:
		c2 = barra_llena
	else:
		c2 = barra_vacia

	if pos <= b3:
		c3 = barra_llena
	else:
		c3 = barra_vacia

	if pos <= b4:
		c4 = barra_llena
	else:
		c4 = barra_vacia
	print "+", c1, c2, c3, c4, "+"


print "+  b1   b2   b3   b4  +"
print "+"*23
Pero se supone que no deberia de usar sentencias "if".

Alguien sabe como hacerlo sin "if", "else" ?
  #4 (permalink)  
Antiguo 24/04/2013, 12:32
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Problema con este codigo

Aquí tienes sin ni un solo if.

Código Python:
Ver original
  1. maximo = int(raw_input("Tamanho maximo: "))
  2. bars = []
  3. for i in range(1, 5):
  4.     bars.append(int(raw_input("Tamanho de barra%d: " % i)))
  5.  
  6.  
  7. print ""
  8. print "El maximo alcance de la barra es:", maximo
  9.  
  10. def print_matrix(matrix):
  11.     for row in matrix:
  12.         print ''.join(row)
  13.  
  14. def border_matrix(matrix):
  15.     rows = len(matrix)
  16.     cols = len(matrix[0])
  17.     for i in range(rows):
  18.         matrix[i][0] = matrix[i][-1] = '+'
  19.  
  20.     for j in range(cols):
  21.         matrix[0][j] = matrix[-1][j] = '+'
  22.  
  23. def put_bar(matrix, i, j):
  24.     for k in range(4):
  25.         matrix[i][j+k] = '-'
  26.  
  27. def draw_bars(matrix, bars):
  28.     rows = len(matrix)
  29.     for i, bar in enumerate(bars):
  30.         for c in range(bar):
  31.             put_bar(matrix, rows - 2 - c, 2 + (i * 5))    
  32.  
  33.  
  34. matrix =[list(' ' * 23) for i in range(maximo + 2)]
  35. border_matrix(matrix)
  36. draw_bars(matrix, bars)
  37. print_matrix(matrix)
  #5 (permalink)  
Antiguo 25/04/2013, 12:03
 
Fecha de Ingreso: agosto-2012
Ubicación: Villahermosa
Mensajes: 26
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Problema con este codigo

muchas gracias !!!
  #6 (permalink)  
Antiguo 03/05/2013, 00:18
 
Fecha de Ingreso: mayo-2013
Ubicación: Machala
Mensajes: 4
Antigüedad: 11 años, 6 meses
Puntos: 0
Respuesta: Problema con este codigo

resuelto
Código Python:
Ver original
  1. maximo=input('Cual es el valor maximo de barras ')
  2. barra1=[input('cual es el valor de la primera barra ')]
  3. barra2=[input('cual es el valor de la primera barra ')]
  4. barra3=[input('cual es el valor de la primera barra ')]
  5. barra4=[input('cual es el valor de la primera barra ')]
  6. barras=[barra1,barra2,barra3,barra4]
  7. print 'Tamaño maximo de barras ',maximo
  8. for i in range(1,5):
  9.     print 'El tamaño de la barra ',i,' es ',barras[i-1][0]
  10. for i in barras:
  11.     for j in range(maximo-i[0]):
  12.         i.append('   ')      
  13.     for  k in range(i[0]):
  14.         i.append('----')
  15.        
  16. print '+++++++++++++++++++++++++++++++++++++++++'
  17. for i in range(maximo):
  18.     print ('+'),
  19.     for j in range(4):
  20.         print ('\t'+barras[j][i+1]),
  21.     print '\t+'
  22. print '+\tBARRA1\tBARRA2\tBARRA3\tBARRA4'
  23. print '+++++++++++++++++++++++++++++++++++++++++'
  #7 (permalink)  
Antiguo 04/05/2013, 20:41
 
Fecha de Ingreso: agosto-2012
Ubicación: Villahermosa
Mensajes: 26
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Problema con este codigo

Muchas gracias a los dos, excelentes respuestas

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:40.