Python多if-else函数并返回
这在python上可能吗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
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,它将返回一个布尔值。你期望函数返回一个整数吗?酷,非常感谢。这很有帮助。