for循环 - 迭代还是不迭代?

时间:2016-01-03 12:47:29

标签: python loops for-loop printf line

我正在使用Python编写一个基于一组特定指令的刽子手游戏。我特别需要使用for循环来替换单词中的所有字母和下划线,事实上我正在成功地这样做。但是我有一个小问题,我在我的单词中为每个字母打印了一行新的下划线。有没有办法摆脱这个?有人可以指导我的逻辑有什么问题吗?

word = "test"

def createBlank(word):
    for letter in word:
        blanks = '_' * len(word)
        print(blanks)

我的结果如您所愿:

>>> word
'test'
>>> createBlank(word)
____ #<- only need this line to be printed.. is it even possible using a for?
____
____
____

2 个答案:

答案 0 :(得分:2)

您正在重复打印import B.framework blanks中的字符数。只需将word移到print(blanks)循环之外:

for

<强>样本:

word = "test"

def createBlank(word):
    for letter in word:
            blanks = '_' * len(word)
    print(blanks)

但为什么需要>>> createBlank(word) ____ 循环打印下划线时间for len,您可以这样做:

word

答案 1 :(得分:0)

实际上你正在使用这个&#34; * len(字)&#34;这是错误的,因为它在一个循环中运行,因此它将多次打印

试试这个

word = "test"

def createBlank(word):
    for letter in word:
        blanks = '_'
        print blanks,

这样它运行得更好

from __future__ import print_function # needs to be first statement in file
word = "test"

def createBlank(word):
    for letter in word:
        print('_', end='')
createBlank(word)