python - 我的代码在 Python 中没有给我预期的结果
问题描述
(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: "))
它应该显示向上箭头或向下箭头,具体取决于键入的数字是高于还是低于秘密数字,但它会跳过箭头并直接返回输入框。
解决方案
the If clauses after the while loop are not correctly indented, your while loop is just
while user_number != secret_number:
user_number = int(input("Choose a number between 1 and 10: "))
and the only way to get out of the loop is to get the secret number correct - at which point the if statement is true, checkmark() is run and the program ends
To fix the error, just indent the if and else clauses.
推荐阅读
- android - 用户以某种方式访问免费版中的专业版功能
- powerapps - MS Powerapps:Forall 与 Office365.SendEmail 结合使用
- javascript - 物化标签在 Laravel 中不起作用
- ios - 如何让 SnapKit 约束左右边缘?
- json - 是否可以使用 Python 在 JSON 中将日期写为 DateTime 格式而不将其转换为字符串
- python - Tensorflow: Tensor to numpy array conversion without running any session
- push-notification - 带有冒号 (:) 的 FCM 令牌在 Azure NH 中返回错误请求
- c++ - 按下一个产生中断的按钮即可调用多个函数
- java - Java Util SQL Parser 为正确的语句引发异常
- javascript - 单击事件后,React 不会从多个来源更新状态