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)
    
a = reverse()
print(a)


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

In [4]:
#练习二:写函数,根据给定符号和行数,打印相应直角三角形,等腰三角形及其他形式的三角形。
def pattern(pat):
    for i in range(1,len(pat)):
        for j in range(1,i+1):
            print(pat[0],' ',end = '')
        print()
    
    
    print("------分割线------"*3)
    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("------分割线------"*3)        
    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 [ ]:
#练习三:将任务4中的英语名词单数变复数的函数,尽可能的考虑多种情况,重新进行实现。
def pl():
    word = 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 word:
        if word[-1] in x1:
            print(word + 'es')
        elif word[-2:] in x1:
            print(word + 'es')
        else:
            if word[-2:] in x2:
                print(word[:-1] + 'es')
            else:
                print(word +'s')
        word = input("请输入一个英语名词的单数形式,以回车结束:")
    
pl()

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

#不会写
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()

In [ ]:
#练习五:写函数,根据给定符号,打印各种菱形。

#什么是各种菱形?空心还是实心?

def rhombus():
    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()
    
rhombus()

In [ ]:
#练习六:与本小节任务基本相同,但要求打印回文字符倒三角形。

#烧脑子
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 [ ]: