Python - Resolver examen

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

Resolver examen

Publicado por Jose (17 intervenciones) el 27/11/2018 11:12:02
Hola.
Tengo un examen que no se resolver. ¿Me podeis echar una mano?
Gracias

IMG-20181127-WA0000
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-2
Responder
sin imagen de perfil
Val: 2.635
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Resolver examen

Publicado por tincopasan (780 intervenciones) el 27/11/2018 16:10:58
no me gusta hacer tareas sin ver el mínimo esfuerzo o intento de la otra parte,ahora:
1)
1
Tengo un examen que no se resolver
vas por un exámen y no sabes esto, que es lo más facil, vaya nivel de aprendizaje ¿no sabés resolver nada o hay dudas puntuales?
2)¿cómo se resuelve? como todo, de a una cosa por vez
3)la verdad que el planteo me hace sospechar de la capacidad de los creadores
1
(0 no se considera múltiplo de 3)
me gustaría saber quién lo consideraría
1
Reciba números enteros
pero imprime en formato float ¿para qué?
4)hay muchas formas de hacer esto, sólo haré el punto 1 ,salvo que vea avances de tu parte y realmente necesites ayuda.
1
2
3
4
5
6
7
8
9
while True:
    n=input("Ingrese un número positivo mayor que 0: ")
    if n.isdigit()==False :
        print("¿qué parte de números positivos no se entendió?")
        break
    else:
        if int(n) ==0:
            print("¿qué parte de mayor que 0  no se entendió?")
            break
obvio que falta mucho, pero es el inicio del problema.
5)espera que seguro alguien te hace toda la tarea.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 38
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Resolver examen

Publicado por Jose (17 intervenciones) el 27/11/2018 17:53:43
Hola Tincopasan.
Ante todo, gracias por responder.
Estoy completamente de acuerdo contigo. Quizá no me expliqué bien; no se trata de que alguien ponga el examen resuelto y ya está. Mi problema es encontrar la forma de resolverlo. A ver si me explico:
Al ir introduciendo los digitos, se debe ir creando un número hasta que se corte por introducir 0 o -1. Lo que no se es como (o mejor dicho, donde) crear ese número para luego poder trabajar con el. He intentado crear una lista pero no se como.
Lo que agradeceria que alguien experto me explicara es el procedimiento, es decir, la lógica. Luego ya buscaré yo como lograrlo
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: 2.635
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Resolver examen

Publicado por tincopasan (780 intervenciones) el 27/11/2018 19:24:35
creo que has entendido mal el planteo
introducir números enteros positivos lo entiendo como cualquier número sin analizar cada una de las unidades es decir, 1500 tiene 2 0 pero es un número positivo, se dejará de accionar si el número es con "-" o simplemente 0, eso por un lado
ahora si, con cada número se analizará digito a digito.
Como trabajes los números depende de cada uno, aunque hay dos formas simples, en una lista o como cadena e ir conviertiendo cada digito en entero. por ejemplo:
lista=[1,6,8,9,0] esto sería un número positivo 16890
multiplos3=[3,6,9] para que más si se analiza digito a digito
para i en lista esto sería un iterador para recorrer la lista
si i esta en multiplos3
i agregarlo a lista vacia
así de simple, ahora bien, también se puede obtener el indice que ocupa en la lista y al final mostrar la suma de la lista creada con los múltiplos.
Si escribes un código aunque funcione a medias con gusto te ayudaré, en caso contrario solo puedo orientarte en forma teoríca.
Y como dije antes comienza de a poco, resuelve el paso 1, después vemos el 2 y así sucesivamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 38
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Resolver examen

Publicado por Jose (17 intervenciones) el 28/11/2018 10:28:15
Claro, lo estaba interpretando mal. Entendí que había que meter dígito a dígito hasta que se introdujera un 0 o un -1, de manera que se fuera creando un número.
Haciendo lo que me dijiste, he llegado hasta el apartado 2c. Con rindex, en caso de haber mas de un dígito solo encuentra el primero que haya por la derecha, pero contado por la izda.
Te pongo lo que tengo hasta ahora:

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
while True:
    n=input("Ingrese un número positivo mayor que 0: ")
    if n.isdigit()==False :
        print("¿qué parte de números positivos no se entendió?")
        break
    else:
        if int(n) ==0:
            print("¿qué parte de mayor que 0  no se entendió?")
            break
    print (n)
    contador=0
    digitos=[]
    for digito in n:
      if digito in "369":
          contador=contador+1
      if digito in "3":
            digitos.append(3)
      if digito in "6":
            digitos.append(6)
      if digito in "9":
            digitos.append(9)
    suma_de_los_digitos=sum(digitos)
    print ("El numero", n, "tiene", contador, "multiplos de 3")
    print ("La suma de digitos múltiplos de 3 del numero", n, "es", suma_de_los_digitos)
 
    posicion3=n.rindex("3")
    print ("En el número ", n, "el digito 3 se encuentra en la posición", (posicion3))
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: 38
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Resolver examen

Publicado por Jose (17 intervenciones) el 28/11/2018 10:46:46
Perdona, pero no se subirlo ordenado como hiciste tu
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: 2.635
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Resolver examen

Publicado por tincopasan (780 intervenciones) el 28/11/2018 17:16:31
varias cosas:
1) para subir el código de forma correcta usa "</>" que se encuentra entre los iconos arriba del editor de mensajes
2)guarda con lo que pongo en los print o comentarios, algunos profesores son de mente tan estrecha que no soportan el sarcasmo
3)no sé si no sabés nada de python o tienes problemas en la comprensión de textos
1
en el punto 2 para cada número y "antes" de introducir el siguiente, etc
eso básicamente significa que la mayoría de las operaciones se encuentran dentro del ciclo while , por eso no sé si no entiendes el while o lo que dice, en todo caso presta más atención.
4)estoy aburrido y el código de forma simple es muy fácil así que te muestro hasta el punto 2d
5)si no entiendes algo pregunta, pero intenta ver por que cada cosa, está lo más simple que se me ocurre, seguro hay muchas otras formas.
6)lo que falta intenta desarrollarlo y sino anda sube el código correctamente.
7)intenté dejarlo de forma más correcta para ser evaluado
8)insisto que el planteo del examen me parece muy malo en cuanto a claridad.

Saludos
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
31
32
33
34
35
36
#-*- coding: utf -8 -*-
import os
numeros=[]
while True:
    contador=0
    suma=0
    digitos=[]
    posicion=[]
    lugar=0
    os.system ("cls")
    print("Para terminar ingrese 0 o un número negativo")
    n=input("Ingrese un número positivo mayor que 0: ")
    if n.isdigit()==False :
        print("Ingreso de números terminados")
        break
    elif int(n) ==0 :
        print("Ingreso de números terminados")
        break
    else:          #hasta acá 1
        numeros.append(n)
        n=n[::-1]
        for digito in n:
            if digito in "369":
                contador+=1   #ahora 2a
                suma+=int(digito) #2b
                digitos.append(digito)
                posicion.append(n.index(digito)+1)
        n=n[::-1]         #esto es porque quieren las posiciones de derecha a izquierda, supongo que el último ahora será el primero
        print("el número {} tiene {} dígitos multiplos de 3".format(n,contador))
        print("la suma de los digitos es: ",suma)
        for i in digitos:
            if len(digitos) > 0:
 
                print("el digito {} se encuentra en la posicion {} ". format(digitos[lugar],posicion[lugar]) ) #2c
            lugar+=1
os.system("pause")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 38
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Resolver examen

Publicado por Jose (17 intervenciones) el 28/11/2018 17:42:55
Hola de nuevo.
No te enfades, hombre! Claro que soy novato, es obvio, por eso no se hacerlo. Hace una semana no habia siquiera oido hablar de python (Bueno sí, de los Monty Python, que me encantan, por cierto :-))
Lo que me comentas del while si lo entiendo, y creo que en lo que yo hice funciona así. De donde no sabia pasar ahora es del 2c. Voy a analizar lo que has hecho tu a ver si lo logro entender.
El texto corresponde a un examen que han puesto a otro grupo, yo todavia no lo he tenido. Por eso quiero saber hacerlo, por si a mi grupo nos ponen algo parecido.
Gracias de nuevo
Te pongo lo que he hecho yo hasta ahora:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
while True:
    n=input("Ingrese un número positivo mayor que 0: ")
    if n.isdigit()==False :
        print("¿qué parte de números positivos no se entendió?")
        break
    else:
        if int(n) ==0:
            print("¿qué parte de mayor que 0  no se entendió?")
            break
    print (n)
    contador=0
    digitos=[]
    for digito in n:
      if digito in "369":
          contador=contador+1
      if digito in "3":
            digitos.append(3)
      if digito in "6":
            digitos.append(6)
      if digito in "9":
            digitos.append(9)
    suma_de_los_digitos=sum(digitos)
    print ("El numero", n, "tiene", contador, "multiplos de 3")
    print ("La suma de digitos múltiplos de 3 del numero", n, "es", suma_de_los_digitos)
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