Python中的字母回文三角形

2024-10-02 22:23:32 发布

您现在位置:Python中文网/ 问答频道 /正文

这个词是“赛车”,这是我应该说的三角形获取:-在

   e
  cec 
 aceca
racecar

我使用的是python2.7 我试着用for循环。非常感谢。 这是我得到的输出

^{pr2}$

我找到了中间值并试着打印出来。但是我得到的输出总是在开头有e。我无法得到e之前和e之后的字母表来打印。在

m="racecar"
mid=len(m)/2

for i in range(0,5):
    for k in range(0,i):
        print m[mid-k],
    for j in range(i,0,-1):
        print m[mid-j],

    print

我试了很多次,但不知怎么的,我没有得到正确的输出顺序。在


Tags: inforlen顺序range字母表printcec
1条回答
网友
1楼 · 发布于 2024-10-02 22:23:32

我推荐KISS它。用一些绝地绝地伎俩你就能做到:

def isItAPalindrome( wordPalindrome ):

    wordLengh = len( wordPalindrome )

    if wordLengh % 2 != 0 and wordLengh:

        return True

    return False

import sys
wordPalindrome = "racecar"

if not isItAPalindrome( wordPalindrome ):

    sys.exit()

middlePoint = len( wordPalindrome )/2

for currentRange in range( 0, middlePoint + 1 ):

    # print empty spaces
    for k in range( 0, middlePoint - currentRange ):

        # print without new line
        sys.stdout.write( " " )

    # print the Palindrome "racecar"
    for k in range( middlePoint - currentRange, middlePoint + currentRange + 1 ):

        sys.stdout.write( wordPalindrome[ k ] )

    # print new line
    sys.stdout.write( "\n" )

输出示例:

^{2}$

参考文献:

  1. How do I abort the execution of a Python script?
  2. Python: avoid new line with print command

相关问题 更多 >