检查输入是否为空

时间:2017-12-12 16:35:02

标签: python function variables input

from math import sin, pi

def I1(n, a, b):
    try:
        h = (b-a)/n
        summe = 0
        if a < b:
            for k in range(0, n-1):
                summe += sin(a+(k + 0.5)* h)
                summe *= pi/n
            print("Das Integral von",a ,"bis", b,"entspricht ungefähr:" , summe)
        else: print("Beachte, die untere Grenze 'a' sollte kleiner als die\
obere Grenze 'b'")
    except TypeError:
        h = 1000
        a = 0
        b = pi

我的问题是如果给定的三个变量是emtpy,如何检查Def I1(n,a,b)。有人可以帮忙吗?我尝试过try / except和“如果n是None,a是None,b是None”。

1 个答案:

答案 0 :(得分:0)

尽可能忠实于你提供的东西,我最终得到了这个。

from math import sin, pi


def I1(n, a, b):
    if n is None and a is None and b is None:
        h = 1000
        a = 0
        b = pi
        n =  # ?
    else:
        h = (b - a) / n
    summe = 0
    if a < b:
        for k in range(0, n - 1):
            summe += sin(a + (k + 0.5) * h)
            summe *= pi / n
        print("Das Integral von", a, "bis", b, "entspricht ungefähr:", summe)
    else:
        print("Beachte, die untere Grenze 'a' sollte kleiner als die obere",
            "Grenze 'b'")

如果所有参数都为None,则假设您要设置默认值。但是,我不确定那个条件是你正在寻找的。如果我不得不猜测你的意图,我会用这样的东西代替条件。

if n is None:
    n = 1000
if a is None:
    a = 0
if b is None:
    b = pi
h = (b - a) / n

或者,如果你想确定它们是数字而不仅仅是没有,你可以做这样的事情。

if not isinstance(n, int) and not isinstance(n, float):
    n = 1000
if not isinstance(a, int) and not isinstance(a, float):
    a = 0
if not isinstance(b, int) and not isinstance(b, float):
    b = pi
h = (b - a) / n