1、写函数,给定符号和行数,如’*’,5,可打印相应行数的如下图形


In [10]:
def tri(m,n):
    for i in range(0, n+1):
        for j in range(0,n+1-i):           
            print(' ',end='')
        for k in range(0,2*i-1):
            if k%2==0:
                print (m,end='')
            else:
                print ( ' ',end='')                                
        print()
def main():
    sym=str(input('plz input a symbol (like *):'));
    n=int(input('plz input line num: '))
    tri(sym,n) 
    
main()


plz input a symbol (like *):*
plz input line num: 5
      
     *
    * *
   * * *
  * * * *
 * * * * *

2、打印如下9*9 乘法口诀表,注意每列左侧竖向对齐。


In [20]:
def multi():
    for i in range(1,10):
        for j in range(1,i+1):
            temp=i*j
            print(i,'*',j,'=',temp,end='    ')
        print()
multi()


1 * 1 = 1    
2 * 1 = 2    2 * 2 = 4    
3 * 1 = 3    3 * 2 = 6    3 * 3 = 9    
4 * 1 = 4    4 * 2 = 8    4 * 3 = 12    4 * 4 = 16    
5 * 1 = 5    5 * 2 = 10    5 * 3 = 15    5 * 4 = 20    5 * 5 = 25    
6 * 1 = 6    6 * 2 = 12    6 * 3 = 18    6 * 4 = 24    6 * 5 = 30    6 * 6 = 36    
7 * 1 = 7    7 * 2 = 14    7 * 3 = 21    7 * 4 = 28    7 * 5 = 35    7 * 6 = 42    7 * 7 = 49    
8 * 1 = 8    8 * 2 = 16    8 * 3 = 24    8 * 4 = 32    8 * 5 = 40    8 * 6 = 48    8 * 7 = 56    8 * 8 = 64    
9 * 1 = 9    9 * 2 = 18    9 * 3 = 27    9 * 4 = 36    9 * 5 = 45    9 * 6 = 54    9 * 7 = 63    9 * 8 = 72    9 * 9 = 81    

3、写函数,可检查一个数(2-100000之间整数)能不能表示成两个质数之和,如果能,则打印这两个质数。主程序用18及93887分别做测试。


In [2]:
import math
def check(m):
    
    for i in range(2,math.ceil(m/2)):
        i1=math.sqrt(i)
        print(i1)
        for j in range(2,math.ceil(i1)):
            if i%j!=0 and (m-i)%j!=0:
                print(i,m-i)       

def main():
    m=0  
    while m!=1000:
        m=int(input('plz input a num(1000 for exit):'))
        check(m)
main()


plz input a num(1000 for exit):18
1.4142135623730951
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-2-ef188b44ea86> in <module>()
     14         m=int(input('plz input a num(1000 for exit):'))
     15         check(m)
---> 16 main()

<ipython-input-2-ef188b44ea86> in main()
     13     while m!=1000:
     14         m=int(input('plz input a num(1000 for exit):'))
---> 15         check(m)
     16 main()

<ipython-input-2-ef188b44ea86> in check(m)
      5         i1=math.sqrt(i)
      6         print(i1)
----> 7         for j in range(2,i1):
      8             if i%j!=0 and (m-i)%j!=0:
      9                 print(i,m-i)

TypeError: 'float' object cannot be interpreted as an integer

4、有一个列表:[1, 2, 3, 4…n],n=20;请编写代码打印如下规律的输出(不允许直接拷贝并直接打印作为答案,想象n可能是变量):