Haber quien me hecha una mano, seguro que esta hecho una mier**

Código: Seleccionar todo

#Calcular la letra del DNI
#Aprender bastante ;)
#Bien,como siempre,primero creamos la funcion, recordar que python al dividir un 
#numero siempre nos lo devuelve sin decimales, aun no se como obtener los decimales
#pero no lo necesitamso por ahora
#La funcion

def calcular(numero):
  operando = numero/23*23
  valor = numero-operando
  
#Para calcular el dni la formula es, "Divida su numero de DNI entre 23 y quite 
#los decimales.Este numero multiplicalo por 23. 
#Resta tu numero de DNI al ultimo resultado y esa diferencia indicara la letra
#
print """
 ------------ CALCULAR LETRA DNI ----------
 """
elegir = input("Tu numero es")

if calcular(elegir) == 0
    print "La letra es T"
elif calcular(elegir) == 1
    print "La letra es R"
elif calcular(elegir) == 2
    print "La letra es W"
elif calcular(elegir) == 3
    print "La letra es A"
elif calcular(elegir) == 4
    print "La letra es G"
elif calcular(elegir) == 5
    print "La letra es M"
elif calcular(elegir) == 6
    print "La letra es Y"
elif calcular(elegir) == 7
    print "La letra es F"
elif calcular(elegir) == 8
    print "La letra es P"
elif calcular(elegir) == 9
    print "La letra es D"
elif calcular(elegir) == 10
    print "La letra es X"
elif calcular(elegir) == 11
    print "La letra es B"
elif calcular(elegir) == 12
    print "La letra es N"
elif calcular(elegir) == 13
    print "La letra es J"
elif calcular(elegir) == 14
    print "La letra es Z"
elif calcular(elegir) == 15
    print "La letra es S"
elif calcular(elegir) == 16
    print "La letra es Q"
elif calcular(elegir) == 17
    print "La letra es V"
elif calcular(elegir) == 18
    print "La letra es H"
elif calcular(elegir) == 19
    print "La letra es L"
elif calcular(elegir) == 20
    print "La letra es C"
elif calcular(elegir) == 21
    print "La letra es K"
elif calcular(elegir) == 22
    print "La letra es E"
else
print "Introduzca el numero correctamente"
el error es que no tienes ni fucking idea de lo que estas haciendo...por eso, te repito, debería tener claro, y a ser posible "por escrito", lo que quieres que haga tu programa , si hubieras escrito "tengo que calcular el resto de dividir dni / 23, buscarías en la documentación de python y verías que hacer una función que devuelve el resto de la división

1ro : no entiendo la formula del dni, si primero divides por un numero y el resultado lo multiplicas por ese mismo numero, te quedas igual


A parte : por que calculas tantas veces el valor? con que lo calcules una es suficiente , y las letras... con que tengas una lista con todas las letras en el orden apropiado, es mas que suficiente... no necesitas esa locura.... como mucho, evaluar para que no se le pire la pinza y produzca un desbordamiento a la hora de sacar la informacion de la lista.

Te recomiendo que agarres python de 0 y preguntas tus dudas de un comienzo a medida que salgan!
<Josh> y bueno hermano,tu hermana q me dijo q estaba cansada de tenerle el orto como la bandera de japon y bueno la pobre me quizo hacer un masaje prostatico nada mas pero era tanto su recelo y venganza acumulada q se esmero un poco mas de lo normal,pero bue,estuivo bien amorizado por la de dias horas años y lagrimas q echo la pobre de tanto culearla
Seguire tus consejos, muchas gracias ^^
metete al chat que te ayudo por ahi online ahora !


Bueno loco a ver te lo hice y te explico tu error y lo que tenias que hacer:la funciono no tenia no retornaba valor , al leer un dato de una linea de comandos lees string si quieres hacer operaciones matematicas debes convertirlo a int , y la operacion que haces podria ser mas sencilla, en el fondo lo que hace es calcular un resto osea que podrias reemplzar todo el contenido de la funciono por return numero%23.



Código: Seleccionar todo

1.#Calcular la letra del DNI
2.#Aprender bastante ;)
3.#Bien,como siempre,primero creamos la funcion, recordar que python al dividir un 
4.#numero siempre nos lo devuelve sin decimales, aun no se como obtener los decimales
5.#pero no lo necesitamso por ahora
6.#La funcion
7. 
8.def calcular(numero):
9.  return numero%23
10.  
11.#Para calcular el dni la formula es, "Divida su numero de DNI entre 23 y quite 
12.#los decimales.Este numero multiplicalo por 23. 
13.#Resta tu numero de DNI al ultimo resultado y esa diferencia indicara la letra
14.#
15.print """
16.------------ CALCULAR LETRA DNI ----------
17."""
18.elegir = int(raw_input("Tu numero es"))
19. 
20.if calcular(elegir) == 0:
21.    print "La letra es T"
22.elif calcular(elegir) == 1:
23.    print "La letra es R"
24.elif calcular(elegir) == 2:
25.    print "La letra es W"
26.elif calcular(elegir) == 3:
27.    print "La letra es A"
28.elif calcular(elegir) == 4:
29.    print "La letra es G"
30.elif calcular(elegir) == 5:
31.    print "La letra es M"
32.elif calcular(elegir) == 6:
33.    print "La letra es Y"
34.elif calcular(elegir) == 7:
35.    print "La letra es F"
36.elif calcular(elegir) == 8:
37.    print "La letra es P"
38.elif calcular(elegir) == 9:
39.    print "La letra es D"
40.elif calcular(elegir) == 10:
41.    print "La letra es X"
42.elif calcular(elegir) == 11:
43.    print "La letra es B"
44.elif calcular(elegir) == 12:
45.    print "La letra es N"
46.elif calcular(elegir) == 13:
47.    print "La letra es J"
48.elif calcular(elegir) == 14:
49.    print "La letra es Z"
50.elif calcular(elegir) == 15:
51.    print "La letra es S"
52.elif calcular(elegir) == 16:
53.    print "La letra es Q"
54.elif calcular(elegir) == 17:
55.    print "La letra es V"
56.elif calcular(elegir) == 18:
57.    print "La letra es H"
58.elif calcular(elegir) == 19:
59.    print "La letra es L"
60.elif calcular(elegir) == 20:
61.    print "La letra es C"
62.elif calcular(elegir) == 21:
63.    print "La letra es K"
64.elif calcular(elegir) == 22:
65.    print "La letra es E"
66.else:
67.    print "Introduzca el numero correctamente"
Cuando te pregunte el numero ingresalo sin puntos, fijate que al leer el numero agregue la funcion int , para convertir el string que lee a un entero

Probalo y me contas .
<Josh> y bueno hermano,tu hermana q me dijo q estaba cansada de tenerle el orto como la bandera de japon y bueno la pobre me quizo hacer un masaje prostatico nada mas pero era tanto su recelo y venganza acumulada q se esmero un poco mas de lo normal,pero bue,estuivo bien amorizado por la de dias horas años y lagrimas q echo la pobre de tanto culearla
Muchas gracias, he estudiado tu codigo ^^ para la proxima ya lo tengo sabido

[Enlace externo eliminado para invitados] ... ut-603872/

Saludos y gracias, dejo el codigo limpio para el que lo quiera leer rapido:

Código: Seleccionar todo

#Por ps1c0s1s
#La funcion

def calcular(numero):
   return numero%23
 
#Pantalla
print """
------------ CALCULAR LETRA DNI ----------
"""
elegir = int(raw_input("Tu numero es:"))

if calcular(elegir) == 0:
    print "La letra es T"
elif calcular(elegir) == 1:
    print "La letra es R"
elif calcular(elegir) == 2:
    print "La letra es W"
elif calcular(elegir) == 3:
    print "La letra es A"
elif calcular(elegir) == 4:
    print "La letra es G"
elif calcular(elegir) == 5:
    print "La letra es M"
elif calcular(elegir) == 6:
    print "La letra es Y"
elif calcular(elegir) == 7:
    print "La letra es F"
elif calcular(elegir) == 8:
    print "La letra es P"
elif calcular(elegir) == 9:
    print "La letra es D"
elif calcular(elegir) == 10:
    print "La letra es X"
elif calcular(elegir) == 11:
    print "La letra es B"
elif calcular(elegir) == 12:
    print "La letra es N"
elif calcular(elegir) == 13:
    print "La letra es J"
elif calcular(elegir) == 14:
    print "La letra es Z"
elif calcular(elegir) == 15:
    print "La letra es S"
elif calcular(elegir) == 16:
    print "La letra es Q"
elif calcular(elegir) == 17:
    print "La letra es V"
elif calcular(elegir) == 18:
    print "La letra es H"
elif calcular(elegir) == 19:
    print "La letra es L"
elif calcular(elegir) == 20:
    print "La letra es C"
elif calcular(elegir) == 21:
    print "La letra es K"
elif calcular(elegir) == 22:
    print "La letra es E"
else:
    print "Introduzca el numero correctamente"
Cerrado

Volver a “Python”