关于#python#的问题:python题

img

img


python作业题不会要交了,没找到代码,两题,教一教,帮一手,谢谢

两题都答了,请点个采纳。谢谢!

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("输入错误,请重新输入")
作业6
# 计算式子
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)
作业5

蒙特卡洛积分可以参考: 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)
  • 实际积分的结果: 1/3
  • 计算的结果: 0.3324048053732596