对角打印一个单词?

时间:2016-10-08 23:37:53

标签: python python-2.7 python-3.x

我是python的新手,所以我试图理解如何对角打印一个单词(从右到左,反之亦然)。

到目前为止,我一直试图通过定义函数在一个函数下编写所有函数。

然后使用for循环并在内部包含if语句,以确定是从右到左= True还是False,但它不起作用,因为我不知道怎么做。

3 个答案:

答案 0 :(得分:5)

从左上角到右下角:

>>> word = 'HelloWorld'
>>> for i in range(len(word)):
...     print ' '*i, word[i]
...
 H
  e
   l
    l
     o
      W
       o
        r
         l
          d

从右下角到左下角:

>>> word_length = len(word)
>>> for i in range(len(word)):
...     print ' '*(word_length-i), word[i]
...
           H
          e
         l
        l
       o
      W
     o
    r
   l
  d

答案 1 :(得分:1)

代码

from __future__ import print_function

word = 'JustATest'

for i in range(len(word)):
    for j in range(len(word)):
        if i == j:
            print(word[i], end="")
        else:
            print(' ', end="")
    print()

输出

J        
 u       
  s      
   t     
    A    
     T   
      e  
       s 
        t

说明

  • 使用python2时,第一个导入用于模仿python3的print-function
    • 此打印允许使用end=""进行打印,而无需在末尾创建换行符
  • 对角线上的Beeing意味着i==j
  • 完成迭代一个维度(在这种情况下:内部维度)需要创建一个新行

答案 2 :(得分:1)

enumerate()在这种情况下效果很好。

>>> for index, char in enumerate('HelloWorld!'):
>>>     print(' ' * index + char)
H
 e
  l
   l
    o
     W
      o
       r
        l
         d
          !