练习一:自己定义一个reverse(s)函数,功能返回字符串s的倒序字符串。


In [1]:
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)
    
reverse()


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

练习二:写函数,根据给定符号和行数,打印相应直角三角形,等腰三角形及其他形式的三角形。


In [3]:
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()

pattern('******')


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

练习4写函数,根据给定符号,上底、下底、高,打印各种梯形。


In [1]:
def trapezium(symbol,upper_line,lower_line,height): 
    symbol = input("请输入符号,回车结束:") 
    upper_line = int(input("请输入梯形上底,回车结束:"))
    lower_line = int(input("请输入梯形下底,回车结束:"))
    height = int(input("请输入梯形的高,回车结束:"))
    for i in range(height):
        print (' '*(lower_line-upper_line-i)+symbol*(i+upper_line))
        
a = 0 
b = 0
c = 0
d = 0 
trapezium(a,b,c,d)


请输入符号,回车结束:*
请输入梯形上底,回车结束:4
请输入梯形下底,回车结束:8
请输入梯形的高,回车结束:5
    ****
   *****
  ******
 *******
********

练习5:写函数,根据给定符号,打印各种菱形。


In [4]:
def rhombus(symbol,rows):
    print ('rhombus:')  
    for i in range(rows):
        if i < rows//2:
            print (' '*(rows-i-1)+symbol*(i)+'*'+symbol*(i)+' '*(rows-i-1))
        else:
            if rows%2 == 0:
                j = rows-i-2
                if (i != rows-1):
                    print (' '*(i+1)+symbol*(j)+'*'+symbol*(j)+' '*(i))
            else:
                j = rows-i-1
                print (' '*(i)+symbol*(j)+'*'+symbol*(j)+' '*(i))

                
symbol = '*' 
rows = int(input("请输入行数,回车结束:"))  
rhombus(symbol,rows)


请输入行数,回车结束:8
rhombus:
       *       
      ***      
     *****     
    *******    
     *****    
      ***     
       *      

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


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

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

if __name__ == '__main__':
    main()


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

In [ ]: