In [1]:
#1菱形
def ling(char,num):
    for i in range(1,num):
        print(' '*(num-i)+char*i)
    print(char*num)
    for i in range(1,num):
        print(' '*i+char*(num-i))
char = input('请输入您想要的符号')
char = char+' '
num = int(input('请输入您想要的数字'))
ling(char,num)


请输入您想要的符号*
请输入您想要的数字5
    * 
   * * 
  * * * 
 * * * * 
* * * * * 
 * * * * 
  * * * 
   * * 
    * 

In [2]:
#2递归
def jiecheng(n):
    sum = 0
    if n == 1:
        return 1
    else:
        return n*jiecheng(n-1)
n = int(input('输入您想要的数'))
sum = 0
for i in range(1,n+1):
    sum += jiecheng(i)
print(sum)


输入您想要的数10
4037913

In [3]:
#2非递归
def jiecheng(n):
    sum = 0
    for i in range(1,n+1):
        k_01 = 1
        for j in range(1,i+1):
             k_01 *= j
        sum += k_01
    return sum
n = int(input('输入您想要的数字'))
print(jiecheng(n))


输入您想要的数字10
4037913

In [4]:
#3车牌号
import random
def find_word():
    words=['A','B','C','D','E','F','G','H','J','K','L','M','N','P','Q','R','S','T','U','V','W','X','Y','Z']
    word=random.choice(words)
    return word
def find_number():
    numbers=['0','1','2','3','4','5','6','7','8','9']
    line=[]
    while(len(line)<5):
        num=random.choice(numbers)
        if num not in line:
            line.append(num)
    return line
for i in range(10):
   
    print(i,"京",find_word(),find_number(),end='')
    print('\n')


0 京 Z ['4', '9', '7', '6', '8']

1 京 K ['6', '7', '4', '3', '8']

2 京 Y ['0', '9', '7', '2', '4']

3 京 P ['9', '3', '1', '4', '7']

4 京 E ['8', '9', '7', '3', '6']

5 京 N ['1', '7', '8', '4', '0']

6 京 B ['9', '3', '5', '8', '6']

7 京 D ['2', '0', '1', '7', '4']

8 京 H ['6', '9', '5', '2', '8']

9 京 E ['6', '0', '1', '4', '8']


In [5]:
#4向量距离最小值
def cosVector(x,y):
    if(len(x)!=len(y)):
        print('error input,x and y is not in the same space')
        return;
    result1=0.0;
    result2=0.0;
    result3=0.0;
    for i in range(len(x)):
        result1+=x[i]*y[i]   #sum(X*Y)
        result2+=x[i]**2     #sum(X*X)
        result3+=y[i]**2     #sum(Y*Y)
    #print(result1)
    #print(result2)
    #print(result3)
    return result1/((result2*result3)**0.5)
min((cosVector([1,2,3,4],[4,5,6,7])),(cosVector([1,2,3,4],[7,8,9,10])),(cosVector([4,5,6,7],[7,8,9,10])))


Out[5]:
0.9583148474999099

In [ ]:
#5文件操作
#(a)
import random
with open(r'D:\\Python36\\exam\\a.txt','w') as a, open(r'D:\\Python36\\exam\\b.txt','w') as b:
    word_a = [0 for i in range(100000)]
    word_b = [0 for i in range(100000)]
    for i in range(100000):
        k = random.randint(1,10000)
        if k in word_a:
            word_a[k] += 1
        else:
            word_a[k] = 1
    for i in range(1,100001):
        if word_a[i] >= 1:
            a.write(str(i))
            a.write(str(word_a[i]))
            a.write('\\n')
    for i in range(100000):
        k = random.randint(1,15000)
        if k in word_b:
            word_b[k] += 1
        else:
            word_b[k] = 1
    for i in range(1,100001):
        if word_b[i] >= 1:
            b.write(str(i))
            b.write(str(word_b[i]))
            b.write('\\n')
#(b)
for i in range(100000):
    if word_a[i] >= 0:
        s = i
        if s == s[::-1]:
            print(s,word_a[i])
#(c)
sum_01 = 0
sum_02 = 0
for i in range(10000):
    if wrod_a[i] >= 1:
        sum_01 += word_a[i]
        sum_02 += word_a[i]*i
print(sum_01,sum_02)
#(d)
with open('D:\\Python36\\exam\\a.txt','w') as f:
    for i in range(100000):
        if (word_a[i] >= 1) and (word_b[i] >= 1):
            f.write(str(i))
            f.write('\\n')