如果已经涵盖了这一点,我事先道歉,但我一直无法找到答案。
我想要一个for循环来生成一个输出,其中每个其他字母前面都有一个空格。应该看起来像这样:
>>>everyOther('banana')
b
a
n
a
n
a
我理解for循环的一般概念,到目前为止我得到了:
def everyOther(word):
for each in word:
print each
产生
w
o
r
d
但我不确定如何选择哪个字母前面有空格。
任何帮助或指示都会非常有帮助。 ^ O ^
答案 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
次迭代,因此速度更快。