We to Prague first and stayed at the Opera property. We found the land lady exceptionally helpful and she was a joy. Lots of walking and decent food. We found that if you got off the main tourist beats the prices went down and the quality went up (both in Prague and Budapest). The entire town of Prague is a feast for the eyes. Budapest was quite a bit warmer and we stayed across from the synagogue. The place around this property abounded with lots of local eateries and things to do. In both Prague and Budapest it was cheaper to drink beer or wine than water or soda pop. I felt completely safe in both places. Prague had a Jewish area with almost no Jews, but Budapest has a very healthy population and rich history. I liked the food much better in Budapest than Prague but both have good food around.
The walking in Budapest is flatter and easier and the architecture is very colorful. Note: never use the Euronet ATMs (with a yellow diamond that is sideways) found almost everywhere. The have hidden cost that add up and there is a bank within easy walking distance from just about everywhere. When you use your card use the local currency and let your card give you a one to one rate rather than the individual store. Some countries have restrictions on what may be charged like Germany and they don't end getting stuck like us Americans. The local stores that look like convenience stores have good prices on things like beer, and snacks and the locals use them to. Prague had more people that spoke great English, and other languages as well. Budapest had many people who spoke, but when you were off the local menu they might not know what you are talking about at times.