Йордан обнови решението на 28.10.2022 16:56 (преди над 2 години)
1) Съветвам те да използваш по-описателно има на променливата.
2) След :
е прието да има интервал #PEP8
3) Добре е редовете ти да са приравнени един с друг. Т.е. цифрите, които са ключ на речника, да се намират на една и съща колона във всеки ред. В момента това е валидно за всички редове без първия.
Например
num_to_letters = {
2: ["A", "B", "C"],
3: ["D", "E", "F"],
4: ["G", "H", "I"],
5: ["J", "K", "L"],
6: ["M", "N", "O"],
7: ["P", "Q", "R", "S"],
8: ["T", "U", "V"],
9: ["W", "X", "Y", "Z"]
}
Липсва интервал след запетаята.
Тази проверка можеш да направиш с ключовете на самия речник.
mp.get(last_num, None)
После, ако е None го пренебрегваш, ако не е, значи можеш да мапнеш.
Така хем не дублираш дефиниции, хем пестиш код.
if num not in (-1, 1, 0)
- ако проверявваш дали променлива е това, това, или това, най-добре ги сложиш в колекция и използвай in
. По-кратко и по-четимо.
str
e резервирана дума - функцията, която можеш да използваш да кастнеш към string
.
Ако разбирам правилно идеята, тук кастваш str
към int
. Можеш да направиш същото с int(char)
.
Бих опитал да дефинирам този алгоритъм без нуждата от дестина if-a
Съветвам те да изтестваш кода си и да обърнеш внимание на граничните сличаи. Имаш пропуски, които можеш да откриеш.
Импортирай извън функцията. Рядко се налага да импортираш вътре.
Би могъл да ги дефинираш с един цикъл.