Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python多if-else函数并返回_Python_Python 3.x_If Statement - Fatal编程技术网

Python多if-else函数并返回

Python多if-else函数并返回,python,python-3.x,if-statement,Python,Python 3.x,If Statement,这在python上可能吗 def NearSourceFactor(seismic_source_distance,seismic_source_select): Na = 0 if (seismic_source_distance <= 2) and (seismic_source_select == "A"): Na == 1.5 elif (seismic_source_distance <= 5) and (seismic_sour

这在python上可能吗

def NearSourceFactor(seismic_source_distance,seismic_source_select): 
    Na = 0 
    if (seismic_source_distance <= 2) and (seismic_source_select == "A"):
        Na == 1.5
    elif (seismic_source_distance <= 5) and (seismic_source_select == "A"):
        return Na == 1.2
    elif (seismic_source_distance > 10) and (seismic_source_select == "A"):
        return Na == 1.0
    elif (seismic_source_distance <= 2) and (seismic_source_select == "B"):
        return Na == 1.3
    elif (seismic_source_distance <= 5) and (seismic_source_select == "B"):
        return Na == 1.0
    elif (seismic_source_distance > 10) and (seismic_source_select == "B"):
        return Na == 1.0
    elif (seismic_source_distance <= 2) and (seismic_source_select == "C"):
        return Na == 1.0
    elif (seismic_source_distance <= 5) and (seismic_source_select == "C"):
        return Na == 1.0
    elif (seismic_source_distance > 10) and (seismic_bldg_geometry == "C"):
        return Na == 1.0

Na = NearSourceFactor(seismic_source_distance,seismic_source_select) 
地震震源为10,地震震源为B,但不幸的是,答案为无

我希望答案是1.0

def NearSourceFactor(seismic_source_distance,seismic_source_select): 

    if (seismic_source_distance <= 2) and (seismic_source_select == "A"):
        return 1.5
    elif (seismic_source_distance <= 5) and (seismic_source_select == "A"):
        return 1.2
    elif (seismic_source_distance > 10) and (seismic_source_select == "A"):
        return 1.0
    elif (seismic_source_distance <= 2) and (seismic_source_select == "B"):
        return 1.3
    elif (seismic_source_distance <= 5) and (seismic_source_select == "B"):
        return 1.0
    elif (seismic_source_distance >= 10) and (seismic_source_select == "B"):
        return 1.0
    elif (seismic_source_distance <= 2) and (seismic_source_select == "C"):
        return 1.0
    elif (seismic_source_distance <= 5) and (seismic_source_select == "C"):
        return 1.0
    elif (seismic_source_distance > 10) and (seismic_bldg_geometry == "C"):
        return 1.0

Na = NearSourceFactor(seismic_source_distance,seismic_source_select) 
我修复了它,因此它可以满足您的要求,但请注意以下事项:

a没有理由配置要返回的变量,例如,只需返回值return 1

b当编写Na==1.0时,实际上是在比较并接收一个布尔值


c试着看看是否可以将逻辑更改为不包含太多的if station(如果您的默认值为1),这样您就可以将所有内容都放在一个else station中,例如

如果地震震源为10,则所有条件都不匹配。你期望它做什么?我期望答案应该是Na=1.0为什么你期望它?你没有任何if语句捕捉sesimic_source=10,而且你返回的是Na==1.0,它将返回一个布尔值。你期望函数返回一个整数吗?酷,非常感谢。这很有帮助。