✨ Finish Elementary
This commit is contained in:
		
							
								
								
									
										20
									
								
								Elementary/absolute-sorting.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								Elementary/absolute-sorting.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| def checkio(numbers_array: tuple) -> list: | ||||
|     return sorted(numbers_array, key=lambda o: abs(o)) | ||||
|  | ||||
|  | ||||
| # These "asserts" using only for self-checking and not necessary for auto-testing | ||||
| if __name__ == '__main__': | ||||
|     print('Example:') | ||||
|     print(list(checkio((-20, -5, 10, 15)))) | ||||
|  | ||||
|  | ||||
|     def check_it(array): | ||||
|         if not isinstance(array, (list, tuple)): | ||||
|             raise TypeError("The result should be a list or tuple.") | ||||
|         return list(array) | ||||
|  | ||||
|  | ||||
|     assert check_it(checkio((-20, -5, 10, 15))) == [-5, 10, 15, -20], "Example"  # or (-5, 10, 15, -20) | ||||
|     assert check_it(checkio((1, 2, 3, 0))) == [0, 1, 2, 3], "Positive numbers" | ||||
|     assert check_it(checkio((-1, -2, -3, 0))) == [0, -1, -2, -3], "Negative numbers" | ||||
|     print("Coding complete? Click 'Check' to review your tests and earn cool rewards!") | ||||
							
								
								
									
										18
									
								
								Elementary/best-stock.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								Elementary/best-stock.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| def best_stock(a): | ||||
|     max_value = 0 | ||||
|     best = None | ||||
|     for k, v in a.items(): | ||||
|         if v > max_value: | ||||
|             max_value = v | ||||
|             best = k | ||||
|     return best | ||||
|  | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     print("Example:") | ||||
|     print(best_stock({"CAC": 10.0, "ATX": 390.2, "WIG": 1.2})) | ||||
|  | ||||
|     # These "asserts" are used for self-checking and not for an auto-testing | ||||
|     assert best_stock({"CAC": 10.0, "ATX": 390.2, "WIG": 1.2}) == "ATX" | ||||
|     assert best_stock({"CAC": 91.1, "ATX": 1.01, "TASI": 120.9}) == "TASI" | ||||
|     print("Coding complete? Click 'Check' to earn cool rewards!") | ||||
							
								
								
									
										20
									
								
								Elementary/between-markers-simplified.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								Elementary/between-markers-simplified.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| import re | ||||
|  | ||||
|  | ||||
| def between_markers(text: str, begin: str, end: str) -> str: | ||||
|     """ | ||||
|         returns substring between two given markers | ||||
|     """ | ||||
|     return re.findall(r"{}(.*){}".format(re.escape(begin), re.escape(end)), text)[0] | ||||
|  | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     print('Example:') | ||||
|     print(between_markers('What is >apple<', '>', '<')) | ||||
|  | ||||
|     # These "asserts" are used for self-checking and not for testing | ||||
|     assert between_markers('What is >apple<', '>', '<') == "apple" | ||||
|     assert between_markers('What is [apple]', '[', ']') == "apple" | ||||
|     assert between_markers('What is ><', '>', '<') == "" | ||||
|     assert between_markers('>apple<', '>', '<') == "apple" | ||||
|     print('Wow, you are doing pretty good. Time to check it!') | ||||
							
								
								
									
										28
									
								
								Elementary/between-markers.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								Elementary/between-markers.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | ||||
| import re | ||||
|  | ||||
|  | ||||
| def between_markers(text: str, begin: str, end: str) -> str: | ||||
|     """ | ||||
|         returns substring between two given markers | ||||
|     """ | ||||
|     if text.count(begin) == 0: | ||||
|         text = begin+text | ||||
|     if text.count(end) == 0: | ||||
|         text = text+end | ||||
|     found = re.findall(r"{}(.*){}".format(re.escape(begin), re.escape(end)), text) | ||||
|     return found[0] if len(found) > 0 else "" | ||||
|  | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     print('Example:') | ||||
|     print(between_markers('What is >apple<', '>', '<')) | ||||
|  | ||||
|     # These "asserts" are used for self-checking and not for testing | ||||
|     assert between_markers('What is >apple<', '>', '<') == "apple", "One sym" | ||||
|     assert between_markers("<head><title>My new site</title></head>", | ||||
|                            "<title>", "</title>") == "My new site", "HTML" | ||||
|     assert between_markers('No[/b] hi', '[b]', '[/b]') == 'No', 'No opened' | ||||
|     assert between_markers('No [b]hi', '[b]', '[/b]') == 'hi', 'No close' | ||||
|     assert between_markers('No hi', '[b]', '[/b]') == 'No hi', 'No markers at all' | ||||
|     assert between_markers('No <hi>', '>', '<') == '', 'Wrong direction' | ||||
|     print('Wow, you are doing pretty good. Time to check it!') | ||||
							
								
								
									
										37
									
								
								Elementary/bigger-price.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								Elementary/bigger-price.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | ||||
| def bigger_price(limit: int, data: list) -> list: | ||||
|     """ | ||||
|         TOP most expensive goods | ||||
|     """ | ||||
|     data = sorted(data, key=lambda o: o["price"]) | ||||
|     data.reverse() | ||||
|     return data[0: limit] | ||||
|  | ||||
|  | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     from pprint import pprint | ||||
|     print('Example:') | ||||
|     pprint(bigger_price(2, [ | ||||
|         {"name": "bread", "price": 100}, | ||||
|         {"name": "wine", "price": 138}, | ||||
|         {"name": "meat", "price": 15}, | ||||
|         {"name": "water", "price": 1} | ||||
|     ])) | ||||
|  | ||||
|     # These "asserts" using for self-checking and not for auto-testing | ||||
|     assert bigger_price(2, [ | ||||
|         {"name": "bread", "price": 100}, | ||||
|         {"name": "wine", "price": 138}, | ||||
|         {"name": "meat", "price": 15}, | ||||
|         {"name": "water", "price": 1} | ||||
|     ]) == [ | ||||
|         {"name": "wine", "price": 138}, | ||||
|         {"name": "bread", "price": 100} | ||||
|     ], "First" | ||||
|  | ||||
|     assert bigger_price(1, [ | ||||
|         {"name": "pen", "price": 5}, | ||||
|         {"name": "whiteboard", "price": 170} | ||||
|     ]) == [{"name": "whiteboard", "price": 170}], "Second" | ||||
|  | ||||
|     print('Done! Looks like it is fine. Go and check it') | ||||
							
								
								
									
										14
									
								
								Elementary/even-last.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								Elementary/even-last.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| def checkio(array): | ||||
|     return sum([x for i, x in enumerate(array) if i % 2 == 0]) * array[-1:][0] if len(array) > 0 else 0 | ||||
|  | ||||
|  | ||||
| # These "asserts" using only for self-checking and not necessary for auto-testing | ||||
| if __name__ == '__main__': | ||||
|     print('Example:') | ||||
|     print(checkio([0, 1, 2, 3, 4, 5])) | ||||
|  | ||||
|     assert checkio([0, 1, 2, 3, 4, 5]) == 30, "(0+2+4)*5=30" | ||||
|     assert checkio([1, 3, 5]) == 30, "(1+5)*5=30" | ||||
|     assert checkio([6]) == 36, "(6)*6=36" | ||||
|     assert checkio([]) == 0, "An empty array = 0" | ||||
|     print("Coding complete? Click 'Check' to review your tests and earn cool rewards!") | ||||
							
								
								
									
										16
									
								
								Elementary/first-word-simplified.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								Elementary/first-word-simplified.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| def first_word(text: str) -> str: | ||||
|     """ | ||||
|         returns the first word in a given text. | ||||
|     """ | ||||
|     return text[0:text.find(" ")] if text.find(" ") != -1 else text | ||||
|  | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     print("Example:") | ||||
|     print(first_word("Hello world")) | ||||
|  | ||||
|     # These "asserts" are used for self-checking and not for an auto-testing | ||||
|     assert first_word("Hello world") == "Hello" | ||||
|     assert first_word("a word") == "a" | ||||
|     assert first_word("hi") == "hi" | ||||
|     print("Coding complete? Click 'Check' to earn cool rewards!") | ||||
							
								
								
									
										24
									
								
								Elementary/first-word.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								Elementary/first-word.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| import re | ||||
|  | ||||
|  | ||||
| def first_word(text: str) -> str: | ||||
|     """ | ||||
|         returns the first word in a given text. | ||||
|     """ | ||||
|     s = re.findall(r"(\b[a-zA-Z']+)", text) | ||||
|     return s[0] | ||||
|  | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     print("Example:") | ||||
|     print(first_word("Hello world")) | ||||
|  | ||||
|     # These "asserts" are used for self-checking and not for an auto-testing | ||||
|     assert first_word("Hello world") == "Hello" | ||||
|     assert first_word(" a word ") == "a" | ||||
|     assert first_word("don't touch it") == "don't" | ||||
|     assert first_word("greetings, friends") == "greetings" | ||||
|     assert first_word("... and so on ...") == "and" | ||||
|     assert first_word("hi") == "hi" | ||||
|     assert first_word("Hello.World") == "Hello" | ||||
|     print("Coding complete? Click 'Check' to earn cool rewards!") | ||||
							
								
								
									
										28
									
								
								Elementary/fizz-buzz.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								Elementary/fizz-buzz.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | ||||
| # Your optional code here | ||||
| # You can import some modules or create additional functions | ||||
|  | ||||
|  | ||||
| def checkio(number: int) -> str: | ||||
|     result = [] | ||||
|     if number % 3 == 0: | ||||
|         result.append("Fizz") | ||||
|     if number % 5 == 0: | ||||
|         result.append("Buzz") | ||||
|     if len(result) == 0: | ||||
|         return str(number) | ||||
|     return " ".join(result) | ||||
|  | ||||
|  | ||||
| # Some hints: | ||||
| # Convert a number in the string with str(n) | ||||
|  | ||||
| # These "asserts" using only for self-checking and not necessary for auto-testing | ||||
| if __name__ == '__main__': | ||||
|     print('Example:') | ||||
|     print(checkio(15)) | ||||
|  | ||||
|     assert checkio(15) == "Fizz Buzz", "15 is divisible by 3 and 5" | ||||
|     assert checkio(6) == "Fizz", "6 is divisible by 3" | ||||
|     assert checkio(5) == "Buzz", "5 is divisible by 5" | ||||
|     assert checkio(7) == "7", "7 is not divisible by 3 or 5" | ||||
|     print("Coding complete? Click 'Check' to review your tests and earn cool rewards!") | ||||
							
								
								
									
										25
									
								
								Elementary/most-numbers.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								Elementary/most-numbers.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| def checkio(*args): | ||||
|     difference = 0 | ||||
|     for first_number in args: | ||||
|         for second_number in args: | ||||
|             difference_between_numbers = abs(first_number - second_number) | ||||
|             if difference_between_numbers > difference: | ||||
|                 difference = difference_between_numbers | ||||
|     return difference | ||||
|  | ||||
|  | ||||
| # These "asserts" using only for self-checking and not necessary for auto-testing | ||||
| if __name__ == '__main__': | ||||
|     def almost_equal(checked, correct, significant_digits): | ||||
|         precision = 0.1 ** significant_digits | ||||
|         return correct - precision < checked < correct + precision | ||||
|  | ||||
|  | ||||
|     print('Example:') | ||||
|     print(checkio(1, 2, 3)) | ||||
|  | ||||
|     assert almost_equal(checkio(1, 2, 3), 2, 3), "3-1=2" | ||||
|     assert almost_equal(checkio(5, -5), 10, 3), "5-(-5)=10" | ||||
|     assert almost_equal(checkio(10.2, -2.2, 0, 1.1, 0.5), 12.4, 3), "10.2-(-2.2)=12.4" | ||||
|     assert almost_equal(checkio(), 0, 3), "Empty" | ||||
|     print("Coding complete? Click 'Check' to review your tests and earn cool rewards!") | ||||
							
								
								
									
										35
									
								
								Elementary/popular-words.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								Elementary/popular-words.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | ||||
| def popular_words(text: str, words: list) -> dict: | ||||
|     result = {} | ||||
|     text = text.lower() | ||||
|     for word in words: | ||||
|         # print(text[0:len(word)+1]) | ||||
|         result[word] = 1 if text[-(len(word)):] == word else 0 | ||||
|         result[word] += 1 if text[0:len(word)+1] == word+" " else 0 | ||||
|         result[word] += text.count(" "+word+" ") | ||||
|         result[word] += text.count(word+"\n") | ||||
|         result[word] += text.count("\n"+word+" ") | ||||
|     return result | ||||
|  | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     print("Example:") | ||||
|     print(popular_words(''' | ||||
| When I was One | ||||
| I had just begun | ||||
| When I was Two | ||||
| I was nearly new | ||||
| ''', ['i', 'was', 'three', 'near'])) | ||||
|  | ||||
|     # These "asserts" are used for self-checking and not for an auto-testing | ||||
|     assert popular_words(''' | ||||
| When I was One | ||||
| I had just begun | ||||
| When I was Two | ||||
| I was nearly new | ||||
| ''', ['i', 'was', 'three', 'near']) == { | ||||
|         'i': 4, | ||||
|         'was': 3, | ||||
|         'three': 0, | ||||
|         'near': 0 | ||||
|     } | ||||
|     print("Coding complete? Click 'Check' to earn cool rewards!") | ||||
							
								
								
									
										17
									
								
								Elementary/right-to-left.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								Elementary/right-to-left.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| def left_join(phrases): | ||||
|     """ | ||||
|         Join strings and replace "right" to "left" | ||||
|     """ | ||||
|     return ",".join([x.replace("right", "left") for x in phrases]) | ||||
|  | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     print('Example:') | ||||
|     print(left_join(("left", "right", "left", "stop"))) | ||||
|  | ||||
|     # These "asserts" using only for self-checking and not necessary for auto-testing | ||||
|     assert left_join(("left", "right", "left", "stop")) == "left,left,left,stop", "All to left" | ||||
|     assert left_join(("bright aright", "ok")) == "bleft aleft,ok", "Bright Left" | ||||
|     assert left_join(("brightness wright",)) == "bleftness wleft", "One phrase" | ||||
|     assert left_join(("enough", "jokes")) == "enough,jokes", "Nothing to replace" | ||||
|     print("Coding complete? Click 'Check' to review your tests and earn cool rewards!") | ||||
							
								
								
									
										19
									
								
								Elementary/second-index.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								Elementary/second-index.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| def second_index(text: str, symbol: str) -> [int, None]: | ||||
|     """ | ||||
|         returns the second index of a symbol in a given text | ||||
|     """ | ||||
|     symbols = [index for index, letter in enumerate(text) if letter == symbol] | ||||
|     return symbols[1] if len(symbols) > 1 else None | ||||
|  | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     print('Example:') | ||||
|     print(second_index("sims", "s")) | ||||
|  | ||||
|     # These "asserts" are used for self-checking and not for an auto-testing | ||||
|     assert second_index("sims", "s") == 3, "First" | ||||
|     assert second_index("find the river", "e") == 12, "Second" | ||||
|     assert second_index("hi", " ") is None, "Third" | ||||
|     assert second_index("hi mayor", " ") is None, "Fourth" | ||||
|     assert second_index("hi mr Mayor", " ") == 5, "Fifth" | ||||
|     print('You are awesome! All tests are done! Go Check it!') | ||||
							
								
								
									
										13
									
								
								Elementary/secret-message.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								Elementary/secret-message.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| def find_message(text: str) -> str: | ||||
|     return "".join([x for x in text if x in "ABCDEFGHIJKLMNOPQRSTUVWXYZ"]) | ||||
|  | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     print('Example:') | ||||
|     print(find_message("How are you? Eh, ok. Low or Lower? Ohhh.")) | ||||
|  | ||||
|     # These "asserts" using only for self-checking and not necessary for auto-testing | ||||
|     assert find_message("How are you? Eh, ok. Low or Lower? Ohhh.") == "HELLO", "hello" | ||||
|     assert find_message("hello world!") == "", "Nothing" | ||||
|     assert find_message("HELLO WORLD!!!") == "HELLOWORLD", "Capitals" | ||||
|     print("Coding complete? Click 'Check' to review your tests and earn cool rewards!") | ||||
							
								
								
									
										24
									
								
								Elementary/three-words.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								Elementary/three-words.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| def checkio(words: str) -> bool: | ||||
|     count = 0 | ||||
|     words = words.split(" ") | ||||
|     for word in words: | ||||
|         if word[0].isalpha(): | ||||
|             count += 1 | ||||
|             if count == 3: | ||||
|                 return True | ||||
|         else: | ||||
|             count = 0 | ||||
|     return False | ||||
|  | ||||
|  | ||||
| # These "asserts" using only for self-checking and not necessary for auto-testing | ||||
| if __name__ == '__main__': | ||||
|     print('Example:') | ||||
|     print(checkio("Hello World hello")) | ||||
|  | ||||
|     assert checkio("Hello World hello") == True, "Hello" | ||||
|     assert checkio("He is 123 man") == False, "123 man" | ||||
|     assert checkio("1 2 3 4") == False, "Digits" | ||||
|     assert checkio("bla bla bla bla") == True, "Bla Bla" | ||||
|     assert checkio("Hi") == False, "Hi" | ||||
|     print("Coding complete? Click 'Check' to review your tests and earn cool rewards!") | ||||
		Reference in New Issue
	
	Block a user