在循环中逐个字符地遍历字符串
Iterating through a string character by character in a loop
所以我在 Python 3 中使用 Zelle 的图形模块,我正在努力做到这一点,以便用户输入一个词,然后每次他们单击图形 window ,它会在我单击的位置绘制单词的下一个字母。我知道这必须使用字符串索引,但我不确定如何遍历字符串索引,因为将循环变量解析为索引会给出字符串索引必须为整数的错误。
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',它只会在 window 中绘制三次 'e',而不是按顺序绘制 b、e、e。
ch
已经是字符,不需要再下标word_input
:
word_input = input("Enter a word!")
win = GraphWin("Graphic Letters", 400,400)
for <b>ch</b> in word_input:
click_location = win.getMouse()
word_written = Text(click_location, <b>ch</b>)
word_written.draw(win)
一个字符串是它的字符(也是字符串)的可迭代对象,所以如果你写 for ch in word_input
,那么 ch
每次迭代都会将下一个字符作为值,例如:
>>> for ch in 'foobar':
... print(ch)
...
f
o
o
b
a
r
但是请注意,这里很可能所有字符都呈现在彼此之上。您可能希望 "sleep" 在迭代之间给用户一些时间来移动鼠标。
所以我在 Python 3 中使用 Zelle 的图形模块,我正在努力做到这一点,以便用户输入一个词,然后每次他们单击图形 window ,它会在我单击的位置绘制单词的下一个字母。我知道这必须使用字符串索引,但我不确定如何遍历字符串索引,因为将循环变量解析为索引会给出字符串索引必须为整数的错误。
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',它只会在 window 中绘制三次 'e',而不是按顺序绘制 b、e、e。
ch
已经是字符,不需要再下标word_input
:
word_input = input("Enter a word!")
win = GraphWin("Graphic Letters", 400,400)
for <b>ch</b> in word_input:
click_location = win.getMouse()
word_written = Text(click_location, <b>ch</b>)
word_written.draw(win)
一个字符串是它的字符(也是字符串)的可迭代对象,所以如果你写 for ch in word_input
,那么 ch
每次迭代都会将下一个字符作为值,例如:
>>> for ch in 'foobar':
... print(ch)
...
f
o
o
b
a
r
但是请注意,这里很可能所有字符都呈现在彼此之上。您可能希望 "sleep" 在迭代之间给用户一些时间来移动鼠标。