Если Вы действительно волнуетесь по поводу погрешностей округления с плавающей точкой, большинство языков предлагает типы данных, которые не имеют ошибок с плавающей точкой. SQL Server имеет Типы данных decimal и Типы данных money..Net имеет Тип данных decimal. Они не бесконечная точность как BigDecimal в Java, но они точны вниз к количеству десятичных точек, для которых они определяются. Таким образом, Вы не должны волноваться о долларовой стоимости, Вы вводите как 4,58$, будучи сохраненным как значение с плавающей точкой 4,579999999999997
лучший:
if __name__ == '__main__':
while True:
entered = raw_input("Please enter your three-letter code or leave a blank line to quit: ")
if not entered: break
if len(entered) != 3:
print "%r is NOT three letters, it's %d" % (entered, len(entered))
continue
if not entered.isalpha():
print "%r are NOT all letters -- please enter exactly three letters, nothing else!"
continue
process(entered)
while 1:
choice=raw_input("Enter: ")
if choice in ["Q","q"]: break
print choice
#do something else
if __name__ == '__main__':
input = raw_input("Please enter your three-letter code or leave a blank line to quit: ")
while input:
input = raw_input("Please enter your three-letter code or leave a blank line to quit: ")