因此,我正在Python 3中使用Zelle中的图形模块,并且尝试使之输入用户输入的单词,然后每次在图形窗口中单击时,它都会在该位置绘制单词的下一个字母我点击。我知道这必须使用字符串索引,但是我不确定如何在字符串索引中进行迭代,因为将循环变量解析为索引会产生错误,即字符串索引必须是整数。
word_input = input("Enter a word!")
win = GraphWin("Graphic Letters", 400,400)
for ch in word_input:
click_location = win.getMouse()
word_written = Text(click_location, word_input[1])
word_written.draw(win)
这是我到目前为止的内容,但是我只能将数字解析为
word_input []
,因为它不允许我在其中插入“ ch”以遍历字符串的每个索引。因此,如果我输入“ bee”,它将只在我单击的窗口中绘制3次,而不是按顺序绘制b,e,e。
答案 0 :(得分:1)
ch
已经是字符,因此您不再需要为word_input
下标:
word_input = input("Enter a word!")
win = GraphWin("Graphic Letters", 400,400)
for ch in word_input:
click_location = win.getMouse()
word_written = Text(click_location, ch)
word_written.draw(win)
字符串是字符串的可迭代字符(也是字符串),因此,如果您编写for ch in word_input
,则ch
将在每次迭代中将下一个字符作为值,例如:>
>>> for ch in 'foobar':
... print(ch)
...
f
o
o
b
a
r
但是请注意,这里所有字符很有可能会相互渲染。您可能希望在两次迭代之间“休眠”,以使用户有时间移动鼠标。