Zacznijmy od treści zadania:
Na początek zaimportujmy dane
Upewniamy się, że w folderze naszego projektu jest plik, następnie importujemy go używając funkcji with open.
Funkcja with open pozwala działać na pliku bez konieczności zamykania go funkcją close().
Tryb | Znaczenie |
---|---|
r | Odczyt |
x | Zapis, ale tylko jeśli plik nie istnieje. |
w | Zapis |
a | Dopisanie na końcu pliku |
readline() czyta z pliku pojedynczy wiersz
strip() usuwa białe znaki z końca linii
Potrzebujemy zatem poza pętlą while dodać licznik, który pozwoli nam zapisać ilość liczb, w których jest więcej zer niż jedynek.
Istotne, aby nie wpisywac go wewnątrz pętli, inaczej nasza pętla po każdej iteracji będzie ZEROWAŁA licznik.
Kolejnymi krokami piszemy pętle, które dla każdej linii będą iterowałły po znakach w niej:
Na koniec chcemy, aby przy naszym kolejnym wykonaniu pętli while, pobrała ona nową linię, zapisujemy więc
line = file.readline().strip()
Super! Teraz zapiszmy odpowiedzi do nowego pliku, nazwijmy go wyniki.txt
W pierwszym kroku tworzę nowy plik tekstowy "wyniki.txt" oraz go otwieram.
Następnie zapisuję nasz wynik str() pozwala przekonwertować naszą liczbę na string
A jak coś już otwieramy, to pamiętajmy, by zamknąć ;)
Na górnym pasku widnieje ikonka robaczka (ang. bug)
Pozwala ona nam na wejście w kod i przejrzenie każdego kroku z osobna. Ten sposób ułatwia nam zrozumienie, gdzie popełniliśmy błędy.
Klikając lewym przyciskiem myszy w numery linii mogę zaznaczyć linijki, które chcę wziąć pod uwagę podczas debuggingu.
Klikamy w robaczka, pojawia się konsola:
Z tego miejsca możemy wykonywać nasz kod po jednej linii, a wszystkie zmienne będą pokazywały, co obecnie przechowują.
Cały kod można pobrać tutaj:
Pobierz dane do zadania Liczby binarne i rozwiąż kolejne podpunkty.
Odpowiedzi zapisz w pliku tekstowym "wyniki.txt"