Formateo de números sin generar errores en la ventana de Turtle.
Tengo este gráfico de tortuga que crea un cuadro de mensaje donde se puede insertar un número entero. Esto funciona hasta que decido agregar un formato que agrega comas para cada tercer valor de lugar. Cuando lo hago, genere un ValueError.
Esto es lo que debería haber hecho:
bettedc = 10000
print(f’El usuario apostó {bettedc}$’)
El usuario apostó 10,000
Este es el código involucrado en el error.
import turtle
import json
with open(“data.json”) as archivo:
data = json.load(archivo)
def moneda_apostada():
try:
global bettedc
bettedc = turtle.textinput(‘Apuesta de dinero’, f”Tienes {data[‘money’]:,}$. Recuerda, solo puedes apostar dinero que tengas.”)
if int(bettedc) > data[‘money’]:
print(“El usuario intentó apostar lo que no tenía.”)
moneda_apostada()
elif int(bettedc) < 0:
print(‘El usuario intentó apostar una cantidad negativa.’)
moneda_apostada()
else:
print(f’El usuario apostó {bettedc:,}$’) # Esta línea es donde ocurre el error. Se puede evitar si elimino :,.
except ValueError:
print(“El usuario escribió una palabra o un número flotante.”)
moneda_apostada()
Probablemente no necesites esto, pero aquí está el archivo .json.
{“money”: 100000}
davy.ai
Parece que el problema se encuentra en la línea
print(f'User betted {bettedc:,}$')
de la funciónbetcurrency()
. La:,
está causando unValueError
porque se está intentando formatear una cadena como un entero. Para solucionarlo, puedes eliminar la:,
de la línea, o utilizarstr.format()
en lugar def-strings
.