Skip to content

Latest commit

 

History

History
106 lines (75 loc) · 3.98 KB

basic5.rst

File metadata and controls

106 lines (75 loc) · 3.98 KB

Znam Pythona?

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.
Kod nr
.. literalinclude:: 07_trojkat_01.py
    :linenos:

JAK TO DZIAŁA

Pętla while wykonuje się dopóki warunek jest prawdziwy, czyli zmienna kontrolna "op" różna jest od "n". Dzięki temu użytkownik może wielokrotnie wprowadzać wartości boków tworzące trójkąt.

Są dwie metody pobierania kilku wartości z wejścia (np. klawiatury) na raz. Funkcja raw_input() zwraca wprowadzone dane zakończone nową linią jako napis. Funkcja input() wartości pobrane z wejścia (np. klawiatury) traktuje jak kod Pythona. Konstrukcja int(x) for x in raw_input().split() (przykład tzw. wyrażenia listowego) wywołuje funkcję int(), która usiłuje przekształcić podaną wartość na liczbę całkowitą dla każdej wartości wyodrębnionej z ciągu wejściowego przez funkcję split(). Separatorem kolejnych wartości są dla funkcji split() białe znaki (spacje, tabulatory). Funkcja input() pobiera wejście w postaci napisu, ale próbuje zinterpretować go jakby był częścią kodu w Pythonie. Dlatego dane oddzielone przecinkami w postaci np. "1, 2, 3" przypisywane są podanym zmiennym.

Funkcje if sprawdzają warunki złożone oparte na koniunkcji (and) i alternatywie (or). Wyrażenie x**y oznacza podnoszenie podstawy x do potęgi y. Funkcja sqrt() (pierwiastek kwadratowy) zawarta jest w module math, który na początku programu trzeba zaimportować.

POĆWICZ SAM

Zmień program tak, aby użytkownik w przypadku podania boków, z których trójkąta zbudować się nie da, mógł spróbować kolejny raz.

Szyfr Cezara

ZADANIE: Napisz program, który podany przez użytkownika ciąg znaków szyfruje przy użyciu szyfru Cezara i wyświetla zaszyfrowany tekst.
Kod nr
.. literalinclude:: 07_szyfr_02.py
    :linenos:

JAK TO DZIAŁA

W programie możemy wykorzystywać zmienne globalne, np. KLUCZ. def nazwa_funkcji(argumenty) - tak definiujemy funkcje, które mogą lub nie zwracać jakieś wartości. nazwa_funkcji(argumenty) - tak wywołujemy funkcje. Napisy mogą być indeksowane (od 0), co daje dostęp do pojedynczych znaków. Funkcja len(str) zwraca długość napisu, wykorzystana jako argument funkcji range() pozwala iterować po znakach napisu. Operator += oznacza dodanie argumentu z prawej strony do wartości z lewej.

POĆWICZ SAM

Napisz funkcję deszyfrującą deszyfruj(txt). Dodaj do funkcji szyfruj(), deszyfruj() drugi parametr w postaci długości klucza podawanej przez użytkownika. Dodaj poprawne szyfrowanie dużych liter, obsługę białych znaków i znaków interpunkcyjnych.

Przykład funkcji deszyfrującej:

def deszyfruj(txt):
    dtxt = ""
    KLUCZM = KLUCZ % 26
    for i in range(len(txt)):
        if (ord(txt[i]) - KLUCZM < 97):
            dtxt += chr(ord(txt[i]) - KLUCZM + 26)
        else:
            dtxt += chr(ord(txt[i]) - KLUCZM)
    return dtxt

Metryka

Autor:Robert Bednarz <[email protected]>
Utworzony:2026-10-13 o 13:01
div.code_no { text-align: right; background: #e3e3e3; padding: 6px 12px; } div.highlight, div.highlight-python { margin-top: 0px; }