【发布时间】:2020-06-06 23:55:36
【问题描述】:
我需要创建一个 python 函数,我可以在其中找到具有黎曼和的曲面。这就是我所拥有的,根据我老师的反馈,我非常接近它,但它并没有像我想要的那样正常工作。老师还说了一些关于 try-catch 什么意思我需要做一个额外的代码来控制答案(如果我没有错的话)要找到表面,要求上限和下限以及在线下你想要多少个矩形就像在程序中一样。
(编辑)我做了一个新程序,你们能检查一下是否正确。
import math
def f(x): return math.sqrt(x) #Function in the left!
a = int(input("What is the lowerlimit?:"))
b = int(input("What is the upperlimit?:"))
n = int(input("How many division intervals do you want?:"))
dx = (b-a)/n;
xi = 0;
sum = 0;
for i in range(n):
xi = xi+dx;
sum = sum + f(xi)
print("The surface under the line is ", (sum*dx))
#einde programma!
import math
定义 f(x):
return math.sqrt(x) #左边的函数!
def 肯定输入(消息): 而真: 尝试: c = int(输入(消息))
if c <= 0:
raise ValueError
break
except ValueError:
print("糟糕!那不是有效的号码。再试一次...")
a = positiveinput("下限是多少?:")
b = positiveinput("上限是多少?:")
c = positiveinput("你想要多少个除法间隔?:")
a = int(input("下限是多少?:"))
b = int(input("上限是多少?:"))
c = int(input("你想要多少分割间隔?:"))
dx = float((b-a)/c)
xi = a
总和 = dx
对于范围内的 i(0,c):
xi = a - dx
总和 = 总和 + f(xi)
print("线下的曲面是", (sum*dx))
【问题讨论】:
-
我认为您的老师的意思是您应该在转换为 int 之前检查输入。因为如果您输入
abc而不是数字,您的程序将会崩溃 -
“它无法正常工作。”请解释 - 举例说明发生错误的情况,解释发生了什么错误,以及应该发生什么。
-
小区间偏差过大
-
@EmreEmre 看我的回答,你在低下限出错的原因是因为你没有设置正确的下限。应该是
a而不是0