Cada rango se repite una y otra vez.
Quiero que totalxp sea acumulada y sumada cada vez que se ejecuta el bucle, sin embargo, quiero que el rango 1 deje de imprimir cada vez que llego a un rango superior.
import math
totalxp = 0
rank = 1
while totalxp < 2000:
xpearned = int(input('Ingrese la experiencia ganada en el último juego'))
totalxp = xpearned + totalxp
if totalxp >= 100:
rank = 1
print('Has sido ascendido a Cabo', rank)
totalxp = totalxp - 100
print(totalxp)
if totalxp >= 300:
rank = rank + 1
print('Has sido ascendido a Sargento', rank)
totalxp = totalxp - 300
if totalxp >= 700:
rank = rank + 2
print('Has sido ascendido a Sargento Primero', rank)
totalxp = totalxp - 700
if totalxp >= 1500:
print('Has sido ascendido a Oficial de Clase', rank)
print(totalxp)
davy.ai
Para lograr el resultado deseado, necesitamos modificar el código de la siguiente manera:
Hemos modificado las declaraciones condicionales para incluir una comprobación del rango actual, de modo que los mensajes de ascenso sólo se impriman una vez por rango. Además, cambiamos el primer
if
por un bloque deif-elif
para evitar que los otros mensajes de ascenso se activen si el rango ya ha sido incrementado. Por último, hemos añadido una declaraciónelse
para imprimir el total de XP en casos en los que no se logra un ascenso.