-
Notifications
You must be signed in to change notification settings - Fork 0
/
replace_with_alphabet_position.py
34 lines (20 loc) · 1.12 KB
/
replace_with_alphabet_position.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import unittest
# URL: https://www.codewars.com/kata/546f922b54af40e1e90001da
'''In this kata you are required to, given a string, replace every letter with its position in the alphabet.
If anything in the text isn't a letter, ignore it and don't return it.
"a" = 1, "b" = 2, etc.
Example
alphabet_position("The sunset sets at twelve o' clock.")
Should return "20 8 5 19 21 14 19 5 20 19 5 20 19 1 20 20 23 5 12 22 5 15 3 12 15 3 11" (as a string)'''
# SOLUTION
def alphabet_position(text):
return "".join([str(ord(char) - 64) + " " for char in text.upper() if 1 <= ord(char) - 64 <= 26])[:-1]
class TestClass(unittest.TestCase):
def test_replace_with_alphabet_test_1(self):
self.assertEqual(alphabet_position("The sunset sets at twelve o' clock."),
"20 8 5 19 21 14 19 5 20 19 5 20 19 1 20 20 23 5 12 22 5 15 3 12 15 3 11")
def test_replace_with_alphabet_test_2(self):
self.assertEqual(alphabet_position("The narwhal bacons at midnight."),
"20 8 5 14 1 18 23 8 1 12 2 1 3 15 14 19 1 20 13 9 4 14 9 7 8 20")
if __name__ == '__main__':
unittest.main()