from scipy import random from scipy.integrate import quad import numpy as np a = 0 b = np.pi N = 10000000 xrand = random.uniform(a,b,N) def f(x): return np.sin(x) integral = 0.0 for i in range(N): integral += f(xrand[i]) answer = (b-a)/float(N)*integral print("The integral from 0 to pi of sin(x): ", answer) print(quad(f,0,np.pi)[0])