Решение на Телефонна любов от Алекс Божинов
Резултати
- 9 точки от тестове
- 0 бонус точки
- 9 точки общо
- 35 успешни тест(а)
- 2 неуспешни тест(а)
Код
Лог от изпълнението
.......EE............................
======================================================================
ERROR: test_random_mixed_case (test.TestAnglesToNums)
Test with a random mixed input.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
raise result
IndexError: list index out of range
======================================================================
ERROR: test_round_angle_direction (test.TestAnglesToNums)
Test with an angle requiring explicit rounding to floor.
----------------------------------------------------------------------
Traceback (most recent call last):
File "/storage/deedee/data/rails/pyfmi-2022/releases/20221020151654/lib/language/python/runner.py", line 67, in thread
raise result
IndexError: list index out of range
----------------------------------------------------------------------
Ran 37 tests in 0.369s
FAILED (errors=2)
История (5 версии и 6 коментара)
Алекс обнови решението на 30.10.2022 16:21 (преди около 3 години)
Можеш просто:
return len(phone_buttons[clicked_button]) == iterations_count + 1
което поставя под въпрос нуждата от тази функция.
Да, по този начин кодът, който я използва е по-лесен за възприемане, но пък е израз от само един ред.
Въпрос на вкус :)
Мисля си, че този случай може да стане част от while-а.
Ако напишеш if с обратната логика, можеш директно да break-неш, за да си спестиш флага и if-else проверката.
Предполагам, че можеш да постигнеш същия резултат, като използваш остатък при деление на 360. Става въпрос както за тази, така и запредишната функция.
Не е нужно, а и дори не е пропоръчително, да обхождаш речника.
Можеш просто да вземеш елемент от него:
phone_dial[angle] или phone_dial.get(angle)
Съветвам те да се опиташ да рефакторираш nums_to_text. Няма да лъжа - трудно ми е да проследя логиката. Оставих коментари по отделните парчета код от функцията, които видях на пръв поглед, но ми се струва прекалено усложнено.
С останалото си се справил добре.

Предполагам, че можеш да постигнеш същия резултат, като използваш остатък при деление на 360. Става въпрос както за тази, така и запредишната функция.