From 946c7509d439cf0e11feb13ae9e78bf7f8264700 Mon Sep 17 00:00:00 2001 From: s441401 Date: Sat, 2 Jun 2018 20:20:33 +0200 Subject: [PATCH] modified codes for labs02 --- labs02/task01.py | 3 +-- labs02/task02.py | 5 ++++- labs02/task03.py | 18 +++++++++++++----- labs02/task04.py | 6 ++++-- labs02/task05.py | 4 ++-- labs02/task06.py | 5 ++++- labs02/task07.py | 6 +++++- labs02/task08.py | 6 +++++- labs02/task09.py | 5 ++--- labs02/task10.py | 10 +++++++--- labs02/task11.py | 9 ++++++--- labs02/test_task.py | 9 ++++----- 12 files changed, 57 insertions(+), 29 deletions(-) diff --git a/labs02/task01.py b/labs02/task01.py index 7c08c56..86dfed3 100644 --- a/labs02/task01.py +++ b/labs02/task01.py @@ -7,8 +7,7 @@ która zawiera tylko elementy z list o parzystych indeksach. """ def even_elements(lista): - pass - + return lista[::2] def tests(f): inputs = [[[1, 2, 3, 4, 5, 6]], [[]], [[41]]] diff --git a/labs02/task02.py b/labs02/task02.py index a6d6321..0bd1938 100644 --- a/labs02/task02.py +++ b/labs02/task02.py @@ -6,7 +6,10 @@ """ def days_in_year(days): - pass + if ((days%4 == 0) and (days%100 != 0)) or (days%400 == 0): + return 366 + else: + return 365 def tests(f): inputs = [[2015], [2012], [1900], [2400], [1977]] diff --git a/labs02/task03.py b/labs02/task03.py index a1c3a85..ba0830d 100644 --- a/labs02/task03.py +++ b/labs02/task03.py @@ -1,7 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- - """ Zad 4. Napisz funkcje oov(text, vocab), która zwraca listę wyrazów (bez duplikatów), które występują w tekście text i nie występują w liście @@ -11,11 +10,20 @@ litery. (OOV = out of vocabulary) (W pythonie istnieje struktura danych tak jak 'set', która przechowuje elementy bez powtórzeń.) """ - def oov(text, vocab): - pass - - + text_lower = '' + vocab_lower = [] + for i in text: + if i.islower(): + text_lower += i + else: + text_lower += i.lower() + for i in vocab: + if i.islower(): + vocab_lower.append(i) + else: + vocab_lower.append(i.lower()) + return sorted(set(text_lower.split()) - set(vocab_lower)) def tests(f): inputs = [("this is a string , which i will use for string testing", diff --git a/labs02/task04.py b/labs02/task04.py index 37413f1..e32f6f6 100644 --- a/labs02/task04.py +++ b/labs02/task04.py @@ -7,8 +7,10 @@ Jeśli podany argument jest mniejszy od 1 powinna być zwracana wartość 0. """ def sum_from_one_to_n(n): - pass - + if n >= 1: + return sum(range(0,n+1)) + else: + return 0 def tests(f): inputs = [[999], [-100]] diff --git a/labs02/task05.py b/labs02/task05.py index f59268a..f101715 100644 --- a/labs02/task05.py +++ b/labs02/task05.py @@ -1,16 +1,16 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- - """ Napisz funkcję euclidean_distance obliczającą odległość między dwoma punktami przestrzeni trójwymiarowej. Punkty są dane jako trzyelementowe listy liczb zmiennoprzecinkowych. np. odległość pomiędzy punktami (0, 0, 0) i (3, 4, 0) jest równa 5. """ +import math as m def euclidean_distance(x, y): - pass + return m.sqrt((x[0] - y[0]) ** 2 + (x[1] - y[1]) ** 2 + (x[2] - y[2]) ** 2) def tests(f): inputs = [[(2.3, 4.3, -7.5), (2.3, 8.5, -7.5)]] diff --git a/labs02/task06.py b/labs02/task06.py index ff4a9d3..9f666ca 100644 --- a/labs02/task06.py +++ b/labs02/task06.py @@ -10,7 +10,10 @@ ma być zwracany napis "It's not a Big 'No!'". """ def big_no(n): - pass + if n < 5: + return "It's not a Big 'No!'" + else: + return "N"+"O"*n+"!" def tests(f): inputs = [[5], [6], [2]] diff --git a/labs02/task07.py b/labs02/task07.py index 80cbd37..836a81f 100644 --- a/labs02/task07.py +++ b/labs02/task07.py @@ -5,8 +5,12 @@ Napisz funkcję char_sum, która dla zadanego łańcucha zwraca sumę kodów ASCII znaków. """ + def char_sum(text): - pass + total = 0 + for letter in str(text): + total += ord(letter) + return total def tests(f): inputs = [["this is a string"], ["this is another string"]] diff --git a/labs02/task08.py b/labs02/task08.py index 252b10d..25c4e7c 100644 --- a/labs02/task08.py +++ b/labs02/task08.py @@ -7,7 +7,11 @@ przez 3 lub 5 mniejszych niż n. """ def sum_div35(n): - pass + total = 0 + for i in range(n): + if ((i %3 == 0) or (i %5 == 0)): + total += i + return total def tests(f): inputs = [[10], [100], [3845]] diff --git a/labs02/task09.py b/labs02/task09.py index 9045054..2a55f82 100644 --- a/labs02/task09.py +++ b/labs02/task09.py @@ -7,10 +7,9 @@ na podobnie wyglądające cyfry: 'e' na '3', 'l' na '1', 'o' na '0', 't' na '7'. Np. leet('leet') powinno zwrócić '1337'. """ - def leet_speak(text): - pass - + replace_dict = {ord('e'): '3', ord('l'): '1', ord('o'): '0', ord('t'): '7'} + return text.translate(replace_dict) def tests(f): inputs = [['leet'], ['do not want']] diff --git a/labs02/task10.py b/labs02/task10.py index 58d40d2..41c1954 100644 --- a/labs02/task10.py +++ b/labs02/task10.py @@ -1,15 +1,19 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- - """ Napisz funkcję pokemon_speak, która zamienia w podanym napisie co drugą literę na wielką. Np. pokemon_speak('pokemon') powinno zwrócić 'PoKeMoN'. """ - def pokemon_speak(text): - pass + word = '' + for index, value in enumerate(text): + if index %2 == 0 and value.islower(): + word += value.upper() + else: + word += value + return word def tests(f): diff --git a/labs02/task11.py b/labs02/task11.py index 7d36767..ae3dee8 100644 --- a/labs02/task11.py +++ b/labs02/task11.py @@ -1,16 +1,19 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- - """ Napisz funkcję common_chars(string1, string2), która zwraca alfabetycznie uporządkowaną listę wspólnych liter z lańcuchów string1 i string2. Oba napisy będą składać się wyłacznie z małych liter. """ -def common_chars(string1, string2): - pass +import re +def common_chars(string1, string2): + a = re.split('[^a-zA-Z]', string1) + b = re.split('[^a-zA-Z]', string2) + return sorted(set(list(''.join(a))) & set(list(''.join(b)))) + #return sorted(set(list(a)) & set(list(b))) def tests(f): inputs = [["this is a string", "ala ma kota"]] diff --git a/labs02/test_task.py b/labs02/test_task.py index 2367fe1..9ab3bcc 100644 --- a/labs02/test_task.py +++ b/labs02/test_task.py @@ -1,13 +1,12 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- +""" + Napisz funkcję, która zwraca sumę elementów. + """ def suma(a, b): - """ - Napisz funkcję, która zwraca sumę elementów. - """ - wynik = a + b - return wynik + return a + b def tests(f): inputs = [(2, 3), (0, 0), (1, 1)]