In [20]:
def picture(char):
    print('直角梯形:')
    for i in range(0, len(char)):
        if i==0:
            char[0]==' '
        else:
            print(char[0:i]+char[i])
    print()
    print('-'*30)
    print()
            
    for i in range(1, len(char)+1):
        if i == 1:
            print('等腰梯形:')
            print(' '*(len(char)-i) +char[0]*2)
        else:
            print(' '*(len(char)-i) + char[0:i]*2)


char=input('please enter a str.:')
picture(char)


please enter a str.:123456
直角梯形:
12
123
1234
12345
123456

------------------------------

等腰梯形:
     11
    1212
   123123
  12341234
 1234512345
123456123456

In [86]:
def picture(char):
    print('菱形1:')
    for i in range(1, len(char)+1):
        print(' '*(len(char)-i)+char[0:len(char)])
    print()
    print('-'*30)
    print()
    
    print('菱形2:')
    for i in range(1, len(char)+1):
         print(' '*i+char[0:len(char)])
    print()
    print('-'*30)
    print()  
    
    print('菱形3:')
    if len(char)%2==1:
        for i in range(1, len(char)*2):
            if i==1:
                print(' '*(len(char)-i)+char[0])
            elif 1< i <= len(char):
                print(' '*(len(char)-i)+char[0:i]+char[-i:-1])
            else:
                   print(' '*(i-len(char))+char[0:len(char)-i]+char[i-len(char):-1]) 

char=input('please enter a str.:')
picture(char)


please enter a str.:1234567
菱形1:
      1234567
     1234567
    1234567
   1234567
  1234567
 1234567
1234567

------------------------------

菱形2:
 1234567
  1234567
   1234567
    1234567
     1234567
      1234567
       1234567

------------------------------

菱形3:
      1
     126
    12356
   1234456
  123453456
 12345623456
1234567123456
 12345623456
  123453456
   1234456
    12356
     126
      1

In [3]:
def anti_triple(line):
    for i in range(1, len(line)*2+1):
        if i==len(line)*2-1:
            print(line[0])
        elif i == len(line)*2:
            print('我尽力了,真不知道为啥差一个字OTL')
        elif i%2 == 1 and i<len(line)*2-1:
            print(line[:len(line)-i//2-1]+line[len(line)-i//2-1]+line[len(line)-i//2-2::-1])
        else:
            print(line[:len(line)-i//2] + line[len(line)-i//2-1::-1])
        

line=input('Enter a str.:')
anti_triple(line)


Enter a str.:赏花归去马如飞
赏花归去马如飞如马去归花赏
赏花归去马如如马去归花赏
赏花归去马如马去归花赏
赏花归去马马去归花赏
赏花归去马去归花赏
赏花归去去归花赏
赏花归去归花赏
赏花归归花赏
赏花归花赏
赏花花赏
赏花赏
赏赏
赏
我尽力了,真不知道为啥差一个字OTL