Je suis nouveau à Python et au codage en général, et j'essaie d'écrire un programme qui vous permet de dessiner en utilisant des graphiques de tortue, voici mon code :
import turtle
# Setup
bot = turtle.Turtle()
bot.speed(5)
bot.color("black")
x = 1
color = "black"
speed = 5
length = 20
visibility = "true"
inputText = '''Choose an option:
A) Forward
B) Backward
C) Left
D) Right
E) Settings
F) Exit
> '''
settingsText = "Choose a setting: \nA) Color: " + str(color) + "\nB) Speed: " + str(speed) + "\nC) Length: " + str(length) + "\nD) Visibility: " + str(visibility) + "\n> "
def main():
while x == 1:
mainMenu = input(inputText)
if mainMenu == "A":
bot.forward(length)
elif mainMenu == "B":
bot.backward(length)
elif mainMenu == "C":
bot.left(90)
elif mainMenu == "D":
bot.right(90)
elif mainMenu == "E":
while x == 1:
settingsMenu = input(settingsText)
global settingsText
if settingsMenu == "A":
color = input("What color should the bot write with?")
bot.color(color)
if settingsMenu == "B":
speed = input("How fast should the bot move?")
bot.speed(speed)
if settingsMenu == "C":
length = input("How far should the bot move each time?")
if settingsMenu == "D":
visibility = input("Should the bot be visible?")
if visibility == "true":
bot.showturtle()
if visibility == "false":
bot.hideturtle()
if settingsMenu == "E":
break
settingsText = "Choose a setting: \nA) Color: " + str(color) + "\nB) Speed: " + str(speed) + "\nC) Length: " + str(length) + "\nD) Visibility: " + str(visibility)
elif mainMenu == "F":
break
main()
Lorsque je l'exécute, le message suivant apparaît : UnboundLocalError : local variable 'settingsText' referenced before assignment. Comment puis-je corriger ce problème ? J'ai lu d'autres messages qui disaient que l'on ne pouvait pas assigner une variable à l'intérieur de la portée locale (qu'est-ce qu'une portée ??) si elle avait déjà été assignée ailleurs ou quelque chose comme ça. Cela n'a aucun sens, j'affecte la variable au début, puis je lui donne une nouvelle affectation à la fin d'une boucle if pour que la prochaine fois que la boucle est jouée, elle dise quelque chose de différent. Toute aide serait appréciée !
-Hero