Francis is a town in Pontotoc County, Oklahoma, United States. The population was 332 at the 2000 census.