Мария обнови решението на 02.11.2022 18:53 (преди над 2 години)
+def nums_to_text(nums):
+ text = ''
+ last_number = nums[0]
+ counter = 0
+ nums.append(-1)
+ for number in nums:
+ if number == last_number:
+ counter += 1
+ elif number != last_number:
+ if last_number == 2:
Цялата тази логика можеш да дефинираш в речник, за да спестиш десетките проверки.
+ counter = counter % 3
+ if counter == 1:
+ text += 'A'
+ elif counter == 2:
+ text += 'B'
+ elif counter == 0:
+ text += 'C'
+ elif last_number == 3:
+ counter = counter % 3
+ if counter == 1:
+ text += 'D'
+ elif counter == 2:
+ text += 'E'
+ elif counter == 0:
+ text += 'F'
+ elif last_number == 4:
+ counter = counter % 3
+ if counter == 1:
+ text += 'G'
+ elif counter == 2:
+ text += 'H'
+ elif counter == 0:
+ text += 'I'
+ elif last_number == 5:
+ counter = counter % 3
+ if counter == 1:
+ text += 'J'
+ elif counter == 2:
+ text += 'K'
+ elif counter == 0:
+ text += 'L'
+ elif last_number == 6:
+ counter = counter % 3
+ if counter == 1:
+ text += 'M'
+ elif counter == 2:
+ text += 'N'
+ elif counter == 0:
+ text += 'O'
+ elif last_number == 7:
+ counter = counter % 4
+ if counter == 1:
+ text += 'P'
+ elif counter == 2:
+ text += 'Q'
+ elif counter == 3:
+ text += 'R'
+ elif counter == 0:
+ text += 'S'
+ elif last_number == 8:
+ counter = counter % 3
+ if counter == 1:
+ text += 'T'
+ elif counter == 2:
+ text += 'U'
+ elif counter == 0:
+ text += 'V'
+ elif last_number == 9:
+ counter = counter % 4
+ if counter == 1:
+ text += 'W'
+ elif counter == 2:
+ text += 'X'
+ elif counter == 3:
+ text += 'Y'
+ elif counter == 0:
+ text += 'Z'
+ last_number = number
+ counter = 1
+ return text
+
+
+def text_to_nums(text):
+ nums = []
+ for character in text:
+ character = character.lower()
+ if character == ' ':
+ nums.append(0)
+ elif character == 'a':
+ if len(nums) != 0:
+ if nums[-1] == 2:
+ nums.append(-1)
+ nums.append(2)
+ elif character == 'b':
+ if len(nums) != 0:
+ if nums[-1] == 2:
+ nums.append(-1)
+ nums.append(2)
+ nums.append(2)
+ elif character == 'c':
+ if len(nums) != 0:
+ if nums[-1] == 2:
+ nums.append(-1)
+ nums.append(2)
+ nums.append(2)
+ nums.append(2)
+ elif character == 'd':
+ if len(nums) != 0:
+ if nums[-1] == 3:
+ nums.append(-1)
+ nums.append(3)
+ elif character == 'e':
+ if len(nums) != 0:
+ if nums[-1] == 3:
+ nums.append(-1)
+ nums.append(3)
+ nums.append(3)
+ elif character == 'f':
+ if len(nums) != 0:
+ if nums[-1] == 3:
+ nums.append(-1)
+ nums.append(3)
+ nums.append(3)
+ nums.append(3)
+ elif character == 'g':
+ if len(nums) != 0:
+ if nums[-1] == 4:
+ nums.append(-1)
+ nums.append(4)
+ elif character == 'h':
+ if len(nums) != 0:
+ if nums[-1] == 4:
+ nums.append(-1)
+ nums.append(4)
+ nums.append(4)
+ elif character == 'i':
+ if len(nums) != 0:
+ if nums[-1] == 4:
+ nums.append(-1)
+ nums.append(4)
+ nums.append(4)
+ nums.append(4)
+ elif character == 'j':
+ if len(nums) != 0:
+ if nums[-1] == 5:
+ nums.append(-1)
+ nums.append(5)
+ elif character == 'k':
+ if len(nums) != 0:
+ if nums[-1] == 5:
+ nums.append(-1)
+ nums.append(5)
+ nums.append(5)
+ elif character == 'l':
+ if len(nums) != 0:
+ if nums[-1] == 5:
+ nums.append(-1)
+ nums.append(5)
+ nums.append(5)
+ nums.append(5)
+ elif character == 'm':
+ if len(nums) != 0:
+ if nums[-1] == 6:
+ nums.append(-1)
+ nums.append(6)
+ elif character == 'n':
+ if len(nums) != 0:
+ if nums[-1] == 6:
+ nums.append(-1)
+ nums.append(6)
+ nums.append(6)
+ elif character == 'o':
+ if len(nums) != 0:
+ if nums[-1] == 6:
+ nums.append(-1)
+ nums.append(6)
+ nums.append(6)
+ nums.append(6)
+ elif character == 'p':
+ if len(nums) != 0:
+ if nums[-1] == 7:
+ nums.append(-1)
+ nums.append(7)
+ elif character == 'q':
+ if len(nums) != 0:
+ if nums[-1] == 7:
+ nums.append(-1)
+ nums.append(7)
+ nums.append(7)
+ elif character == 'r':
+ if len(nums) != 0:
+ if nums[-1] == 7:
+ nums.append(-1)
+ nums.append(7)
+ nums.append(7)
+ nums.append(7)
+ elif character == 's':
+ if len(nums) != 0:
+ if nums[-1] == 7:
+ nums.append(-1)
+ nums.append(7)
+ nums.append(7)
+ nums.append(7)
+ nums.append(7)
+ elif character == 't':
+ if len(nums) != 0:
+ if nums[-1] == 8:
+ nums.append(-1)
+ nums.append(8)
+ elif character == 'u':
+ if len(nums) != 0:
+ if nums.pop() == 8:
+ nums.append(-1)
+ nums.append(8)
+ nums.append(8)
+ elif character == 'v':
+ if len(nums) != 0:
+ if nums[-1] == 8:
+ nums.append(-1)
+ nums.append(8)
+ nums.append(8)
+ nums.append(8)
+ elif character == 'w':
+ if len(nums) != 0:
+ if nums[-1] == 9:
+ nums.append(-1)
+ nums.append(9)
+ elif character == 'x':
+ if len(nums) != 0:
+ if nums[-1] == 9:
+ nums.append(-1)
+ nums.append(9)
+ nums.append(9)
+ elif character == 'y':
+ if len(nums) != 0:
+ if nums[-1] == 9:
+ nums.append(-1)
+ nums.append(9)
+ nums.append(9)
+ nums.append(9)
+ elif character == 'z':
+ if len(nums) != 0:
+ if nums[-1] == 9:
+ nums.append(-1)
+ nums.append(9)
+ nums.append(9)
+ nums.append(9)
+ nums.append(9)
+ return nums
+
+
+def nums_to_angle(nums):
+ angle = 0
+ for number in nums:
+ if number == 0:
+ angle += 300
+ else:
+ angle += number * 30
+ angle = angle % 360
+ return angle
+
+
+def angles_to_nums(angles):
+ nums = []
+ for angle in angles:
+ while angle < 0:
+ angle = angle + 360
+ if angle > 359:
+ angle = angle % 360
+ if angle > 345 and angle <= 360:
+ angle = 0
+ else:
+ rest = angle % 30
+ if rest > 15:
+ angle = angle + (30 - rest)
+ else:
+ angle = angle - rest
+ if angle != 330 and angle != 0 and angle != 300:
+ number = angle / 30
+ if int(number) != 0:
+ nums.append(int(number))
+ return nums
+
+
+def is_phone_tastic(word):
Вече имаш дефинирани и двете функции, които is_phone_tastic
трябва да използва. Използвай ги наготово. Няма нужда да копираш вече написан код.
+ num_of_characters = len(word)
+ nums = []
+ for character in word:
+ character = character.lower()
+ if character == ' ':
+ nums.append(0)
+ elif character == 'a':
+ nums.append(2)
+ elif character == 'b':
+ nums.append(2)
+ nums.append(2)
+ elif character == 'c':
+ nums.append(2)
+ nums.append(2)
+ nums.append(2)
+ elif character == 'd':
+ nums.append(3)
+ elif character == 'e':
+ nums.append(3)
+ nums.append(3)
+ elif character == 'f':
+ nums.append(3)
+ nums.append(3)
+ nums.append(3)
+ elif character == 'g':
+ nums.append(4)
+ elif character == 'h':
+ nums.append(4)
+ nums.append(4)
+ elif character == 'i':
+ nums.append(4)
+ nums.append(4)
+ nums.append(4)
+ elif character == 'j':
+ nums.append(5)
+ elif character == 'k':
+ nums.append(5)
+ nums.append(5)
+ elif character == 'l':
+ nums.append(5)
+ nums.append(5)
+ nums.append(5)
+ elif character == 'm':
+ nums.append(6)
+ elif character == 'n':
+ nums.append(6)
+ nums.append(6)
+ elif character == 'o':
+ nums.append(6)
+ nums.append(6)
+ nums.append(6)
+ elif character == 'p':
+ nums.append(7)
+ elif character == 'q':
+ nums.append(7)
+ nums.append(7)
+ elif character == 'r':
+ nums.append(7)
+ nums.append(7)
+ nums.append(7)
+ elif character == 's':
+ nums.append(7)
+ nums.append(7)
+ nums.append(7)
+ nums.append(7)
+ elif character == 't':
+ nums.append(8)
+ elif character == 'u':
+ nums.append(8)
+ nums.append(8)
+ elif character == 'v':
+ nums.append(8)
+ nums.append(8)
+ nums.append(8)
+ elif character == 'w':
+ nums.append(9)
+ elif character == 'x':
+ nums.append(9)
+ nums.append(9)
+ elif character == 'y':
+ nums.append(9)
+ nums.append(9)
+ nums.append(9)
+ elif character == 'z':
+ nums.append(9)
+ nums.append(9)
+ nums.append(9)
+ nums.append(9)
+ angle = 0
+ for number in nums:
+ if number == 0:
+ angle += 300
+ else:
+ angle += number * 30
+ angle = angle % 360
+ result = False
+ if angle % num_of_characters == 0:
+ result = True
+ return result
Цялата тази логика можеш да дефинираш в речник, за да спестиш десетките проверки.
Вече имаш дефинирани и двете функции, които
is_phone_tastic
трябва да използва. Използвай ги наготово. Няма нужда да копираш вече написан код.