In [2]:
#练习一:自己定义一个reverse(s)函数,功能返回字符串s的倒序字符串。
def reverse():
    x = []
    s = [9,8,7,6,5,4,3,2,1,0]
    for i in range(len(s)-1,-1,-1):
        x.append(s[i])
    return(x)
    
y = reverse()
print(y)


[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

In [1]:
#练习二:写函数,根据给定符号和行数,打印相应直角三角形,等腰三角形及其他形式的三角形。
def pattern(pat):
    for i in range(1,len(pat)):
        for j in range(1,i+1):
            print(pat[0],' ',end = '')
        print()
    
    
    print("-"*30)
    for i in range(1,len(pat)-1):
        for j in range(len(pat)-1-i,0,-1):
            print(' ',end = '')
        for k in range(1,2*i):
            print(pat[0],end = '')
        print()
        
    print("-"*30)        
    for i in range(1,len(pat)+1):
        for j in range(len(pat)-i,0,-1):
            print(' ',end = '')
        for k in range(1,i+1):
            print(pat[0],' ',end = '')
        print()

        
def main():
    text = "******"
    pattern(text)   

if __name__ == '__main__':
    main()


*  
*  *  
*  *  *  
*  *  *  *  
*  *  *  *  *  
------------------------------
    *
   ***
  *****
 *******
------------------------------
     *  
    *  *  
   *  *  *  
  *  *  *  *  
 *  *  *  *  *  
*  *  *  *  *  *  

In [3]:
#练习三:将任务4中的英语动词单数变复数的函数,尽可能的考虑多种情况,重新进行实现。
def plur():
    sp = input("请输入一个英语动词的单数形式,以回车结束:")
    x1 = ['o','x','s','sh','ch']
    x2 = ['by','cy','dy','fy','gy','jy','ky','ly','my','my','py','qy','ry','sy','ty','vy','wy','xy','yy','zy']
    while sp:
        if sp[-1] in x1:
            print(sp + 'es')
        elif sp[-2:] in x1:
            print(sp + 'es')
        else:
            if sp[-2:] in x2:
                print(sp[:-1] + 'es')
            else:
                print(sp +'s')
        sp = input("请输入一个英语动词的单数形式,以回车结束:")
    
plur()


请输入一个英语动词的单数形式,以回车结束:study
studes
请输入一个英语动词的单数形式,以回车结束:teach
teaches
请输入一个英语动词的单数形式,以回车结束:sing
sings
请输入一个英语动词的单数形式,以回车结束:

In [16]:
#练习四:写函数,根据给定符号,上底、下底、高,打印各种梯形。
symbol = "*"
def shape():
    x= int(input("请输入要打印的梯形的s底,以回车结束:"))
    y= int(input("请输入要打印的梯形的x底,以回车结束:"))
    z = int(input("请输入要打印的梯形的高,以回车结束:"))
    for i in range(1,z+1):
        for k in range(1,i+x):
            print("*",end='')
    #for j in range(z-i,0,-1):
        print('\n')
shape()


请输入要打印的梯形的s底,以回车结束:3
请输入要打印的梯形的x底,以回车结束:6
请输入要打印的梯形的高,以回车结束:4
***

****

*****

******


In [3]:
#练习五:写函数,根据给定符号,打印各种菱形。
def shape():
    s = "*"
    for i in range(1,8,2):
        print((s*i).center(7))
    for i in reversed(range(1,6,2)):
        print((s*i).center(7))
    print()
    
shape()


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


In [21]:
#练习六:与本小节任务基本相同,但要求打印回文字符倒三角形。
def plalindrome(line):
    for i in range(len(line)*2,0,-1):
        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 [17]:
line = "赏花归去马如飞"
for i in range(1,15):
    if i%2 == 1:
        print(line[:7-i//2],end = '')
        print(line[:7-i//2][-1::-1])
    else:
        print(line[:7-int((i)/2)+1],end = '')
        print(line[:7-int((i)/2)+1][-2::-1])


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

In [ ]: