【问题标题】:Onkey function in Python Turtle not working for my inputPython Turtle 中的 Onkey 函数不适用于我的输入
【发布时间】:2017-12-05 23:50:15
【问题描述】:

以前在我的程序中,我使用控制台中的输入让玩家输入猜测,但现在我想在 Python 3.6.1 Turtle 中使用 onkey() 函数。我希望它检测玩家是否按下任何键,然后制作一个字符串,上面写着“guess='a'”。我想要这样的东西:

import turtle

canvas=turtle.Screen()
t=turtle.Pen()
guess=0

def a():
    guess='a'

canvas.onkey(a,'a')
canvas.listen()

显然,为字母表中的每个字母定义了另一个函数。 然而在此之后,当按下'a'并输入'print(guess)'时,它不会打印'a'。

【问题讨论】:

  • 你的问题有太多不相关的代码。另一方面,它是不完整的。 canvas 是什么?你是怎么定义的?请发布 MCVE stackoverflow.com/help/mcve
  • 我已经更改了帖子。抱歉给您带来不便

标签: python turtle-graphics


【解决方案1】:

简短的回答是您在a() 函数中忘记了global 语句,因此它对guess 的引用是本地的,而不是全局的。这是一个示例实现:

import turtle

def a():
    global guess
    guess += 'a'

def b():
    global guess
    guess += 'b'

def question():
    print(guess)

guess = ''

canvas = turtle.Screen()

canvas.onkey(a, 'a')
canvas.onkey(b, 'b')
canvas.onkey(question, '?')

canvas.listen()

canvas.mainloop()

您可以随意输入“a”和“b”——当您输入“?”时你建立的字符串将被打印出来。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    • 2015-12-02
    • 2022-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    相关资源
    最近更新 更多