14.Numbers to words /Functions
number_of_nums = int(input()) import math def lettersize(number): if int(number) < 0: minus_number = number number = abs(int(number)) number = str(number) elif int(number) >= 0: minus_number = number num_in_letters = "" hundreds = "" desetici = "" edinici = "" operator = "minus" if int(number) == 1 or 20 < int(number) < 100 and number[1] == "1" or (100 < int(number) <= 999 and (number[2] == "1" and number[1] != 1)): num_in_letters = "one" desetici = "one" elif int(number) == 2 or 20 < int(number) < 100 and number[1] == "2" or 100 < int(number) <= 999 and number[2] == "2" and number[1] != 1: num_in_letters = "two" desetici = "two" elif int(number) == 3 or 20 < int(number) < 100 and number[1] == "3" or 100 < int(number) <= 999 and number[2] == "3" and number[1] != 1: num_in_letters = "three" desetici = "three" elif int(number) == 4 or 20 < int(number) < 100 and number[1] == "4" or 100 < int(number) <= 999 and number[2] == "4" and number[1] != 1: num_in_letters = "four" desetici = "four" elif int(number) == 5 or 20 < int(number) < 100 and number[1] == "5" or 100 < int(number) <= 999 and number[2] == "5" and number[1] != 1: num_in_letters = "five" desetici = "five" elif int(number) == 6 or 20 < int(number) < 100 and number[1] == "6" or 100 < int(number) <= 999 and number[2] == "6" and number[1] != 1: num_in_letters = "six" desetici = "six" elif int(number) == 7 or 20 < int(number) < 100 and number[1] == "7" or 100 < int(number) <= 999 and number[2] == "7" and number[1] != 1: num_in_letters = "seven" desetici = "seven" elif int(number) == 8 or 20 < int(number) < 100 and number[1] == "8" or 100 < int(number) <= 999 and number[2] == "8" and number[1] != 1: num_in_letters = "eight" desetici = "eight" elif int(number) == 9 or 20 < int(number) < 100 and number[1] == "9" or 100 < int(number) <= 999 and number[2] == "9" and number[1] != 1: num_in_letters = "nine" desetici = "nine" if int(number) == 10 or 100 < int(number) < 999 and number[1] + number[2] == "10": num_in_letters = "ten" desetici = "ten" elif int(number) == 11 or 100 < int(number) < 999 and number[1] + number[2] == "11": num_in_letters = "eleven" desetici = "eleven" elif int(number) == 12 or 100 < int(number) < 999 and number[1] + number[2] == "12": num_in_letters = "twelve" desetici = "twelve" elif int(number) == 13 or 100 < int(number) < 999 and number[1] + number[2] == "13": num_in_letters = "thirteen" desetici = "thirteen" elif int(number) == 15 or 100 < int(number) < 999 and number[1] + number[2] == "15": num_in_letters = "fifteen" desetici = "fifteen" elif int(number) == 16 or 100 < int(number) < 999 and number[1] + number[2] == "16": num_in_letters = "sixteen" desetici = "sixteen" elif int(number) == 17 or 100 < int(number) < 999 and number[1] + number[2] == "17": num_in_letters = "seventeen" desetici = "seventeen" elif int(number) == 18 or 100 < int(number) < 999 and number[1] + number[2] == "18": num_in_letters = "eighteen" desetici = "eighteen" elif int(number) == 19 or 100 < int(number) < 999 and number[1] + number[2] == "19": num_in_letters = "nineteen" desetici = "nineteen" elif int(number) == 14 or 100 < int(number) < 999 and number[1] + number[2] == "14": num_in_letters = "fourteen" desetici = "fourteen" elif int(number) == 0: num_in_letters = "zero" if 19 < int(number) <= 999: # + desetici 20 30 40 50 if number[1] == "2" and 100 < int(number) < 999 or 0 < int(number) < 100 and number[0] == "2": desetici = "twenty" elif number[1] == "3" and 100 < int(number) < 999 or 0 < int(number) < 100 and number[0] == "3": desetici = "thirty" elif number[1] == "4" and 100 < int(number) < 999 or 0 < int(number) < 100 and number[0] == "4": desetici = "fourty" elif number[1] == "5" and 100 < int(number) < 999 or 0 < int(number) < 100 and number[0] == "5": desetici = "fifty" elif number[1] == "6" and 100 < int(number) < 999 or 0 < int(number) < 100 and number[0] == "6": desetici = "sixty" elif number[1] == "7" and 100 < int(number) < 999 or 0 < int(number) < 100 and number[0] == "7": desetici = "seventy" elif number[1] == "8" and 100 < int(number) < 999 or 0 < int(number) < 100 and number[0] == "8": desetici = "eighty" elif number[1] == "9" and 100 < int(number) <= 999 or 0 < int(number) < 100 and number[0] == "9": desetici = "ninety" if number[0] == "1" and 99 < int(number) < 999: hundreds = "one-hundred" elif number[0] == "2" and 99 < int(number) < 999: hundreds = "two-hundred" elif number[0] == "3" and 99 < int(number) < 999: hundreds = "three-hundred" elif number[0] == "4" and 99 < int(number) < 999: hundreds = "four-hundred" elif number[0] == "5" and 99 < int(number) < 999: hundreds = "five-hundred" elif number[0] == "6" and 99 < int(number) < 999: hundreds = "six-hundred" elif number[0] == "7" and 99 < int(number) < 999: hundreds = "seven-hundred" elif number[0] == "8" and 99 < int(number) < 999: hundreds = "eight-hundred" elif number[0] == "9" and 99 < int(number) <= 999: hundreds = "nine-hundred" if 1000 > int(minus_number) >= 0: if 0 <= int(minus_number) <= 19: print(num_in_letters) if 20 <= int(minus_number) <= 99: print(f"{desetici} {num_in_letters}") if 100 <= int(minus_number) <= 999 and number[1] != "1" and number[1] != "0": print(f"{hundreds} and {desetici } {num_in_letters}") if 100 <= int(minus_number) <= 999 and number[1] == "1": print(f"{hundreds} and {desetici}") if 100 <= int(minus_number) <= 999 and number[1] == "0": if number[2] != "0": print(f"{hundreds} and {desetici}") if number[2] == "0": print(f"{hundreds}") elif -1000 < int(minus_number) < 0: if 0 <= abs(int(minus_number)) <= 19: print(f"minus {num_in_letters}") if 20 <= abs(int(minus_number)) <= 99: print(f"minus {desetici} {num_in_letters}") if 100 <= abs(int(minus_number)) <= 999 and number[1] != "1" and number[1] != "0": print(f"minus {hundreds} and {desetici} {num_in_letters}") if 100 <= abs(int(minus_number)) <= 999 and number[1] == "1": print(f"minus {hundreds} and {desetici}") if 100 <= abs(int(minus_number)) <= 999 and number[1] == "0": if number[2] != "0": print(f"{hundreds} and {desetici}") if number[2] == "0": print(f"minus {hundreds}") elif int(minus_number) < -999: print("too small") elif int(minus_number) > 999: print("too large") for i in range(number_of_nums): lettersize(input())
Привет, с този код judge ми дава 70/100
единстената грешка, която ми "подсказва" е при ZeroTest 2
input 2, 15, 350
на мен си ми излиза отговора, само че според мен в джъдж теста е грешен
Дали някой може да погледне и да ми даде съвет какво ми се губи, Благодаря
УСЛОВИЕ
Задача: числа към думи Да се напише функция letterize(number), която прочита цяло число и го разпечатва с думи на английски език според условията по-долу: • Да се отпечатат с думи стотиците, десетиците и единиците (и евентуални минус) според правилата на английския език. • Ако числото е по-голямо от 999, трябва да се принтира "too large". • Ако числото е по-малко от -999, трябва да се принтира "too small". • Ако числото е отрицателно, трябва да се принтира "minus" преди него. • Ако числото не е съставено от три цифри, не трябва да се принтира.
В движение съм и линк не мога да пратя, но Да, задачата е от учебника раздел функции, който е след подготовка за изпит, там има линк и условия.
Поздрави