Programming4Fun

Programming4Fun - programujemy z pasją :)

  • Nie jesteś zalogowany.

Ogłoszenie


#1 2014-07-10 21:35:54

 Hoguzzos

http://winclub.pl/public/style_extra/team_icons/mod.png

Skąd: Za górami za lasami :D
Zarejestrowany: 2014-07-09
Posty: 56
Punktów :   

Kurs Pythona. Część 4.

ŹRÓDŁO : http://szgrabowski.kis.p.lodz.pl/Python-podstawy.html
Pętla for.
Trudno wyobrazić sobie programowanie bez pętli.  W Pythonie zdecydowanie najczęściej używaną jest pętla for:

Kod:

for i in range(10):

  print i,

wypisze liczby od 0 do 9 oddzielone spacjami.  Co znaczy range?  Generuje ono zakres, tj. listę złożoną z liczb naturalnych tworzących szereg arytmetyczny.  Są 3 warianty range:

Kod:

range(n)   # n > 0, lista [0, 1, 2, ..., n-1]

range(m, n)  # m < n, lista [m, m+1, …, n-1]; jeśli m >= n, to lista pusta

range(m, n, step)  # jak wyżej, ale co step wartości

Np.:

Kod:

range(0, 12, 2)  # [0, 2, 4, 6, 8, 10]

range(1, 7)  # [1, 2, 3, 4, 5, 6]

Powyższy opis nie jest kompletny, można i tak:

Kod:

range(5, 1, -1)  # [5, 4, 3, 2]

range(8, -1, -2)  # [8, 6, 4, 2, 0]

A teraz iterowanie po liście:

Kod:

for i in varia:

  print i

A może z pominięciem pierwszego elementu?  Proszę:

Kod:

for i in varia[1:]:

  print i

Można iterować po stringu (który też jest „sekwencją”):

Kod:

s = "Witaj!"

for i in s:

  print i,

Z pętli można szybciej wyjść poprzez break (znów „inspiracja” z języka C):

Kod:

for i in range(20):

  print i,

  if i % 5 == 4:

    break

Odpowiedz, ile liczb pojawi się na ekranie.



Zadania:

3.    Wygeneruj na ekranie tabliczkę mnożenia 10 x 10 (nie musi wyglądać ładnie, ale niech w każdym wierszu będzie dokładnie 10 liczb).  Wskazówka: pętle możesz zagnieżdżać.

4.    Znajdź i wypisz na ekranie wszystkie liczby pierwsze z przedziału [20, 100].

5.    Policz 15!, wypisz na ekranie tylko 3 pierwsze cyfry tej liczby.

6.    Wczytaj liczbę całkowitą od użytkownika i utwórz z niej string wstawiający kropki co 3 cyfry od końca (zastosowanie: finansowe, np. "1.600.000" wygląda czytelniej niż 1600000).

Pętla while.

To chyba dobra wiadomość: pętla while jest drugą i ostatnią pętlą w Pythonie.  Warunek sprawdzany jest na początku:

Kod:

x = -1

while x < 3:

  print x,

  x += 1

print "koniec"

Jak zatem „zasymulować” pętlę do...while, znaną z C (czy jej odpowiednik repeat...until z Pascala)?  Aby warunek sprawdzany był na końcu?



Standardowy chwyt wygląda następująco:

Kod:

while True:

  ...

  if warunek_wyjścia:

     break

# ciąg dalszy programu

Przykład: chcemy zsumować odwrotności kolejnych liczb naturalnych, aż suma przekroczy 5.  Kod:

Kod:

j = 0

suma = 0.0

while True:

  j += 1

  suma += 1/float(j)   # można i tak zamiast np. 1./j

  if suma > 5:

    break

print "zsumowano", j, "składników, suma wynosi", suma

// Wyszło niezbyt po polsku: "83 składników", ale nie będziemy się teraz tym martwić
Więcej o zasadzie "True/False" w następnej części kursu


http://img208.imageshack.us/img208/623/mnd1.jpg
http://images.cooltext.com/3860851.png

Offline

 

Stopka forum

RSS
Powered by PunBB
© Copyright 2002–2008 PunBB
Polityka cookies - Wersja Lo-Fi

[ Generated in 0.257 seconds, 8 queries executed ]


Darmowe Forum | Ciekawe Fora | Darmowe Fora
www.sgaming.pun.pl www.chomiki-pbf.pun.pl www.djronnie.pun.pl www.talesofshinobi.pun.pl www.chemiaumcs.pun.pl