[u(x)v(x)](n)= $\sum_{i=0}^{n} x_i …
(markdown?数学式子显示不完全…手写)
# [uv]的n阶导数
# 莱布尼兹公式展开
import os
n = int(input("[uv]的n阶导数,阶数:"))
num = int(n)
def my_int(num):
'''将9.0这类变成9'''
tem = num
num = str(num).split(".")
for i in num[1]:
if i != "0":
return tem
return int(num[0])
def factorial(num):
''' 阶乘'''
sum = 1
while num > 0:
sum *= num
num -= 1
return sum
# 使用外部方法
# import math
# value = math.factorial(6)
# print(value)
# 使用递归函数的方式
# def num(n):
# if n == 0:
# return 1
# else:
# return n * num(n - 1)
# print(num(6)
lst1 = []
lst2 = []
for i in range(n+1):
# print(n-i, i, '\t', end="")
lst1.append([n-i, i])
for i in range(n+1):
rsult = factorial(n)/(factorial(i)*factorial(n-i))
lst2.append(my_int(rsult))
# # 一行输出
# str_lst3 = ""
# for i in range(len(lst1)):
# # print(f"{lst2[i]}*U的{lst1[i][0]}阶导数*V的{lst1[i][1]}阶导数+", end="")
# str_lst3 += f"{lst2[i]}*U的{lst1[i][0]}阶导数*V的{lst1[i][1]}阶导数+"
# # 除去最后一个加号,也可以用下文方法
# print(str_lst3[:len(str_lst3)-1])
# 多行输出
for i in range(len(lst1)):
add = "+"
if i == len(lst1)-1:
add = ""
print(f"{lst2[i]}•(U的{lst1[i][0]}阶导数)•(V的{lst1[i][1]}阶导数){add}")
os.system("pause")
#为打包后防运行完退出