We have some of the finest food in the world.
Also, London isn't Britain - it's a horrible cosmopolitan wasteland. You want to come to Britain? Get on a Train and visit Yorkshire.
On a more serious note - London is expensive as fuck, but if you look in the right places you can find some pretty reasonable places, There's a pub I drink in when I'm down there, it's in Hackney called the Pembury Tavern - prices are decent, food is pretty good, and they generally keep some decent board games behind the bar.
As for good food? Well, our traditional food can be a little bland I suppose if you're going off European tastes, however London is, as I say, a cosmopolitan hellhole with a thousands different cultures and all the food that comes with it - There's a really good Vietnamese restaurant I like to eat in, can't for the life of me remember what it's called but it's not far from the Maple Leaf (Canadian bar) in Covent Garden.
If you're going to have Fish and Chips, London will let you down, you honestly need to go to a coastal town to get it done properly - Bridlington, Scarborough, fuck, even Skegness has a couple of good chippys.
Roast Beef and Yorkshire puddings as part of a proper sunday meal, your best bet is an actual pub, and not one of these new "Gastropubs" which are basically glorified restaurants.
You won't be getting served by a bloke in a top hat and a monocle. Most likely it'll be served by a Romanian fellow which a poor understanding of the English language.
As I say, London - It's not proper Britain. If you want what Americans think Britain is the Home counties are your best bet (google home counties).
Also, for proper historic shit (I know Americans love history, because you don't have any), then York is the best bet - It's got walls, York Minster, The Jorvik viking centre, It's in Yorkshire which automatically makes it better than all cities not in Yorkshire. And so on.