Python - Ejercicio Python Ayuda!

 
Vista:
sin imagen de perfil

Ejercicio Python Ayuda!

Publicado por Ernesto (3 intervenciones) el 04/06/2018 16:10:54
Hola, tengo un problema con un ejercicio asignado, ya que soy nuevo en programación en Python, y es sobre todo en la parte de las pistas, ya que según se nos ha dicho se puede hacer con "for i in range(len(palabra)):
....palabra[i]"

El ejercicio es el siguiente:
Realiza un programa en python que seleccione al azar una palabra de la lista palabras = ["rojo", "amarillo", "verde", "azul", "negro", "gris", "naranja", "blanco"].

El programa preguntará al usuario la palabra que ha "pensado".

Si la palabra del usuario coincide con la que ha "pensado" el programa se acaba el juego.

Se acaba el juego si el usuario introduce "me rindo" como palabra clave.

No debe tenerse en cuenta las mayúsculas ni las minúsculas a la hora de escribir una palabra.

Si no el programa da pistas al usuario indicando que letras están en la palabra pensada pero en otro lugar y que letras están en la palabra en el mismo lugar.

Y el código que he realizado es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import random
palabras = ["rojo", "amarillo", "verde", "azul", "negro", "gris", "naranja", "blanco"]
ordenador = random.choice(palabras)
print(ordenador)
palabra= input("Introduzca un color de los siguientes: rojo, amarillo, verde, azul. negro, gris, naranja, blanco: " )
palabra = palabra.lower()
if palabra == ordenador:
    print("Has acertado")
if palabra.lower() == "me rindo":
    print("Has perdido")
else:
    while palabra != ordenador:
        palabra = input("Sigue intentandolo: ")
        if palabra.lower() == "me rindo":
            print("Has perdido")
            break
        if palabra.lower() == ordenador:
            print("Has acertado")
for i in range(len(palabra)):
    palabra[i]
Pero ya a partir de ahí no se continuar, si es posible ayudenme
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
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ejercicio Python Ayuda!

Publicado por xve (1646 intervenciones) el 04/06/2018 18:28:57
Hola Ernesto, he probado tu código y funciona perfectamente... lo único que no funciona es el ultimo for (el que esta en negrita), que no se exactamente lo que quieres hacer...

Si nos puedes comentar con mas detalle que parte te falta o no funciona...
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

Ejercicio Python Ayuda!

Publicado por Ernesto (3 intervenciones) el 04/06/2018 20:01:39
Pues es que no sé que la parte de programa da pistas al usuario indicando que letras están en la palabra pensada pero en otro lugar y que letras están en la palabra en el mismo lugar. que es que tampoco se nos ha dado más información, supongo que es algo como que dices rojo pero la respuesta es amarillo y te indica que si contiene la letra "o"
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.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ejercicio Python Ayuda!

Publicado por tincopasan (1082 intervenciones) el 04/06/2018 21:28:56
Creo entender que estás buscando.
modifique un poco el lugar en el que te falta el 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
37
38
39
40
41
42
43
44
# -*- coding: utf -8 -*-
import random
palabras = ["rojo", "amarillo", "verde", "azul", "negro", "gris", "naranja", "blanco"]
ordenador = random.choice(palabras)
 
 
print(ordenador)
 
palabra= input("Introduzca un color de los siguientes: rojo, amarillo, verde, azul. negro, gris, naranja, blanco: " )
 
palabra = palabra.lower()
if palabra == ordenador:
    print("Has acertado")
 
if palabra.lower() == "me rindo":
    print("Has perdido")
 
 
else:
    while palabra != ordenador:
        aciertos=0
        coincidencias=0
        largo1= len(palabra)
        largo2= len(ordenador)
        if largo1  <= largo2:
            for i in range(len(palabra)):
                if palabra[i] == ordenador[i]:
                    aciertos = aciertos + 1
                elif palabra[i] in ordenador:
                    coincidencias = coincidencias + 1
            print ("Tu palabra tiene {} aciertos y {} coincidencias".format(aciertos, coincidencias ))
        elif largo1 >= largo2:
            for i in range(len(ordenador)):
                if ordenador[i] == palabra[i]:
                    aciertos = aciertos + 1
                elif ordenador[i] in palabra:
                    coincidencias = coincidencias + 1
            print ("Tu palabra tiene {} aciertos y {} coincidencias".format(aciertos, coincidencias ))
        palabra = input("Sigue intentandolo: ")
        if palabra.lower() == "me rindo":
            print("Has perdido")
            break
        if palabra.lower() == ordenador:
            print("Has acertado")

se puede hacer de varias maneras por supuesto, pero elegí ésta porque seguramente no necesita nada de explicación.

Sino era esto, perdón y cualquier cosa comentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Ejercicio Python Ayuda!

Publicado por Ernesto (3 intervenciones) el 04/06/2018 21:38:52
Muchas gracias en serio, en cualquier caso mañana preguntaré al profesor (estos son algunos retos que nos dice para que practiquemos) y que si puede que aclare un poco más el apartado de las pistas
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