Python - Лекция 3 - 18. *Изписване на число до 100 с думи
Здравейте,
Не мога да разбера къде ми е грешката:
num_list=['zero','one','two','three','four','five','six','seven','eight','nine','ten','eleven','twelve','thirteen','fourteen','fifteen','sixteen','seventeen','eighteen','nineteen','twenty','twenty one','twenty two','twenty three','twenty four','twenty five','twenty six','twenty seven','twenty eight','twenty nine','thirty','thirty one','thirty two','thirty three','thirty four','thirty five','thirty six','thirty seven','thirty eight','thirty nine','forty','forty one','forty two','forty three','forty four','forty five','forty six','forty seven','forty eight','forty nine','fifty','fifty one','fifty two','fifty three','fifty four','fifty five','fifty six','fifty seven','fifty eight','fifty nine','sixty','sixty one','sixty two','sixty three','sixty four','sixty five','sixty six','sixty seven','sixty eight','sixty nine','seventy','seventy one','seventy two','seventy three','seventy four','seventy five','seventy six','seventy seven','seventy eight','seventy nine','eighty','eighty one','eighty two','eighty three','eighty four','eighty five','eighty six','eighty seven','eighty eight','eighty nine','ninety','ninety one','ninety two','ninety three','ninety four','ninety five','ninety six','ninety seven','ninety eight','ninety nine','hundred']
a=int(input())
if abs(a)<=100:
print (num_list[abs(a)])
else:
pass
JUDGE дава 84 / 100 точки, като тестовете от [22..25] дават Test #... (Incorrect answer).
Очевидно, при проверка стринговете не съвпадат. Някой има ли идея? Благодаря предварително!
Колега и аз се сблъсках със същия проблем в намирането на решение (грешки в тестове 23-25, може ли да споделиш решението на задачата, т.е. да дадеш верния код?
Благодаря
Ето кодът: https://pastebin.com/k3pMGwk0
Има много решения в нета на тая задача. Моето е опростачено и съобразено с темата на лекцията. Идеята е при въвеждане на число, то да се използва за индексиране в лист, като по този начин се извиква стринг (в случая името на числото), намиращ се на тази позиция в поредицата.
Целият проблем при тази задача се състои в две неща, които не са споменати в условието:
1. Трябва да направиш проверка за валидност на въведените числа - т.е. 0...100 и при невалидност да принтнеш "invalid number" (това не го пише и не се разбира от детайлите в JUDGE);
2. При подаване на 100 трябва да се изпише "one hundred". Аз бях започнал с "hundred" и си скъсах нервите, докато открия какъв е проблемът. Отново няма как да видиш това в детайлите на JUDGE - там просто пише Incorrect Answer.
Благодаря, колега.