1.4.2. Instrukcje warunkowe¶
1.4.2.1. Trzy liczby¶
ZADANIE: Pobierz od użytkownika trzy liczby, sprawdź, która jest najmniejsza i wydrukuj ją na ekranie.
POJĘCIA: pętla while, obiekt, typ danych, metoda, instrukcja warunkowa zagnieżdżona.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #! /usr/bin/env python3
# -*- coding: utf-8 -*-
op = "t"
while op == "t":
a, b, c = input("Podaj trzy liczby oddzielone spacjami: ").split(" ")
print("Wprowadzono liczby:", a, b, c)
print("\nNajmniejsza:")
if a < b:
if a < c:
najmniejsza = a
else:
najmniejsza = c
elif b < c:
najmniejsza = b
else:
najmniejsza = c
print(najmniejsza)
op = input("Jeszcze raz (t/n)? ")
print("Koniec.")
|
Pętla while warunek
umożliwia powtarzanie bloku operacji, dopóki warunek
jest prawdziwy. W tym wypadku dopóki zmienna op ma wartość “t”.
Zwróć uwagę na operator porównania: ==
.
W Pythonie wszystko jest obiektem. Każdy obiekt przynależy do jakiegoś typu
i ma jakąś wartość. Typ determinuje, jakie operacje można wykonać na wartości danego obiektu.
Funkcja input()
zwraca pobrane dane jako napis (typ string).
Metoda split(separator)
pozwala rozbić napis na składowe (w tym wypadku liczby).
Instrukcje warunkowe (if
), jak i pętle, można zagnieżdżać stosując wcięcia.
Instrukcje o takich samych wcięciach tworzą bloki kodu.
W jednej złożonej instrukcji warunkowej można sprawdzać wiele warunków (elif:
).
1.4.2.1.1. Zadania¶
Sprawdź, co się stanie, jeśli podasz liczby oddzielone przecinkiem lub podasz za mało liczb. Zmień program tak, aby poprawnie interpretował dane oddzielane przecinkami.
1.4.2.2. Trójkąt¶
ZADANIE: Napisz program, który na podstawie danych pobranych od użytkownika, czyli długości boków, sprawdza, czy da się zbudować trójkąt i czy jest to trójkąt prostokątny. Jeżeli da się zbudować trójkąt, należy wydrukować jego obwód i pole, w przeciwnym wypadku komunikat, że nie da się utworzyć trójkąta.
POJĘCIA: pętla for, obiekt, typ danych, metoda, lista, instrukcja warunkowa zagnieżdżona.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #! /usr/bin/env python3
# -*- coding: utf-8 -*-
import math # dołączamy bibliotekę matematyczną
op = "t" # deklarujemy i inicjujemy zmienną pomocniczą
while op != "n": # dopóki wartość zmiennej op jest inna niż znak "n"
dane = input("Podaj 3 boki trójkąta (oddzielone przecinkami): ")
lista = [] # definicja pustej listy
for x in dane.split(","):
lista.append(int(x)) # dodanie lementu do listy
a, b, c = lista # rozpakowanie listy
# wyrażenie listowe, które zastępuje kod 10-13:
# a, b, c = [int(x) for x in dane.split(",")]
print("Podano boki: ", a, b, c)
if a + b > c and a + c > b and b + c > a: # warunek złożony
print("Z podanych boków można zbudować trójkąt.")
# czy boki spełniają warunki trójkąta prostokątnego?
if (a**2 + b**2 == c**2 or
a**2 + c**2 == b**2 or
b**2 + c**2 == a**2):
print("Do tego prostokątny!")
# na wyjściu możemy wyprowadzać wyrażenia
print("Obwód wynosi:", (a + b + c))
p = 0.5 * (a + b + c) # obliczmy współczynnik wzoru Herona
# liczymy pole ze wzoru Herona
P = math.sqrt(p * (p - a) * (p - b) * (p - c))
print("Pole wynosi:", P)
op = "n" # ustawiamy zmienną na "n", aby wyjść z pętli while
else:
print("Z podanych odcinków nie można utworzyć trójkąta prostokątnego.")
op = input("Spróbujesz jeszcze raz (t/n): ")
print("Do zobaczenia...")
|
Pętla while
działa podobnie jak w poprzednim przykładzie, ale wykorzystuje
warunek sformułowany przy wykorzystaniu operatora “różne od”: !=
.
Metoda split(",")
zwraca listę napisów wyodrębnionych z podanego ciągu.
Lista (zob. lista) to sekwencja uporządkowanych danych,
np. [‘3’, ‘4’, ‘5’]. Do przeglądania takich sekwencji używa się pętli for
.
Pętla for zmienna in sekwencja
odczytuje kolejne elementy sekwencji
i udostępnia je w zmiennej. W ciele pętli zmienną skonwertowaną na liczbę
całkowitą dodajemy do nowej listy za pomocą metody append()
.
Zapis a, b, c = lista
jest przykładem rozpakowania listy, co polega
na przypisaniu zmiennym z lewej strony kolejnych wartości z listy.
Informacja
Pętle, które wykonują jakieś operacje na sekwencjach i zapisują je w listach zastępuje się w Pythonie tzw. wyrażeniami listowymi. Zostaną one omówione w kolejnych przykładach.
Operatory logiczne:
and
– koniunkcja (“i”), wskazuje, że obydwa warunki muszą być prawdziwe;or
– alternatywa (“lub”), przynajmniej jeden z podanych warunków powinien być prawdziwy.
Działania matematyczne:
x**y
– podnoszenie podstawyx
do potęgiy
;sqrt()
– funkcja z modułumath
, oblicza pierwiastek kwadratowy.
Materiały Python 101
udostępniane przez
Centrum Edukacji Obywatelskiej na licencji
Creative Commons Uznanie autorstwa-Na tych samych warunkach 4.0 Międzynarodowa.
Utworzony: | 2022-05-22 o 19:52 w Sphinx 1.5.3 |
---|---|
Autorzy: | Patrz plik “Autorzy” |