使用for循环遍历字符串

时间:2014-03-13 03:47:41

标签: python string loops

我尝试使用单个for循环在字符串上循环以将其打印出来,如下所示:

     s u p e r n a t u r a l
     u p e r n a t u r a l s
     p e r n a t u r a l s u

到目前为止,这是我的代码:

   def main():
       first_Name = "s u p e r n a t u r a l"
       print(first_Name)
       for i in range(len(first_Name)):
           print(first_Name[i])


main()

5 个答案:

答案 0 :(得分:1)

我有4行:

li = list('supernatural')
for c in li:
    print ''.join(li)
    li.append(li.pop(0))

答案 1 :(得分:0)

In [11]:

S='s u p e r n a t u r a l'
SL=S.split(' ')
for i in range(len(S)-S.count(' ')):
    print ' '.join(SL[i:]+SL[:i])
s u p e r n a t u r a l
u p e r n a t u r a l s
p e r n a t u r a l s u
e r n a t u r a l s u p
r n a t u r a l s u p e
n a t u r a l s u p e r
a t u r a l s u p e r n
t u r a l s u p e r n a
u r a l s u p e r n a t
r a l s u p e r n a t u
a l s u p e r n a t u r
l s u p e r n a t u r a

答案 2 :(得分:0)

多么巧合,我在咨询工作中早些时候做了同样的事情!但是说真的,为了让你开始做作业,这里有一些想法:

>>> print first_Name[0:] + ' ' + first_Name[:0]
s u p e r n a t u r a l
>>> print first_Name[1:] + ' ' + first_Name[:1]
 u p e r n a t u r a l s
>>> print first_Name[2:] + ' ' + first_Name[:2]
u p e r n a t u r a l s

看起来很有希望,至少是偶数......

如何迭代偶数?

>>> help(range)

step是你的朋友。

>>> range(0, len(first_Name), 2)
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22]

我打赌你可以(并且应该)弄清楚剩下的。

答案 3 :(得分:0)

一种简单的方法:

#!/usr/bin/env python

def rshift(s, i):
    i = i % len(s)
    return s[-i:] + s[0:-i]

if __name__ == '__main__':
    s = "12345"
    for i in range(len(s)):
        print rshift(s, -i)

答案 4 :(得分:0)

对我来说,这是为了一个deque

import collections
d = collections.deque('supernatural')
for _ in range(len(d)):
    print(' '.join(d))
    d.rotate(-1)

打印出来:

s u p e r n a t u r a l
u p e r n a t u r a l s
p e r n a t u r a l s u
e r n a t u r a l s u p
r n a t u r a l s u p e
n a t u r a l s u p e r
a t u r a l s u p e r n
t u r a l s u p e r n a
u r a l s u p e r n a t
r a l s u p e r n a t u
a l s u p e r n a t u r
l s u p e r n a t u r a