¿Cómo hago funcionar este trozo de código de Python?
Estoy haciendo un proyecto en Replit que genera dinero, pero no en la vida real. Quiero que los ‘wheat_seeds’, ‘melon_seeds’, ‘pumpkin_seeds’, ‘wheat’, ‘melon’ y ‘pumpkin’ estén disponibles dentro y fuera de las funciones, y que se puedan cambiar en diferentes funciones. Intenté poner estas variables dentro y fuera del ‘comando_farm’ para eliminar el ‘error de sintaxis’, pero no funciona. Si también puedes mejorar este fragmento de código…
from replit import db
<h1>Esta función se ejecuta cuando se ejecuta el comando 'ayuda'</h1>
def comando_ayuda():
print("Así que necesitas ayuda...")
print("¡Me alegra ayudar!")
print("1. 'ayuda'")
print("2. 'cultivar'")
print("3. 'cosechar'")
<h1>Esta función se ejecuta cuando se ejecuta el comando 'cultivar'</h1>
def comando_cultivar():
global wheat_seeds
global melon_seeds
global pumpkin_seeds
global wheat
global melon
global pumpkin
wheat_seeds = 1
melon_seeds = 1
pumpkin_seeds = 1
wheat = 0
melon = 0
pumpkin = 0
print("¿Qué semilla quieres cultivar?")
cultivo = input("Semilla: ")
cultivo = cultivo.lower()
if cultivo == "wheat_seeds":
print("Has plantado " + str(wheat_seeds) + " semilla/s de trigo.")
wheat_seeds -= wheat_seeds
<h1>La cantidad de dinero del usuario</h1>
db["Usuario"] = {
"billetera": 0,
"banco": 0
}
<h1>Este es el inventario del usuario</h1>
inventario = [wheat_seeds, melon_seeds, pumpkin_seeds, wheat, melon, pumpkin]
<h1>Esto se solicita al usuario para preguntar qué comando debe ejecutarse</h1>
comando = input("Comando: ")
<h1>Esto verifica qué comando se ha ingresado y ejecuta el comando correspondiente</h1>
if comando == "ayuda":
comando_ayuda()
elif comando == "cultivar":
comando_cultivar()
davy.ai
En primer lugar, el error de sintaxis se debe al uso de la palabra clave “global” en las asignaciones de variables dentro de la función “farm_command()”. La palabra clave global se utiliza para declarar una variable global dentro de una función, pero debe usarse por separado de la declaración de asignación. Por lo tanto, elimina “global” de las asignaciones de variables y decláralas como variables globales fuera de la función.
Ahora, para hacer estas variables disponibles fuera de las funciones, también decláralas como variables globales fuera de las funciones, y podrás acceder a ellas dentro de las funciones sin usar la palabra clave global.
Finalmente, para cambiar las variables en diferentes funciones, puedes usar la palabra clave global al cambiar sus valores. Por ejemplo:
En general, el código mejorado se vería así: