Pętle – wymieszane litery

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.