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 вы фактически сравниваете и получаете логическое значение.
в) Попробуй посмотреть, сможешь ли ты изменить логику, чтобы не было так много статов (Похоже, что у тебя значение по умолчанию 1, поэтому ты можешь поместить все, например, в другой стат)