Get material and color of material on a face of an object in Python
import bpy

context = bpy.context
obj = context.object
mesh = obj.data

for f in mesh.polygons:  # iterate over faces
    print("face", f.index, "material_index", f.material_index)
    slot = obj.material_slots[f.material_index]
    mat = slot.material
    if mat is not None:
        print(mat.name)
        print(mat.diffuse_color)
    else:
        print("No mat in slot", f.material_index)