forked from tdwojak/Python2019
Add labs01
This commit is contained in:
parent
8846df83c5
commit
444c4afa94
1047
labs01/podstawy.ipynb
Normal file
1047
labs01/podstawy.ipynb
Normal file
File diff suppressed because it is too large
Load Diff
386
labs01/podstawy.py
Normal file
386
labs01/podstawy.py
Normal file
@ -0,0 +1,386 @@
|
||||
#!/usr/bin/env python
|
||||
# coding: utf-8
|
||||
|
||||
# # Podstawy Pythona: cz. 1
|
||||
#
|
||||
#
|
||||
#
|
||||
# ## 26 stycznia 2019
|
||||
|
||||
# In[ ]:
|
||||
|
||||
contractions_expansions = {"don't": "do not"}
|
||||
sentence = "I'd guess that it's Frank Sinatra."
|
||||
sentence = sentence.replace(' \'', '\'')
|
||||
sentence = sentence.replace(' n\'t', 'n\'t')
|
||||
words = sentence.split()
|
||||
for i in range(len(words)):
|
||||
for contraction, expansion in contractions_expansions.items():
|
||||
if contraction == words[i]:
|
||||
words[i] = expansion
|
||||
sentence = ' '.join(words)
|
||||
|
||||
|
||||
# In[ ]:
|
||||
|
||||
|
||||
print('Hello Python')
|
||||
|
||||
|
||||
# In[4]:
|
||||
|
||||
|
||||
print('Hello')
|
||||
print('Python')
|
||||
print('Hello', 'Python', '!')
|
||||
|
||||
|
||||
# Typy proste:
|
||||
# * liczby całkowite: `int`, np. `3`, `1000`, `-100`, `0`
|
||||
# * liczby rzeczywiste: `float`: `3.14`, `5.0`, `-0.001`
|
||||
# * napisy: `str`: `"Python"`, `"Rock'n'Roll"`, `'zalicznie z przedmiotu'`
|
||||
# * logiczne `bool`, `True`, `False`
|
||||
# * None: `None`
|
||||
|
||||
# In[6]:
|
||||
|
||||
|
||||
print(10)
|
||||
print(1000.0)
|
||||
print (100, 100.0, "Sto")
|
||||
print("Zaokrąglenie PI:", 3.141519)
|
||||
|
||||
|
||||
# In[4]:
|
||||
|
||||
|
||||
print(type(100))
|
||||
print(type(20.5))
|
||||
print(type("okno"))
|
||||
print(type(None))
|
||||
|
||||
|
||||
# Operacje arytmetyczne na liczbach:
|
||||
# * dodawanie `+`, np. `2 + 3`
|
||||
# * odejmowanie `-`, np. `10-9`
|
||||
# * mnożenie `*`, np. `2.0 * 3.0`
|
||||
# * dzielenie `/`, np. `3 / 4` ( == 0.75)
|
||||
# * dzielenie całkowite `//`, `3 / 4` ( == 0)
|
||||
# * potęgowanie `**`, np. `10 ** 3` ( == 1000)
|
||||
|
||||
# In[15]:
|
||||
|
||||
|
||||
print(1 + 2 - 3)
|
||||
print("2 ** 10", "=", 2 ** 10)
|
||||
print(1 + 2 - 3 + (4 * 5) / 6 ** 2)
|
||||
|
||||
|
||||
# Operacje na napisach:
|
||||
# * konkatenacja `+`, np. `"Tarnowo " + "Podgórne"`
|
||||
# * wielokrotność: `*`, np. `"O" * 6` ("OOOOOO")
|
||||
|
||||
# In[16]:
|
||||
|
||||
|
||||
print("N" + "o" * 10 + '!')
|
||||
|
||||
|
||||
# Konwersja typów:
|
||||
|
||||
# In[24]:
|
||||
|
||||
|
||||
print(int("100") * 2)
|
||||
print(str(100) * 2)
|
||||
print(float(100) * 2)
|
||||
print(bool("Fałsz"))
|
||||
|
||||
|
||||
# ## Zmienne
|
||||
# * case sensitive,
|
||||
# * brak deklaracji typu,
|
||||
# * do zmiennej można przypisać wszystko.
|
||||
|
||||
# In[2]:
|
||||
|
||||
|
||||
user = "t.dwojak"
|
||||
domain = "amu.edu.pl"
|
||||
email = user + "@" + domain
|
||||
print("email:", email)
|
||||
|
||||
|
||||
# ## Komentarze
|
||||
# * Komentarze nie są interpretowane.
|
||||
# * Komentarze w Pythonie zaczynają się od znaku '#'
|
||||
# * Istnieją komentarze wielolinijkowe tagowane potrójnym ", czyli """ """
|
||||
#
|
||||
|
||||
# In[ ]:
|
||||
|
||||
|
||||
print("Bardzo ważna wiadomość") # A to jest komentarz
|
||||
"""
|
||||
Komentarz
|
||||
wielo-
|
||||
linijkowy
|
||||
"""
|
||||
# print("Nie chcę być wydrukowanym")
|
||||
print("A teraz chcę")
|
||||
|
||||
|
||||
# # Podstawy cz. 2
|
||||
|
||||
# ## Listy
|
||||
# * W Pythonie nie ma tablic, są listy;
|
||||
# * Listy mogą przechowywać elementy różnych typów;
|
||||
# * Indeksowanie zaczyna się od 0.
|
||||
# * Funkcja `len` zwraca liczbę elementów listy
|
||||
|
||||
# In[32]:
|
||||
|
||||
|
||||
x = [] # albo równoważnie pusta_lista = list()
|
||||
oceny = [5, 4, 3, 5, 5]
|
||||
roznosci = [3.14, "pi", ["pi"], 3]
|
||||
list_0_9 = list(range(10))
|
||||
print("Liczba elementów", len(oceny))
|
||||
|
||||
|
||||
# In[33]:
|
||||
|
||||
|
||||
print(oceny)
|
||||
print(oceny[1])
|
||||
|
||||
|
||||
# ## Dodawanie i usuwanie elementów z listy
|
||||
#
|
||||
# Istnieją dwie metody:
|
||||
# * `append(x)`: dodaje x na koniec listy
|
||||
# * `extend(x)`: rozszerza listę o każdy element z x
|
||||
|
||||
# In[13]:
|
||||
|
||||
|
||||
engines = []
|
||||
engines.append('duck-duck-go')
|
||||
engines.append("yahoo")
|
||||
print(engines)
|
||||
|
||||
|
||||
# In[9]:
|
||||
|
||||
|
||||
m = ["google", 'bing']
|
||||
m.extend(l)
|
||||
print(m)
|
||||
|
||||
|
||||
# In[15]:
|
||||
|
||||
|
||||
liczby = [1,2,3,2,3,1,2,4]
|
||||
liczby.pop() # Domyślnie usuwa ostatni element z listy
|
||||
liczby.remove(2)
|
||||
print(liczby)
|
||||
|
||||
|
||||
# Inne przydatne metody:
|
||||
# * `sort()`: sortuje listę rosnąco
|
||||
# * `count(x)`: zlicza wystąpienia x w liście
|
||||
# * `index(x)`: zwraca indeks pierwszego wystąpienia x
|
||||
|
||||
# In[20]:
|
||||
|
||||
|
||||
liczby = [1,2,3,2,3,1,2,4]
|
||||
print(liczby.count(1))
|
||||
print(liczby.index(4))
|
||||
liczby.sort()
|
||||
print(liczby)
|
||||
|
||||
|
||||
# ## Indeksowanie
|
||||
|
||||
# In[21]:
|
||||
|
||||
|
||||
oceny = [1, 3, 2, 3, 1, 2, 4]
|
||||
print('pierwszy element:', oceny[0])
|
||||
print('ostatni element:', oceny[-1])
|
||||
print('5 pierwszych:', oceny[:5])
|
||||
print('5 ostatnich', oceny[-5:])
|
||||
print('od drugiego, do piątego', oceny[1:5])
|
||||
print('parzyste:', oceny[1:6:2])
|
||||
print('od tyłu', oceny[::-1])
|
||||
|
||||
|
||||
# ## Pętla typu ```for```
|
||||
# * W Pythonie pętla *for* działa jak pętla *for each* w innych językach;
|
||||
# * W Pythonie nie ma klamr, ani *begin* i *end*; jako ciało pętli musi być wcięte (najcześciej 4 spacje).
|
||||
|
||||
# In[22]:
|
||||
|
||||
|
||||
n = 3
|
||||
|
||||
for i in range(n):
|
||||
print('element', i)
|
||||
|
||||
|
||||
# In[23]:
|
||||
|
||||
|
||||
l = ["jeden", "dwa", "trzy"]
|
||||
for item in l:
|
||||
print(item)
|
||||
|
||||
|
||||
# In[24]:
|
||||
|
||||
|
||||
kwadraty = []
|
||||
|
||||
for i in range(10):
|
||||
kwadraty.append(i ** 2)
|
||||
|
||||
print(kwadraty)
|
||||
|
||||
|
||||
# ## Słowniki: `dict`
|
||||
|
||||
# In[25]:
|
||||
|
||||
|
||||
slownik = {}
|
||||
s_oceny = {"Justyna" : [5,5,5], "Bartek" : [3,4,5], "Ola": [3,3,3]}
|
||||
print(s_oceny)
|
||||
|
||||
|
||||
# In[26]:
|
||||
|
||||
|
||||
s_oceny["Jan"] = [3,4,5]
|
||||
print(s_oceny)
|
||||
|
||||
|
||||
# ## Iterowanie po słowniku
|
||||
|
||||
# In[27]:
|
||||
|
||||
|
||||
for osoba in s_oceny:
|
||||
print(osoba,':', s_oceny[osoba])
|
||||
|
||||
|
||||
# In[ ]:
|
||||
|
||||
|
||||
for osoba, oceny in s_oceny.items():
|
||||
print(osoba,':', oceny)
|
||||
|
||||
|
||||
# ## Instrukcja sterująca ```if ... else```
|
||||
|
||||
# * działa tak samo, jak w innych języka;
|
||||
# * jest dodatkowa instrukcja następnego warunku *elif...*;
|
||||
|
||||
# In[30]:
|
||||
|
||||
|
||||
zmienna = int(input("Podaj liczbe:\n"))
|
||||
|
||||
if zmienna < 0:
|
||||
print("Ujemna!")
|
||||
elif zmienna > 0:
|
||||
print("Dodatnia")
|
||||
else:
|
||||
print("Zero!")
|
||||
|
||||
|
||||
# ## Przydatne warunki
|
||||
#
|
||||
# * Porównanie za pomocą `==`
|
||||
# * znak różności: `!=`
|
||||
# * Sprawdzenie, czy coś jest w liście: `item in l`
|
||||
# * Do łączenia warunków służą słowa klucznowe `and` i `or`
|
||||
|
||||
# In[ ]:
|
||||
|
||||
|
||||
if "Ala" in s_oceny:
|
||||
print("Ala jest w grupie!")
|
||||
else:
|
||||
print("Niestety Ali nie ma grupie!")
|
||||
|
||||
|
||||
# # Łańcuchy znakowe
|
||||
|
||||
# In[ ]:
|
||||
|
||||
|
||||
napis = "Wiadomość"
|
||||
print(napis)
|
||||
|
||||
|
||||
# In[ ]:
|
||||
|
||||
|
||||
for znak in napis:
|
||||
print(znak, ord(znak))
|
||||
|
||||
|
||||
# In[ ]:
|
||||
|
||||
|
||||
slowa = ['Bardzo' , 'ważna', 'wiadomość']
|
||||
print(' '.join(slowa))
|
||||
|
||||
|
||||
# In[ ]:
|
||||
|
||||
|
||||
if 'dom' in napis:
|
||||
print(True)
|
||||
else:
|
||||
print(False)
|
||||
|
||||
|
||||
# In[ ]:
|
||||
|
||||
|
||||
text = "Bardzo ważna wiadomość"
|
||||
print(text.split(' '))
|
||||
|
||||
|
||||
# In[ ]:
|
||||
|
||||
|
||||
text = "Nie wszyscy lubią spacje na końcu linii. "
|
||||
print(text)
|
||||
print(text.strip(' '))
|
||||
|
||||
|
||||
# # Pytania?
|
||||
|
||||
# ## Funkcje
|
||||
|
||||
# In[ ]:
|
||||
|
||||
|
||||
def is_greater_than_5(x):
|
||||
if x > 5:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
# In[ ]:
|
||||
|
||||
|
||||
print(is_greater_than_5(5))
|
||||
print(is_greater_than_5(-100))
|
||||
print(is_greater_than_5(500))
|
||||
|
55
labs01/zadania.py
Normal file
55
labs01/zadania.py
Normal file
@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
zad. 1
|
||||
Przejrzyj plik podstawy.py. Zawiera on kopię materiałów z części wykładowej.
|
||||
"""
|
||||
|
||||
"""
|
||||
zad. 2
|
||||
Wyświetl na ekranie pole koła o promieniu 3. Jako przybliżenie PI przyjmij 3.14.
|
||||
"""
|
||||
|
||||
"""
|
||||
zad. 3
|
||||
* Stwórz dwie zmienne imie i nazwisko i przypisz do dowolne wartości (nie muszą
|
||||
być prawdziwe).
|
||||
* wypisz obie zmienne na ekran.
|
||||
* Połącznie obie zmienne spacją i wynik zapisz do zmiennej dane.
|
||||
* Wyświetl jaki typ ma zmienna dane.
|
||||
"""
|
||||
|
||||
"""
|
||||
zad. 4
|
||||
Przekonwertuj wartość b na int, a następnie oblicz średnią z a, b i c.
|
||||
"""
|
||||
a = 314
|
||||
b = "500"
|
||||
c = 4.5
|
||||
|
||||
"""
|
||||
zad. 5
|
||||
Stwórz zmienną pole_kwadratu i przypisz do liczbę: pole kwadratu o boku 3.
|
||||
"""
|
||||
|
||||
"""
|
||||
zad. 6
|
||||
Wczytaj z klawiatury 3 liczby, skonwertuj je na dowolny typ liczbowy, a
|
||||
wynik zapisz do zmiennej suma.
|
||||
"""
|
||||
|
||||
"""
|
||||
zad. 7
|
||||
Wyświetl napis "Suma pdanych liczb to: " <suma>, gdzie <suma> to zmienna
|
||||
z poprzedniego zadania.
|
||||
"""
|
||||
|
||||
"""
|
||||
zad. 8
|
||||
Przekonwertuj zmienna <suma> jako str i stwórz nowy napis jako połączenie
|
||||
"Suma pdanych liczb to: " i przekonwertowanej wartości. Wynik zapisz do
|
||||
zmienne out. Wyświetl zmienną out. Powinien wyjść taki sam wynik jak w z. 7
|
||||
"""
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user