OK, I've solved your problem in the previous posts and it looks like you are not trying what I provided here in its entirety.
import arcpy
arcpy.env.workspace = "D:\Pipe\map.gdb"
featureClass_1 = "P_Pipes"
Table_Pipe = "Pipe_Risk"
fieldNames_1 = ["Material", "OPERATINGPRESSURE", "MEASUREDLENGTH", "INSTALLATIONDATE", "Risk_Score"]
fieldNames = ["Material", "OPERATINGPRESSURE", "MEASUREDLENGTHLOWERLIMIT", "MEASUREDLENGTHUPPERLIMIT",
"INSTALLATIONDATELOWERLIMIT", "INSTALLATIONDATEUPPERLIMIT", "OVERALLRISKSCORE"]
def Pipe_Risk_Score(Material, OPERATINGPRESSURE, MEASUREDLENGTH, INSTALLATIONDATE):
lst = []
# Case: Material
Material_where_Clause = "Material = " + Material
with arcpy.da.SearchCursor(Table_Pipe, ["Material", "OVERALLRISKSCORE"], Material_where_Clause) as sCur:
for row in sCur:
lst.append(row[1])
Material_Risk_Score = row[1]
print Material_Risk_Score
# Case: Operating Pressure
OP_Out_fields = ["OPERATINGPRESSURE", "OVERALLRISKSCORE"]
OP_where_Clause = "OPERATINGPRESSURE = " + OPERATINGPRESSURE
with arcpy.da.SearchCursor(Table_Pipe, OP_Out_fields, OP_where_Clause) as sCur:
for row in sCur:
lst.append(row[1])
OPERATINGPRESSURE_Risk_Score = row[1]
print OPERATINGPRESSURE_Risk_Score
# Case: ML
ML_Out_fields = ["MEASUREDLENGTHLOWERLIMIT", "MEASUREDLENGTHUPPERLIMIT", "OVERALLRISKSCORE"]
ML_where_Clause = "MEASUREDLENGTHLOWERLIMIT <= " + MEASUREDLENGTH + " and MEASUREDLENGTHUPPERLIMIT >= " + MEASUREDLENGTH
print ML_where_Clause
with arcpy.da.SearchCursor(Table_Pipe, ML_Out_fields, ML_where_Clause) as sCur:
for row in sCur:
lst.append(row[2])
MEASUREDLENGTH_Risk_Score = row[2]
print MEASUREDLENGTH_Risk_Score
# Case: ID
ID_Out_fields = ["INSTALLATIONDATELOWERLIMIT", "INSTALLATIONDATEUPPERLIMIT", "OVERALLRISKSCORE"]
ID_where_Clause = "INSTALLATIONDATELOWERLIMIT <= {0} and INSTALLATIONDATEUPPERLIMIT >= {0}".format(INSTALLATIONDATE)
with arcpy.da.SearchCursor(Table_Pipe, ID_Out_fields, ID_where_Clause) as sCur:
for row in sCur:
lst.append(row[2])
ID_Risk_Score = row[2]
print ID_Risk_Score
return sum(lst) / len(lst)
with arcpy.da.UpdateCursor(PipeFCName, ["Material", "OPERATINGPRESSURE", "MEASUREDLENGTH", "INSTALLATIONDATE", "Risk_Score"]) as uCur:
for row in uCur:
Material = row[0]
OPERATINGPRESSURE = row[1]
MEASUREDLENGTH = row[2]
INSTALLATIONDATE = row[3]
print "Material: {}\t OPERATINGPRESSURE: {}\t MEASUREDLENGTH: {}\t INSTALLATIONDATE: {}".format(Material, OPERATINGPRESSURE, MEASUREDLENGTH, INSTALLATIONDATE)
row[4] = Pipe_Risk_Score(Material, OPERATINGPRESSURE, MEASUREDLENGTH, INSTALLATIONDATE)
uCur.UpdateRow(row)