Александра обнови решението на 03.11.2022 12:50 (преди над 2 години)
+import math
+
+buttons = [ ( 0 , " " ),
+ ( 1 , "" ),
+ ( 2 , "ABC" ),
+ ( 3 , "DEF" ),
+ ( 4 , "GHI" ),
+ ( 5 , "JKL" ),
+ ( 6 , "MNO" ),
+ ( 7 , "PQRS" ),
+ ( 8 , "TUV" ),
+ ( 9 , "WXYZ" ) ]
+
+def nums_to_text(nums) :
Моля не слагай интервал преди :
. #PEP8
+ nums.append(-2)
+ text = ""
+ clicks = 0
+ prev = -2
+
+ for num in nums :
+ if num == prev :
+ clicks+=1
+ else :
+ for button, letters in buttons :
+ if button == prev :
+ if button != 1 :
+ text += letters[clicks%len(letters)]
+ clicks = 0
+ prev = num
+ return text
+
+def text_to_nums(text) :
+ nums = []
+ clicks = 0
+ for letter in text :
+ upper_letter= letter.upper()
+ for button, letters in buttons :
+ if upper_letter in letters :
+ clicks = letters.find(upper_letter)
+ if len(nums) > 0 :
+ if nums[-1] == button :
+ nums.append(-1)
+ while clicks >= 0 :
+ nums.append(button)
+ clicks -= 1
+ break
+
+ return nums
+
+def nums_to_angle(nums) :
+ angle = 0
+
+ for num in nums :
+ if num != 0 :
+ angle+= num*30
+ else : angle += 300
Нека това е на нов ред, след else:
, както е прието. Ако в дадения случай просто казваш continue
, pass
или нещо друго подобно, може, но иначе, прието е операцията да е на нов ред.
+ return angle%360
+
+def angles_to_nums(angles) :
+ nums = []
+ num = 0
+ for angle in angles :
+ if angle < 0 :
+ angle = angle % 360 + 360
+ if angle > 359 :
+ angle = angle % 360
+ if angle >= 330: continue
+ if angle%30 == 15 : num = math.floor(angle/30)
+ else : num = round(angle/30)
+ if num == 0: continue
+ nums.append(num)
+ return nums
+
+def is_phone_tastic(word) :
+ if len(word) == 0 : return False
+ nums = text_to_nums(word)
+ angle = nums_to_angle(nums)
+ number_of_letters = len([element for element in word if element.isalpha()])
+ if angle % number_of_letters == 0 :
+ return True
+ return False
Моля не слагай интервал преди
:
. #PEP8Нека това е на нов ред, след
else:
, както е прието. Ако в дадения случай просто казвашcontinue
,pass
или нещо друго подобно, може, но иначе, прието е операцията да е на нов ред.