In [3]:
line = '赏花归去马如飞'

for i in range(1, len(line)*2):
    if i == 1:
        print((len(line)*2-i)*' '+line[0])
    elif i%2 == 1:
        print((len(line)*2-i)*' '+line[:i//2] + line[i//2] + line[i//2-1::-1])
    else:
        print((len(line)*2-i)*' '+line[:i//2] + line[i//2-1::-1])


             赏
            赏赏
           赏花赏
          赏花花赏
         赏花归花赏
        赏花归归花赏
       赏花归去归花赏
      赏花归去去归花赏
     赏花归去马去归花赏
    赏花归去马马去归花赏
   赏花归去马如马去归花赏
  赏花归去马如如马去归花赏
 赏花归去马如飞如马去归花赏

In [13]:
def plalindrome(line):
    for i in range(1, len(line)*2):
        if i == 1:
            print(' '*(len(line)*2-1) +line[0])
        elif i%2 == 1:
            print(' '*(len(line)*2-i) + line[:i//2] + line[i//2] + line[i//2-1::-1])
        else:
            print(' '*(len(line)*2-i) + line[:i//2] + line[i//2-1::-1])

def main():
    text = '赏花归去马如飞'
    plalindrome(text)
    

if __name__ == '__main__':
    main()


             赏
            赏赏
           赏花赏
          赏花花赏
         赏花归花赏
        赏花归归花赏
       赏花归去归花赏
      赏花归去去归花赏
     赏花归去马去归花赏
    赏花归去马马去归花赏
   赏花归去马如马去归花赏
  赏花归去马如如马去归花赏
 赏花归去马如飞如马去归花赏

In [9]:
#自己定义一个reverse(s)函数,功能返回字符串s的倒序字符串。
def reverse(s):
    s.reverse()
    return s 

s=[1,2,3]
reverse(s)
print(s)


[3, 2, 1]

In [19]:
#写函数,根据给定符号和行数,打印相应直角三角形,等腰三角形及其他形式的三角形。

def right triangle(i):
    for number in i:
        print(i* '@')
        
def isosceles triangle(i):
    for i in range(1, len(line)*2):
        print(' '*(i*2-i) + '@'* i)

        
i=int(input('输入你想要的行数'))
right triangle(i)
isosceles triangle(i)


  File "<ipython-input-19-bc60f528b82c>", line 3
    def right triangle():
                     ^
SyntaxError: invalid syntax

In [20]:
#将任务4中的英语名词单数变复数的函数,尽可能的考虑多种情况,重新进行实现。
line=input('plz input a word')
if line.endswith('x')or line.endswith('ch') or line.endswith('sh') or line.endswith('o'):
    print(line[:len(line)]+'es')
elif line.endswith('y'):
    print(line[:len(line)-1]+'ies')
else:
    print(line[:len(line)]+'s')


plz input a wordboo
booes

In [3]:
#写函数,根据给定符号,上底、下底、高,打印各种梯形。

def trapezoid(s,x,h):
    if s+h==x:
        for i in h:
            print('@'*s)
            s=s+1
    else: 
        for i in h-1:
            print(' '*((x-s)/2)+'@'*n)
            n=n+add
        print('@'*x)
            
        

s=int(input('输入你想要的上底 '))
x=int(input('输入你想要的下底'))
h=int(input('输入你想要的高'))
i=1
n=s
add=int((s-x)/h)
trapezoid(s,x,h)


输入你想要的上底 3
输入你想要的下底5
输入你想要的高1
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-3-e7b57f74934e> in <module>()
     20 n=s
     21 add=int((s-x)/h)
---> 22 trapezoid(s,x,h)

<ipython-input-3-e7b57f74934e> in trapezoid(s, x, h)
      7             s=s+1
      8     else:
----> 9         for i in h-1:
     10             print(' '*((x-s)/2)+'@'*n)
     11             n=n+add

TypeError: 'int' object is not iterable

In [45]:
#写函数,根据给定符号,打印各种菱形。
def plalindrome1(line):
    for i in range(1, len(line)*2):
        if i == 1:
            print(' '*(len(line)*2-1) +line[0])
        elif i%2 == 1:
            print(' '*(len(line)*2-i) + line[:i//2] + line[i//2] + line[i//2-1::-1]+'*'*(i-1))
        else:
            print(' '*(len(line)*2-i) + line[:i//2] + line[i//2-1::-1]+'*'*(i-1))

def plalindrome2(line):
    for i in range(1, len(line)*2-1):
        if i%2 == 0:
            print(' '*i + line[:len(line)-(i//2)] +line[len(line)-(i//2)-1::-1]+'*'*(13-i))
        else :
            print(' '*i + line[:len(line)-((i//2)+1)]  +line[len(line)-(i//2)-1::-1]+'*'*(13-i))
    print(' '*(len(line)*2-1) + line[0] )
    

text1 = '*******'
text2 = '*******'
plalindrome1(text1)
plalindrome2(text2)


             *
            ***
           *****
          *******
         *********
        ***********
       *************
      ***************
     *****************
    *******************
   *********************
  ***********************
 *************************
 *************************
  ***********************
   *********************
    *******************
     *****************
      ***************
       *************
        ***********
         *********
          *******
           *****
            ***
             *

In [36]:
#与本小节任务基本相同,但要求打印回文字符倒三角形。
def plalindrome(line):
    for i in range(1, len(line)*2-1):
        if i%2 == 0:
            print(' '*i + line[:len(line)-(i//2)] +line[len(line)-(i//2)-1::-1])
        else :
            print(' '*i + line[:len(line)-((i//2)+1)]  +line[len(line)-(i//2)-1::-1])
    print(' '*(len(line)*2-1) + line[0] )

def main():
    text = '赏花归去马如飞'
    plalindrome(text)
    

if __name__ == '__main__':
    main()


 赏花归去马如飞如马去归花赏
  赏花归去马如如马去归花赏
   赏花归去马如马去归花赏
    赏花归去马马去归花赏
     赏花归去马去归花赏
      赏花归去去归花赏
       赏花归去归花赏
        赏花归归花赏
         赏花归花赏
          赏花花赏
           赏花赏
            赏赏
             赏

In [18]:



  File "<ipython-input-18-ac90aa3ca72b>", line 6
    print(line[(len(line)*2-i::1) + line[:i//2] + line[i//2] + line[i//2-1::-1])
                             ^
SyntaxError: invalid syntax