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)
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)
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))
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')
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]:
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')