我是Python的新手,并且通常是编码人员,我正在尝试编写一个程序,允许您使用乌龟图形进行绘制,这是我的代码:
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()
当我当前运行它时,它说UnboundLocalError:分配前引用了本地变量'settingsText'。我该如何解决?我读过其他文章,指出如果您已经在其他地方或其他地方分配了变量,则无法在本地作用域内分配变量(Whats a scope?)。不过,这没有任何意义,我在开始时分配了变量,然后在if循环的末尾给了它一个新的赋值,以便下次播放循环时,它表示不同的内容。任何帮助将不胜感激!
-英雄
答案 0 :(得分:0)
在使用变量之前,应先调用.video-container {
position: absolute;
top: 0;
bottom: 0;
width: 100%;
height: 100%;
overflow: hidden;
object-fit: fill;
}
.video-container video {
min-width: 100%;
min-height: 100%;
width: auto;
height: auto;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
:
global
使用global settingsText
settingsMenu = input(settingsText)
之类的变量也会遇到同样的问题。
答案 1 :(得分:0)
问题似乎出在线路上
settingsMenu = input(settingsText)
使用后,您将声明全局设置文本。它将不起作用。您应在使用全局变量之前声明它们,否则它将被视为局部变量。
尝试在函数顶部将所有需要的变量设置为全局变量。这样,您将一起看到所有这些内容。
此外,尽量不要使用全局变量。这被认为是不好的做法,并且在大多数情况下具有简单的解决方法。