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

question-closed Opóznienia w loop i losowość listy.

0 głosów
85 wizyt
pytanie zadane 9 marca 2017 w Python, Django przez __new__in__town Bywalec (2,100 p.)
zamknięte 11 marca 2017 przez __new__in__town

Witam. Chciałbym pobierać z listy wartości w odstępach czasowych.

Dajmy na to:


lista = ["jacek", "adam", "marcin"]

for x in lista:
     print(x)
           

Więc, chcę wypisać "jacek" a za 60 sekund chciałbym wyprintować następną wartość czyli "adam". Dodatkowo chciałbym aby wartości z listy były wybierane losowo. Na przykład: adam ---- 60 sekund czekania ----- jacek itd. Z każdym razem inna kolejność. Zapewne tutaj będzie konieczne użycie moduły random, ale nie mam pojęcia jak to wszystko posklejać.

Być może lepiej użyć słowników, przypisać cyfre jako klucz i walnąć inta? No nic, czekam na sugestie i z góry dziękuje za pomoc.

komentarz zamknięcia: Rozwiazane.

3 odpowiedzi

+1 głos
odpowiedź 10 marca 2017 przez mati2762 Obywatel (1,070 p.)



 

import time
lista = ["jacek", "adam", "marcin"]
 
for x in lista:
     time.sleep(1) # w sekundach
     print(x)


 

komentarz 10 marca 2017 przez mati2762 Obywatel (1,070 p.)
import time,random
lista = ["jacek", "adam", "marcin"]
  
for x in lista:
     time.sleep(1) # w sekundach
     print(lista[randint(0,2)])

 

+1 głos
odpowiedź 10 marca 2017 przez Svirol Nowicjusz (240 p.)
import time
from random import randrange

czas_spania = 3 #3sekundy
lista_imion = ["jacek", "adam", "marcin", "mateusz", "bartek", "andrzej"]

while True:
    time.sleep(czas_spania)
    #losujemy liczbe od 0 do 5 bo jest 6 imion w liscie
    wylosowana_liczba = randrange(len(lista_imion))
    print(lista_imion[wylosowana_liczba])

Tylko to się bedzie robić w nieskończoność. Więc musisz dorzucić warunek zakończenia, czyli pętle while zamien na for i w ten sposób będziesz mógł ograniczyć, naprzykład do 10 losowań. Lub dołożyć przerwanie po naciśnieciu klawisza np ESC żeby wysoczyć z pętli i zakończyć program. Zależy już jak tobie pasuje.

+1 głos
odpowiedź 10 marca 2017 przez mokrowski VIP (101,800 p.)
#!/usr/bin/env python2
# -*- coding: utf-8 -*-

from time import sleep
from random import shuffle

def random_print(imiona, timeout = 1):
    shuffle(imiona)
    for imie in imiona:
        print(imie)
        sleep(timeout)


if __name__ == '__main__':
    lista_imion = ["jacek", "adam", "marcin"]
    random_print(lista_imion, 1.5)

Działa także w wersji 3 (zmienić wtedy nazwę interpretera w 1 linii).

Podobne pytania

0 głosów
4 odpowiedzi 436 wizyt
pytanie zadane 14 lutego 2018 w Python, Django przez 1mSnajper Początkujący (300 p.)
0 głosów
2 odpowiedzi 88 wizyt
pytanie zadane 3 marca 2016 w C i C++ przez Artur Zaremba Nowicjusz (120 p.)
0 głosów
1 odpowiedź 81 wizyt
pytanie zadane 14 czerwca 2018 w Python, Django przez Absum Bywalec (2,630 p.)
Porady nie od parady
Publikując kody źródłowe korzystaj ze specjalnego bloczku koloryzującego składnię (przycisk z napisem code w edytorze). Nie zapomnij o ustawieniu odpowiedniego języka z rozwijanego menu oraz czytelnym formatowaniu kodu.Przycisk code

62,291 zapytań

108,414 odpowiedzi

226,328 komentarzy

34,965 pasjonatów

Przeglądających: 255
Pasjonatów: 14 Gości: 241

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...