def bubble_at_T(zs, Psats, fugacities=None, gammas=None):
if not fugacities:<EOL><INDENT>fugacities = [<NUM_LIT:1> for i in range(len(Psats))]<EOL><DEDENT>if not gammas:<EOL><INDENT>gammas = [<NUM_LIT:1> for i in range(len(Psats))]<EOL><DEDENT>if not none_and_length_check((zs, Psats, fugacities, gammas)):<EOL><INDENT>raise Exception('<STR_LIT>')<EOL><DEDENT>P = sum(zs[i]*Psats[i]*gammas[i]/fugacities[i] for i in range(len(zs)))<EOL>return P<EOL>
>>> bubble_at_T([0.5, 0.5], [1400, 7000])
4200.0
>>> bubble_at_T([0.5, 0.5], [1400, 7000], gammas=[1.1, .75])
3395.0
>>> bubble_at_T([0.5, 0.5], [1400, 7000], gammas=[1.1, .75], fugacities=[.995, 0.98])
3452.440775305097