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.
.. raw:: html
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.
.. raw:: html
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:
.. code-block:: python
:linenos:
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
:Utworzony: |date| o |time|
.. |date| date::
.. |time| date:: %H:%M
.. raw:: html
.. include:: ../copyright.rst