(Codehs内置了Turtle) 我正在使用codehs.com在学校上课,目前正在研究乌龟图形。这些简单的if / elif / else语句无法正确响应输入的数字。如果用户号在密码(4)上方,则应该绘制一个向下箭头;如果密码在密码的下方,则应该绘制一个向上箭头。当用户输入的数字不是密码时,它会显示一个箭头,并再次为用户打开输入。如果正确猜中该数字,它将显示一个复选标记。
我尝试研究我的问题,但找不到与我的特定问题相关的任何东西。
user_number = int(input("Choose a number between 1 and 10: "))
secret_number = 4
def checkmark():
color("green")
pensize(8)
penup()
left(45)
forward(50)
pendown()
backward(50)
left(90)
forward(25)
def down_arrow():
penup()
setposition(0,-25)
pendown()
left(90)
forward(50)
right(45)
backward(25)
forward(25)
left(90)
backward(25)
def up_arrow():
penup()
setposition(0,25)
pendown()
right(90)
forward(50)
right(45)
backward(25)
forward(25)
left(90)
backward(25)
while user_number != secret_number:
user_number = int(input("Choose a number between 1 and 10: "))
if user_number ==secret_number:
checkmark()
elif user_number < secret_number:
up_arrow()
user_number = int(input("Choose a number between 1 and 10: "))
else:
down_arrow()
user_number = int(input("Choose a number between 1 and 10: "))
根据键入的数字是高于还是低于密码,它应该显示向上箭头或向下箭头,但是它会跳过箭头,而直接返回到输入框。
答案 0 :(得分:1)
while循环后的If子句没有正确缩进,您的while循环只是
while user_number != secret_number:
user_number = int(input("Choose a number between 1 and 10: "))
摆脱循环的唯一方法是正确设置密码-此时if语句为true,运行checkmark()并结束程序
要解决该错误,只需缩进if和else子句。