Python - Uso de "True" and "False"

 
Vista:

Uso de "True" and "False"

Publicado por Martín (3 intervenciones) el 11/01/2012 22:36:27
Hola.

Estoy aprendiendo a programar en Python siguiendo este manual:

http://www.lawebdelprogramador.com/cursos/Python/4463-Introduccion_a_la_programacion_con_Python.html

En el ejercicio 129 (pág. 118) me pide calcular el MCD (máximo común divisor) de dos enteros positivos ingresados por el usuario. Lo que yo escribí funciona, pero estoy en una parte que trata del uso de False and True... y yo lo hice sin eso. No me doy cuenta cómo escribir el programa utilizando esos valores lógicos.

Aquí les copio lo que hice:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
entero_uno=int(raw_input('Dame un número: '))
entero_dos=int(raw_input('Dame otro número: '))
 
if entero_uno<entero_dos:
  menor=entero_uno
  mayor=entero_dos
else:
  menor=entero_dos
  mayor=entero_uno
 
#aprovecho que el MCD no puede exceder a la mitad del menor, defino esto:
divisor = int(menor/2)
 
while mayor % divisor != 0 and menor % divisor != 0 :
  divisor+=1
 
print 'MCD=', divisor

Bueno, agradezco sugerencias.
Saludos
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

Uso de

Publicado por Lucas (2 intervenciones) el 30/01/2012 21:22:00
Mira, yo tambien estoy aprendiendo (de ese mismo libro) pero te comento. Hay numeros que no tienen mcd (excepto el 1, que con tu programa si no me equivoco subiria al divisor hasta el limite y mostraria ese numero ). Por ejemplo los numeros 3 y 4.

Con un booleano podrias controlar si se encuentra un divisor comun != 1. Por ejemplo

1
2
3
4
5
6
7
8
9
10
11
12
13
entero_uno=int(raw_input('Dame un número: '))
entero_dos=int(raw_input('Dame otro número: '))
hay_mcd = false
 
if entero_uno<entero_dos:
  menor=entero_uno
  mayor=entero_dos
else:
  menor=entero_dos
  mayor=entero_uno
 
#aprovecho que el MCD no puede exceder a la mitad del menor, defino esto:
divisor = int(menor/2)


1
2
3
4
5
6
7
8
while hay_mcd = False
     divisor+=1
     if  mayor % divisor != 0 and menor % divisor != 0:
           hay_mcd = True
           print "MCD =", divisor
     else:
          print "No hay MCD distinto a 1"
          break


No entendi muy bien eso del limite, primero pones que el divisor sea la mitad del menor y despues lo vas subiendo, creo que seria al reves.
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

Uso de

Publicado por Martín (3 intervenciones) el 03/02/2012 03:11:34
Muchas gracias, Lucas! Sí, el programa está mal, tendría que bajar en vez de subir, pero además, eso de "la mitad..." es un disparate (12, 24 y 36, por ejemplo, tienen a 12 como el MCD, nada que ver con la mitad).
Gracias por tu ayuda!!
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 Gabi
Val: 6
Ha disminuido su posición en 20 puestos en Python (en relación al último mes)
Gráfica de Python

Uso de "True" and "False"

Publicado por Gabi (2 intervenciones) el 12/10/2020 23:50:33
Hola!
Perdón que use este medio pero necesito una ayuda con mi código.

También estoy aprendiendo a programar en python y estoy tratando de usar el tipo booleano, True y False. Trato de hacer como una historia para practicar. Les mando el código que armé:

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
x = input('Hola, querés ser mi amigo?\n')
si = True
no = False
 
if x:
    y = input(print('Buenísimo! Cómo te llamas?\n'))
    print(f'Hola, {y.title()}! Gracias por ser mi amigo, me haces muy feliz!')
    z = int(input('Cuántos años tenes?\n'))
    print(f'Wau, que genial! Yo tengo 1 minuto de vida.')
    cuenta = input('Haré un raciocínio lógico, queres escuchar?\n')
    si = True
    no = False
 
    if cuenta is True:
        correcto = input(f'Tenes {z} años, entonces naciste en {2020 - z}, correcto?\n')
        si = True
        no = False
        if correcto is True:
            print('Yaaaayy!')
        else:
            print('Bueno, la próxima vez lo haré bien seguro!')
 
    else:
        print('Bueno, está bien!')
else:
    print('Bueno, hasta otro momento.')

La idea era que al principio, si digo que No, me direccione al final y termine el código; Pero terminó que si digo que sí o que no me sigue la historia igual, no sé que pude haber hecho mal.... Me pueden 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