Pętle
Do przygotowania przed zajęciami
* Python dla każdego. Podstawy programowania. – Michael Dawson – Helion **R** – Rozdział 2 i 3. Wprowadzenie. Koniec gry.
Cel i tematyka zajęć
W trzecim laboratorium zajmiemy się pętlami dostępnymi w pythonie:
* while,
* for,
* krotki.
– Zadania przypominające
* Program klasyfikujący wzrost osób tzn. pytający się o wzrost w cm, a następnie wyświetlający jeden z podanych tekstów w zależności od przynależności do przedziału wartości: niski < 150cm < średni < 180cm < wysoki
* Program wczytujący z klawiatury długości trzech odcinków i sprawdzający czy da się z nich zbudować trójkąt.
– Pętla while – program Symulator Trzylatka
Pętla while ma następujące wywołanie
while warunek:
co ma wykonać
Przykład
# Symulator trzylatka
# Demonstruje pętlę while
print("\tWitaj w 'Symulatorze trzylatka'\n")
print("Ten program symuluje rozmowę z trzyletnim dzieckiem.")
print("Spróbuj przerwać to szaleństwo.\n")
response = ""
while response != "Dlatego.":
response = input("Dlaczego?\n")
print("Aha, już wiem.")
input("\n\nAby zakończyć program, naciśnij klawisz Enter.")
– Drugi program – “Zgadnij jaka to liczba”
Ta gra pozwoli Państwu na lepsze zrozumienie zastosowania i działania pętli while
# Jaka to liczba?
#
# Komputer wybiera losowo liczbę z zakresu od 1 do 100.
# Gracz próbuje ją odgadnąć, a komputer go informuje,
# czy podana przez niego liczba jest: za duża, za mała,
# prawidłowa.
import random
print("\tWitaj w grze 'Jaka to liczba'!")
print("\nMam na myśli pewną liczbę z zakresu od 1 do 100.")
print("Spróbuj ją odgadnąć w jak najmniejszej liczbie prób.\n")
# ustaw wartości początkowe
the_number = random.randint(1, 100)
guess = int(input("Ta liczba to: "))
tries = 1
# pętla zgadywania
while guess != the_number:
if guess > the_number:
print("Za duża...")
else:
print("Za mała...")
guess = int(input("Ta liczba to: "))
print("Odgadłeś! Ta liczba to", the_number)
input("\n\nAby zakończyć program, naciśnij klawisz Enter.")
– Pętla for – Zwariowane litery
Pętla for ma następujące wywołanie
for zmienna in przedzial:
co ma wykonać
Przykład
# Zwariowany łańcuch
# Demonstruje użycie pętli for z łańcuchem znaków
word = input("Wprowadź jakieś słowo: ")
print("\nOto poszczególne litery Twojego słowa:")
for letter in word:
print(letter)
input("\n\nAby zakończyć program, naciśnij klawisz Enter.")
– Licznik – prezentujący działanie pętli for
# Licznik
# Demonstruje funkcję range()
print("Liczenie:")
for i in range(10):
print(i, end=" ")
print("\n\nLiczenie co pięć:")
for i in range(0, 50, 5):
print(i, end=" ")
print("\n\nLiczenie do tyłu:")
for i in range(10, 0, -1):
print(i, end=" ")
input("\n\nAby zakończyć program, naciśnij klawisz Enter.")
– Krotki
Krotki przechowują stałe wartości różnego typu jako uporządkowany ciąg. Nie można zmodyfikować żadnego elementu krotki, a odczyt konkretnego elementu wymaga podania jego indeksu.
– Inwentarz bohatera
# Inwentarz bohatera
# Demonstruje tworzenie krotek
# utwórz pustą krotkę
inventory = ()
# potraktuj krotkę jako warunek
if not inventory:
print("Masz puste ręce.")
input("\nAby kontynuować misję, naciśnij klawisz Enter.")
# utwórz krotkę zawierającą pewne elementy
inventory = ("miecz",
"zbroja",
"tarcza",
"napój uzdrawiający")
# wyświetl krotkę
print("\nWykaz zawartości krotki:")
print(inventory)
# wyświetl każdy element krotki
print("\nElementy Twojego wyposażenia:")
for item in inventory:
print(item)
input("\n\nAby zakończyć program, naciśnij klawisz Enter.")
– Łączenie krotek
Dodając do krotki inną krotkę, tworzymy nową krotkę. Możemy to zrobić w następujący sposób:
dodawanie = input("Co chcesz dodać do swojego ekwipunku? (elementy dodajemy po przecinku) ")
dodawanie = tuple(dodawanie.split(','))
krotka = ("nóż", "miecz", "tarcza")
krotka += dodawanie
print(krotka)
– Zadania do samodzielnego wykonania na laboratorium
* Rozbuduj program zgadnij liczbę tak aby program liczył ile prób wykonał gracz,
* Rozbuduj program zgadnij liczbę tak aby gracz miał tylko 6 prób odgadnięcia liczby, gdy to się nie powiedzie program ma wypisać game over,
* Rozbuduj program symulator trzylatka tak aby można było wpisać dowolną kombinację wielkości liter i znaków po słowie “dlatego”
* Napisz program wyświetlający tabliczkę mnożenia od 1-10 dla liczby podanej przez użytkownika np. Użytkownik prosi o wyświetlenie tabliczki mnożenia dla 5 więc program w odpowiedzi wyświetli:
5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
...
...
...
5 x 10 = 50
Zadanie dodatkowe
– Przykłady używane na laboratoriach
Przykłady pochodzą z książki
* Podstawową książką wykorzystywaną na laboratorium będzie: „Python dla każdego. Podstawy programowania Wydanie III”, autor Michael Dawson, Wydawnictwo Helion **(R)**
Zadanie domowe
**Wszystkie zadania domowe należy archiwizować ponieważ w dalszej części laboratoriów będziecie je Państwo rozbudowywać**
* Zobacz: https://www.youtube.com/watch?v=LDE3nkST3vQ
* Zobacz: https://www.youtube.com/watch?v=QYnArPazjew
* Stwórz program pobierający od użytkownika informację o posiadanych przedmiotach a następnie zapisujący je do krotki i wyświetlający poszczególne elementy,
* Rozbuduj powyższy program tak, aby dla każdego z elementów była losowo wybierana waga z zakresu 1-5kg, następnie zsumuj wszystkie wagi i sprawdź czy gracz nie przekroczył maksymalnego obciążenia (licz je w następujący sposób max_kg = weight / 10)
* Python dla każdego. Podstawy programowania. – Michael Dawson – Helion **R** – Rozdział 4.