使用字符串在for循环中的每隔一个字母前添加一个空格

时间:2016-06-04 22:19:45

标签: python for-loop

如果已经涵盖了这一点,我事先道歉,但我一直无法找到答案。

我想要一个for循环来生成一个输出,其中每个其他字母前面都有一个空格。应该看起来像这样:

>>>everyOther('banana')
 b
a
 n
a
 n
a

我理解for循环的一般概念,到目前为止我得到了:

def everyOther(word):
    for each in word:
        print each

产生

 w
 o
 r
 d

但我不确定如何选择哪个字母前面有空格。

任何帮助或指示都会非常有帮助。 ^ O ^

3 个答案:

答案 0 :(得分:1)

您可以使用enumerate()为字符串中的每个字母返回递增索引号,以及字母本身。

然后,您可以使用modulus operator检查该数字是否可被2整除(请记住,它们从0开始)。如果它不能被2整除,请先打印空格以获得所需的输出。

def everyOther(word):
    for index, letter in enumerate(word):
        if index % 2 == 0:
            print letter
        else:
            print " " + letter

以下是一个例子:

In [7]: everyOther("bananas")
 b
a
 n
a
 n
a
 s

答案 1 :(得分:0)

我会尝试这样的事情。它检查字符的索引,如果奇怪,则在前面放置一个空格。否则,它只是打印正常。

def everyOther(word):      
    final=""  
    for i in word:
        index=word.index(i)
        if index%2!=0:
            final+=i
        else:
            print i
    print final

答案 2 :(得分:0)

is_odd = True
for each in word:
    if is_odd: print(' ',) #use print(' ', end="") in py 3.x
    print(each)
    is_odd = not is_odd

使用word.index(i)在列表中迭代所有并减慢速度。因此,如果单词中有n个字母,则会有n**2次迭代。但这种方法只需要n次迭代,因此速度更快。