Wpis z mikrobloga

#naukaprogramowania #python

bin_list = []
for num in numbers:
bin_list.append(bin(num)[2:])

for num in bin_list:
while len(num) % 7 != 0:
num.zfill(len(num)+1)

mam coś takiego, i chcę wypełniać zerami każdy element listy aż % 7 == 0...
jakoś nie mogę ogarnąć tego num w funkcji for...
  • 29
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ponuryrolnik: Jeżeli chce się uzyskać większą liczbę od danej, podzielną przez jakąś inną to właśnie zawsze się wykorzystuje ten wzór:

(liczba + dzielna - 1) // dzielna * dzielna
Czyli zwiększasz liczbę o jeden mniej niż dzielna i dzielisz bez reszty, następnie mnożysz, żeby uzyskać wynik podzielny przez tę liczbę.
  • Odpowiedz
@ponuryrolnik: Co X-D
No to se dodaj po pętli for dodawanie do listy.
Tylko musisz się nauczyć ogarniać te wcięcia, bo chyba to ci sprawdza wielki problem. Powinno być na tym samym poziomie co słowo for z drugiej pętli, która powinna być na poziomie tego bin_list.append

W ogóle to jak chcesz dawać przykłady ludziom na wypoku, to użyj takiego https://repl.it/ albo chociaż pastebina.
  • Odpowiedz
@lionbest: dziwne, zrobiłem nową pustą listę i dodałem do niej - działa. ale jak próbuję dodać do tej bieżącej to wpada w pętlę bez końca... no i na poziomie while musi być, bo inaczej dodaje tylko jedną liczbę... no tak, bo przecież zwiększa się o jeden itd... czyli może jakieś replace()
  • Odpowiedz
@lionbest: widzę, że ogarniasz:

no mam już listę z liczbami binarnymi i uzupełnionymi zerami, teraz chce każdą liczbę podzielić po 7 bitów:

udaje mi się podzielić, ale tylko po 1 elemencie

lista = [item[num:num+7] for num in range(0, len(bin_list), 7)for item in bin_list]
  • Odpowiedz