# -*- coding: cp1252 -*-
oportunidades = 3
print("Escribe 3 números enteros diferentes y te dire cual de ellos es el mayor")
print("Tienes "+str(oportunidades)+" oportunidades")
print
b = ["primer","segundo","tercer"]
for x in range(0,oportunidades):
a = []
for j in range(0,3):
try:
a.append(int(raw_input("Teclea el "+b[j]+" número ")))
except ValueError:
print "Numero no valido, sera reemplazado por un 0"
a.append(0)
if len(set(a))==len(a):
print "El " + b[a.index(max(a))] + " número es mayor y es "+ str(max(a))
print
print("¡¡ Operación concluida exitosamente !!")
break
else:
print
print("Escribiste dos o mas números iguales")
print("Tienes que escribirlos diferentes")
print("Solo te quedan "),(2-x),("oportunidades")
print
Yo tambien estuve jugando, use listas. Utilize el programa que hicieron y trate de hacerlo igual
Es el mismo programa que hicieron ustedes, nomas que lo hice con for de 0 a 2 la iteracion, en cada for creo/borro una una lista llamada a y que tiene el primer elemento vacio.
Luego procedo nuevmaente a otro for que pide las entradas, observaran que utilizo raw_input() en ves de input(), ya que input() intenta "evaluar" lo ingresado, ejemplo si ingreso 12 + 50 como un numero, se almacenaria 62, con raw input eso entra como un string. De haber un error en la conversion a entero a traves del int() este entra en excepcion y procede a rellenar con un 0 ese lugar. ( podria no poner un print para eso )
Luego reviso que no sean iguales ninguno de los valores de la lista ( estos sigue siendo igual ) y luego en el if utilizo la funcion max que me devuelve el valor maximo de la lista y utilizo el index(x) que me devuelve la posicion del valor maximo o que pongo en x, y luego hago una busqueda en la otra lista donde estan los nombres.
tuve que convertirlos a str para poder concatenarlos en el printf.
Use set() que me da la cantidad de elementos diferentes dentro de la lista y luego compruebo su largo.
set([1,2,3]) ----> [1,2,3]
len(set[1,2,3])) ---> 3
set([2,2,3]) ----> [2,3]
len(set[1,2,3])) ---> 2
O para hacerlo extensible a todos con len(set(a)) == len(a), o en este caso simplemente len(set(a)) == 3
Y eso me diria si ya hay algun duplicado.
Una cosa que no pude hacer por que no se como hacerlo es que ante el error de entrada de poner una letra u algo asi, el for no proceda sino que se quede en el mismo elemento
EDIT: vi que no se puede solo podria hacerlo con un while
Esto lo hace 1 sola ves, sino reemplaza el for por el while oportunidades != 0 y lo va a hacer continuamente.