两题都答了,请点个采纳。谢谢!
def func(n):
return (n+1)**n-n**(n-1)
Error1 = '输入的不是数字,请重新输入!'
Error2 = '输入不在范围内,请重新输入!'
while True:
try:
n = float(input('请输入一个数n(2≤n≤10):'))
except:
print(Error1)
continue
if 2<=n<=10:
print(func(n))
break
else:
print(Error2)
import numpy as np
def montecarlo(steps=1000000):
x = np.random.uniform(0,1,steps)
y = x**2
s = 0
for i in y:
s=s+i
return s/steps
print(montecarlo())
def func():
while 1:
n=input()
if n.isdigit()==False:
print('输入错误')
continue
else:
if 2<=int(n)<=10:
n=int(n)
print((n+1)**n-n**(n-1))
break
else:
print('输入超范围')
continue
func()
代码如下:
# 两种方法二选其一,注释掉另外一个。
# 方法一:直接使用 x**y
# def func(x, y):
# return x ** y
# 方法二:使用自定义一步步计算获得 x**y
def func(x, y):
res = x
for i in range(y - 1):
res *= x
return res
if __name__ == '__main__':
while True:
n = input('请输入数字n,n限制在[2,10]之间:\n')
if n.isdigit():
if 2 <= int(n) <= 10:
n = int(n)
result = func(n + 1, n) - func(n, n - 1)
print("输出结果为:", result)
break
else:
print('输入超范围')
else:
print('输入错误')
输出为:
请输入数字n,n限制在[2,10]之间:
a
输入错误
请输入数字n,n限制在[2,10]之间:
1
输入超范围
请输入数字n,n限制在[2,10]之间:
3
输出结果为: 55
如有问题及时沟通
注意题目要求是用 自定义函数 实现 x**y
def powerFunc(m, n):
if n<2:
return(-1)
else:
res = m
for i in range(n-1):
res *= m
return res
if __name__ == '__main__':
while True:
n = input("请输入数字 n (2,=n<=10):\n")
if n.isdigit():
if 2 <= int(n) <= 10:
n = int(n)
# 计算 (n+1)**n - n**(n-1)
result = powerFunc((n+1),n) - powerFunc(n,(n-1))
print("n={},\t(n+1)**n-n**(n-1)={}".format(n, result))
break
else:
print("输入错误,请重新输入")
else:
print("输入错误,请重新输入")
# 计算式子
def getExpression(n):
return (n+1)**n + n**(n-1)
# 输入
n = input()
if not n.isdigit(): # 不是数字
print("输入错误")
elif int(n)>10 or int(n) <2:
print("输入超范围")
# 转换为数字
n = int(n)
result = getExpression(n)
print(result)
蒙特卡洛积分可以参考: https://baijiahao.baidu.com/s?id=1728522053964035534&wfr=spider&for=pc
import random
a = 0 # 积分的下限
b = 1 # 积分的上限
N = 1000 # 蒙特卡洛随机数的个数 根据题目要求来修改,越多越精确
# 被积分的函数
def f(x):
return x*x
# 生成随机数
def uniform():
return random.uniform(a,b)
# 计算积分
def compute():
Sum = 0
for k in range(N):
Sum += f(uniform())
value = Sum/N
res = value * (b-a)
# res = round(res,2)# 保留两位小数
return res
integral = compute()
print(integral)