• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pętla w celu obliczenia średniego czasu wykonania programu

Object Storage Arubacloud
0 głosów
365 wizyt
pytanie zadane 7 czerwca 2020 w Python przez osobliwy nick Użytkownik (900 p.)

Cześć. Badam czas pracy algorytmu szyfrującego AES w Pythonie. Kod pochodzi z Internetu:

https://pastebin.com/Dg55KQCT

Dodałem do niego time.time() przed i po wywołaniu komendy, która odpowiada za szyfrowanie. Bo tylko czas szyfrowania mnie interesuje. Ale te czasy mocno się wahają. Żeby mieć jakiś obiektywizm chciałbym zmierzyć szyfrowanie tekstu powiedzmy 100 tys. razy. Ale jak to zrobić? Napisałem sobie taką pętlę:

start = time.time()
i=0
while i < 10
r = Rijndael("abcdefg1234567890123456789012345", block_size = 32)
ciphertext = r.encrypt("12345999999999999999999999954321")
i += 1
print (i)
end = time.time()


#print (plaintext,ciphertext)

a=end-start
print (a)

Ale nie działa. Powinno wykonać szyfrowanie 10 razy i za każdym razem wypisać "i", według mnie. Coś się oczywiście nie zgadza, nie wiem co.

Swoją drogą wracam do programowania po latach i szybko sobie przypomniałem dlaczego porzuciłem naukę programowania. Nie widzę tu logiki ani sensu. Jest pętla, jest funkcja. Z jakichś niezrozumiałych powodów się jednak nie wykonuje. Pomijam oczywiście, że cały kod mnie przerasta i nawet rozumiejąc algorytm AES, nie rozumiem kodu, ale nie muszę rozumieć, chcę zmierzyć tylko czasy.

1 odpowiedź

0 głosów
odpowiedź 8 czerwca 2020 przez VBService Ekspert (252,740 p.)
edycja 8 czerwca 2020 przez VBService

Zapomniałeś : wstawić po warunku dla while i zostawić wcięcie, dla kodu, który ma się wykonać w pętli

... Nie widzę tu logiki ani sensu. ...

Jak nie widzisz sensu, a skąd kompilator ma wiedzieć gdzie się kończy Twój warunek dla whilew wielu językach programowania są to nawiasy okrągłe np.: while(a==b), w python'ie jest to znak dwukropka, ... skąd kompilator ma wiedzieć jaka część kodu znajduje się w pętli, w wielu językach programowania wykorzystywane są do tego nawiasy klamrowe, potocznie nazywane "wąsami" wink  while(a==b)  { ... kod w pętli ... }, w python'ie używane są wcięcia (tabulacja). Python ze względu na taki zapis składni, jest czasem potocznie nazywany językiem "dla tych co lubią, dwukropki i wcięcia" wink 

1
komentarz 9 czerwca 2020 przez osobliwy nick Użytkownik (900 p.)
Dzięki, dopiero zaczynam z Pythonem i nawet nie wiedziałem, że te wcięcia i dwukropki są potrzebne. Przyjąłem, że zamiast dwukropka wystarczy enter, a to co w pętli jest też do czasu następnego entera...

Podobne pytania

+1 głos
1 odpowiedź 158 wizyt
0 głosów
1 odpowiedź 303 wizyt
pytanie zadane 6 listopada 2022 w Python przez Matlane Użytkownik (560 p.)
0 głosów
2 odpowiedzi 233 wizyt
pytanie zadane 17 lipca 2020 w C# przez Jakub Michalik Użytkownik (850 p.)

92,550 zapytań

141,394 odpowiedzi

319,522 komentarzy

61,935 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...