Я начинающий программист в python, и мне нужна помощь с некоторым кодом. Прикрепленный код, над которым я работал. Цель состоит в том, чтобы взять сумму в долларах, как 305,67, и преобразовать номер в текстовую фразу типа «Триста пять долларов и шестьдесят семь центов». До сих пор я получил большую часть кода, чтобы разбить его на текст, но у меня все еще возникают проблемы с номерами 11-19, которые являются особым случаем. Мне нужна помощь в выяснении того, как программа может решить, где правильно применять 11-19, а также когда нужно удалить строку «ZERO», когда она не нужна. Если вы запустите программу, вы увидите, что я имею в виду. Цикл ниже в основной функции будет запускать цикл с учетом желаемой суммы в зависимости от функции. Кроме того, существует функция, называемая «getDollarFormatText», которая будет принимать числовую версию денег, такую как 305.67 или 45.13, и предоставить вам текстовый формат. Проблема, с которой я сталкиваюсь, заключается в том, как заставить программу игнорировать десятичную и затем конвертировать все влево и вправо от десятичной дроби. Это загруженная проблема, и я буду очень благодарен за это. По сути, проблему легко исправить, но я понятия не имею, как ее решить. Код начинается с функции, которая обрабатывает двухзначные числа (я уже занимался функцией, которая разделяет только однозначные числа).Beginner Python: инструкции If-else, ошибки форматирования
def getWordForTwoDigits(amount):
#This value uses integer division to get the number of tens within a number.
tensAmount = int(amount)/10
#This variable uses the first function above to find the equivalent single number within the number given using modulo. (Zero through 9)
singlesWord = getWordForDigit(int(amount)%10)
#For this decision structure, the structure is set to figuring out the number of tens within a number and appropriately naming it after its correct name (ten, twenty, etc.)
if tensAmount == 1:
wordTen = "TEN"
else:
if tensAmount == 2:
wordTen = "TWENTY"
else:
if tensAmount == 3:
wordTen = "THIRTY"
else:
if tensAmount == 4:
wordTen = "FORTY"
else:
if tensAmount == 5:
wordTen = "FIFTY"
else:
if tensAmount == 6:
wordTen = "SIXTY"
else:
if tensAmount == 7:
wordTen = "SEVENTY"
else:
if tensAmount == 8:
wordTen = "EIGHTY"
else:
if tensAmount == 9:
wordTen = "NINETY"
return "%s-%s"%(wordTen, singlesWord)
########################################
def getWordForThreeDigits(dolamount):
hundredAmount = int(dolamount)/100
twoDigits = getWordForTwoDigits(int(dolamount) % 100)
if hundredAmount == 0:
return twoDigits
else:
if hundredAmount == 1:
wordHun = "ONE HUNDRED"
else:
if hundredAmount == 2:
wordHun = "TWO HUNDRED"
else:
if hundredAmount == 3:
wordHun = "THREE HUNDRED"
else:
if hundredAmount == 4:
wordHun = "FOUR HUNDRED"
else:
if hundredAmount == 5:
wordHun = "FIVE HUNDRED"
else:
if hundredAmount == 6:
wordHun = "SIX HUNDRED"
else:
if hundredAmount == 7:
wordHun = "SEVEN HUNDRED"
else:
if hundredAmount == 8:
wordHun = "EIGHT HUNDRED"
else:
if hundredAmount == 9:
wordHun = "NINE HUNDRED"
return "%s %s"%(wordHun, twoDigits)
####################################
def getDollarFormatText(dollarAndCents):
#how would you separate 190.67 (example) to 190 and 67 and and give the text form for eacn
Quick! elif на помощь! http://stackoverflow.com/questions/2395160/what-is-the-correct-syntax-for-else-if (это по крайней мере поможет вам с отступом) –
И после этого взгляните на словари: http : //docs.python.org/release/2.7.5/tutorial/datastructures.html#dictionaries –