簡體   English   中英

在循環中逐個字符地遍歷字符串

[英]Iterating through a string character by character in a loop

所以我在 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' 放入其中以遍歷每個字符串的索引。 因此,如果我輸入“蜜蜂”,它只會在我單擊的窗口中繪制 3 次“e”,而不是按順序繪制 b、e、e。

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

但是請注意,這里很可能所有字符都將呈現在彼此之上。 您可能希望在迭代之間“休眠”,以便給用戶一些時間來移動鼠標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM