From e6f07bc867b9bb569193772f833951891c122068 Mon Sep 17 00:00:00 2001 From: wojtek0000 Date: Wed, 6 Dec 2023 11:44:37 +0100 Subject: [PATCH] poprawione - Wojciech Broda --- Commentary.txt | 24 ++++++++++++++++++++++++ main.py | 26 ++++++++++++++++++++++++++ utils.py | 30 ++++++++++++++++++++++++++++++ 3 files changed, 80 insertions(+) create mode 100644 Commentary.txt create mode 100644 main.py create mode 100644 utils.py diff --git a/Commentary.txt b/Commentary.txt new file mode 100644 index 0000000..3117551 --- /dev/null +++ b/Commentary.txt @@ -0,0 +1,24 @@ +main +#1. wywołanie funckji 7 razy w 7 liniach zamiast utworzenia pętli +#2. Zdefiniowanie my_pi_2 w try, który może się nie wykonać +#3. Za dużo wywołań metody mth (7), w porównaniu do argumentów wejściowych funkcji foo(5) +#4. Niewłaściwa nazwa "pIgEn3" +#5. Brak oddzieleń między linijkami, dla większej czytelności kodu +#6. Zbyt długa nazwa zmiennej "the_variable_that_contains_next_approximations_of_pi_from_generator" +#7. Użycie metody __next__, oraz next() i [i for i in list(pi_gen)], zamiast jednego +#8. Podwójna deklaracja funkcji enumerate, oraz nazwa tej funkcji taka sama jak funkcji wbudowanej enumerate() +#9. Aby wypisać najbardziej przybliżoną wartość pi w pliku, należy zmienić indeks na -2, bo -1 to "finished" +#10. Nazwa klasy powinna zaczynać się od wielkiej litery + +utils +#1. Usunięcie wejściowego argumentu a, z metody inicjalizującej __init__, oraz dodanie pustej listy +#2. Niepotrzebna deklaracja zmiennych b i c na początku pliku, oraz deklaracja jako global w foo() +#3. Deklaracja zapisana na 2 różne sposoby (spacje, oraz bez) +#4. W pętlach for używamy nazw niepasujących do wykonywanej funkcji (hello) +#5. Zbyt długi komentarz +#6. Usunięcie yield 'finished' +#7. Niepotrzebny komunikat All functions are defined +#8. Zmiana nazwy hello na element +#9. Zmiana nazwy funkcji enumerate, na my_enumerate, aby nie było kolizji nazw z funkcją wbudowaną enumerate() +#10. Zmiana nazwy klasy na zaczynającą się z wielkiej litery i bez znaków specjalnych +#11. Między definicjami funckji powinny być 2 linie odstępu, a nie 1 \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..aec0293 --- /dev/null +++ b/main.py @@ -0,0 +1,26 @@ +from utils import * + +try: + my_pi = PiContainer() + pi_gen = foo(5) + my_pi.mth([i for i in list(pi_gen)]) + print('my first pi') + my_enumerate(my_pi) +except: + print('something went horribly wrong :(') + +my_pi_2 = PiContainer() +pi_gen_2 = foo(2) +my_pi_2.mth([i for i in list(pi_gen_2)]) +print('my second pi') +my_enumerate(my_pi_2) + +my_pi_3 = PiContainer() +pi_gen_3 = foo(196) +my_pi_3.mth([i for i in list(pi_gen_3)]) + +new_file = open('some-file.txt', 'w') +new_file.write(f'my best pi: {my_pi_3.a[-1]}') +new_file.close() + + diff --git a/utils.py b/utils.py new file mode 100644 index 0000000..21fd3a5 --- /dev/null +++ b/utils.py @@ -0,0 +1,30 @@ +class PiContainer: + def __init__(self): + self.a = [] + + def mth(self, x): + if type(x) == list: + self.a += x + else: + self.a.append(x) + + +def foo(x): + b = 0 + c = 1 + for i in range(x): + if i % 2 == 0: + b += 4 / c + else: + b -= 4 / c + c += 2 + yield b + + +def my_enumerate(pi: PiContainer): + for element in pi.a: + print(element) + + +#print('All functions are defined') +