diff --git a/file157.py b/file157.py index 649c872..cc9c135 100644 --- a/file157.py +++ b/file157.py @@ -1,30 +1,28 @@ -def enumerate(pi): - for hello in pi.a: - print(f'Next element: {hello}') -from file87 import * -try: - my_pi = pi_container() - pi_gen = foo(5) - my_pi.mth(pi_gen.__next__()) - my_pi.mth(pi_gen.__next__()) - my_pi.mth(pi_gen.__next__()) - my_pi.mth(pi_gen.__next__()) - my_pi_2 = pi_container() - my_pi.mth(pi_gen.__next__()) - my_pi.mth(pi_gen.__next__()) - my_pi.mth(pi_gen.__next__()) -except: - print('something went horribly wrong :(') -pIgEn3 = foo(194) -for the_variable_that_contains_next_approximations_of_pi_from_generator in range(23): - my_pi_2.mth(next(pIgEn3)) -my_pi_3 = pi_container() -pi_gen = foo(6) -my_pi_3.mth([i for i in list(pi_gen)]) -print('my first pi') -enumerate(my_pi) -print('my second pi') -enumerate(my_pi_2) -new_file = open('some-file.txt', 'w') -new_file.write(f'my best pi: {my_pi_3.a[-1]}') -new_file.close() +from file87 import * + +if __name__ == "__main__": + try: + my_pi = PiContainer() + pi_gen = calculate_pi(5) + for _ in range(5): + my_pi.add_values(next(pi_gen)) + + my_pi_2 = PiContainer() + pi_gen_2 = calculate_pi(194) + for _ in range(23): + my_pi_2.add_values(next(pi_gen_2)) + + my_pi_3 = PiContainer() + pi_gen_3 = calculate_pi(6) + my_pi_3.add_values(list(pi_gen_3)) + + print('my first pi') + print_values(my_pi) + print('my second pi') + print_values(my_pi_2) + + with open('some-file.txt', 'w') as new_file: + new_file.write(f'My best pi: {my_pi_3.a[5]}') + + except Exception as e: + print(f'Something went wrong: {e}') diff --git a/file87.py b/file87.py index 40e209e..cebaf2e 100644 --- a/file87.py +++ b/file87.py @@ -1,35 +1,32 @@ -b = 0 -c = 0 - - -class pi_container: - def __init__(self, a=list()): - self.a = a - - def mth(self, x): - if type(x) == list: - self.a += x - else: - self.a.append(x) - - -def foo(x): - global b - global c - b = 0 - c=1 - for hello in range(x): - if hello % 2 == 0: - b += 4 / c#this is a very important operation in calculateing pi according to documentation that is provided in a seperate file in this repository, please analyse this file before using! - else: - b -= 4 / c - c += 2 - yield b - yield 'finished' - -def enumerate(pi: pi_container): - for hello in pi.a: - print(hello) - - -print('All functions are defined') +class PiContainer: + def __init__(self, a=None): + self.a = a if a is not None else [] + + def add_values(self, x): + if type(x) == list: + self.a += x + else: + self.a.append(x) + + +def calculate_pi(x): + b = 0 + c = 1 + for hello in range(x): + if hello % 2 == 0: + b += 4 / c # this is a very important operation in calculateing pi according to documentation that is + # provided in a seperate file in this repository, please analyse this file before using! + else: + b -= 4 / c + c += 2 + yield b + yield 'finished' + + +def print_values(pi: PiContainer): + for value in pi.a: + print(value) + + +if __name__ == "__main__": + print('All functions are defined') \ No newline at end of file diff --git a/zmiany.txt b/zmiany.txt new file mode 100644 index 0000000..eb3e2e4 --- /dev/null +++ b/zmiany.txt @@ -0,0 +1,32 @@ +File 87 +w 5 -> zmiana nazewnictwa klasy na z wielkiej litery +w 6 -> nie powinno używać się modyfikowalych argumentów +w 7 -> dodajemy sprawdzenie czy a nie jest None +w 9 -> nazwa funkcji powinna mniej więcej mówić co funkcja robi +w 16 -> jw. +w 17-18 nie ma potrzeby używania zmiennych globalnyvh +w 20 -> spacje przy zanku równości +w 23 -> komentarz za długi, podzieliłem na dwa paragrafy + No i w ogóle bez sensu powinien wskazywać co gdzie i jak +w 30 -> nazwa enumerate to nazwa wbudowanej funkcji, zmieniam aby uniknąc pomyłek +w 31-32 -> value zamiast halo do zrozumienia funkcj +w 35 -> print jest poza jakąkolwiek funkcją, umieszczam w mainie +w 1-4 -> nie ma potrzeby inicjalizować tych zmiennych wcześniej, wystarczy to podczas użycia + +File 157 +Kod nie jest w żadnej funkcji ani w klasie +Nazwy funkcji foo i mth zmienione zgodnie z poprawkami we wcześniejszym pliku +Ściana tekstu należy dodać wolne lienie aby ułatwić czytanie kodu +w 1 -> nazwa enumerate to nazwa wbudowanej funkcji, zmieniam aby uniknąc pomyłek + Dodatkowo jest prawie identyczna jak ta sama funkcja w file87, Usuwam +w 4 -> wszystkie importy powinny być na początku pliku +w 8-15 -> jedna komenda wpisana wielokrotnie zamiast użyć pętli, dodatkowo przedzielona inną linią + Oczywiście ona powoduje również błąd liczymy pi dla 5 wartości a chcemy wypisać 7 +w 16 -> nie mamy pojęcia jaki błąd wyłapaliśmy do tego sprawdzamy tylko cześć kodu +w 18 -> nazwa zmiennej bez sensu nie zgadza się z przyjętym nazewnictwem + utrzymuje ciągłość nazewnictwa podobnie jak przy my_pi_1/2 +w 19 -> nazwa zmiennej nieużywana i kolosalenie za długa, dodatkowo wypisujemy tylko pierwwze 23 wyrazy, pytanie czy taki jest cel +w 22 -> pi_gen ponownie nadajemy wartość, dla jasności i utrzymania nazewnictwa zmieniam na pi_gen_3 +w 23 -> możemy dodać całą listę nie musimy poszczególnych elementów +w 28-30 -> Plik nie jest zamykany odpowiednio, lepiej używać "with" aby być pewnym że plik się zamknie dobrze nawet w ypadku błędów +w 30 -> indeks -1 nie zwróci nam dobrej wartości \ No newline at end of file