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


In [2]:
ch=input('请输入一个字符: ')
n=int(input('请输入打印行数:'))

for i in range(1,n+1):
    print(' '*(n-i)+(ch+' ')*i)


请输入一个字符: *
请输入打印行数:5
    * 
   * * 
  * * * 
 * * * * 
* * * * * 

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


In [10]:
for i in range(1,10):
    for j in range(1,i+1):
        print('{}*{}={:<2}'.format(i,j,i*j),end=' ')
    print()


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 [ ]:
def zhishu(x):
    flag=1
    for i in range(2,x//2):
        if x%i==0:
            flag=0
    return flag
            
def test(n):
    flag=0
    for i in range (2,n//2):
        j=n-i
        if zhishu(i)+zhishu(j)==2:
            print(n,'可以写成两个质数之和:')
            print(n,'=',i,'+',j)
            flag+=1
    if flag==0:
        print(n,'不能写成两个质数之和.')
        

test(18)
test(933887)


18 可以写成两个质数之和:
18 = 5 + 13
18 可以写成两个质数之和:
18 = 7 + 11
933887 可以写成两个质数之和:
933887 = 4 + 933883

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


In [ ]:
list=[1,2,3,4,5]
for i in range (1,20):
    if i<=3:
        for j in range(3):
            print(i,list)
    elif i<=20-2:
        list[0]=i-2
        for m in range(1,5):
            list[i]=list[i-1]+1
        print(list)
    else:
        print(list)