Programiści zazwyczaj wybierają dla swoich zmiennych nazwy, które są sensowne i opisują, do czego dana zmienna jest używana.
Nazwy zmiennych mogą być dowolnie długie. Mogą zawierać zarówno litery, jak i cyfry, ale nie mogą zaczynać się od cyfry. Użycie dużych liter jest poprawne, ale lepiej jest zacząć nazwy zmiennych od małej litery.
Co prawda w nazwach zmiennych można też używać np. polskich znaków diakrytycznych, ale lepiej trzymać się przyjętej w środowisku programistów konwencji i ich nie używać.
Znak podkreślenia (_) może pojawić się w nazwie. Jest on często używany w nazwach zawierających wiele słów, takich jak moje_imie lub predkosc_jaskolki_bez_obciazenia.
Nazwy zmiennych mogą zaczynać się od znaku podkreślenia, ale generalnie tego unikamy (chyba że piszemy kod biblioteki, która docelowo będzie używana przez inne osoby).
x = 5
y = "Piotr"
a = 4.5
A = 56
x, y, z = "Orange", "Banana", "Cherry"
x = y = z = "Apple"
z = 'Cherry'
y
'Apple'
b
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[2], line 1 ----> 1 b NameError: name 'b' is not defined
a = 5
b = 10
a * b
50
c = a * b
c
50
76trombones = ' big parade '
Cell In[1], line 1 76trombones = ' big parade ' ^ SyntaxError: invalid decimal literal
class = ' Advanced Theoretical Zymurgy '
Cell In[6], line 1 class = ' Advanced Theoretical Zymurgy ' ^ SyntaxError: invalid syntax
more@ = 1000000
--------------------------------------------------------------------------- FileNotFoundError Traceback (most recent call last) Cell In[7], line 1 ----> 1 get_ipython().run_line_magic('more', '@ = 1000000') File /usr/lib/python3/dist-packages/IPython/core/interactiveshell.py:2456, in InteractiveShell.run_line_magic(self, magic_name, line, _stack_depth) 2454 kwargs['local_ns'] = self.get_local_scope(stack_depth) 2455 with self.builtin_trap: -> 2456 result = fn(*args, **kwargs) 2458 # The code below prevents the output from being displayed 2459 # when using magics with decorator @output_can_be_silenced 2460 # when the last Python token in the expression is a ';'. 2461 if getattr(fn, magic.MAGIC_OUTPUT_CAN_BE_SILENCED, False): File /usr/lib/python3/dist-packages/ipykernel/zmqshell.py:342, in KernelMagics.less(self, arg_s) 340 cont = self.shell.pycolorize(openpy.read_py_file(arg_s, skip_encoding_cookie=False)) 341 else: --> 342 with open(arg_s) as fid: 343 cont = fid.read() 344 page.page(cont) FileNotFoundError: [Errno 2] No such file or directory: '@ = 1000000'
and |
del |
from |
None |
True |
as |
elif |
global |
nonlocal |
try |
assert |
else |
if |
not |
while |
break |
except |
import |
or |
with |
class |
False |
in |
pass |
yield |
continue |
finally |
is |
raise |
async |
def |
for |
lambda |
return |
await |
Uwaga: None jest słowem kluczowym, natomiast none nim nie jest.
Pierwsza instrukcja spowoduje błąd, ponieważ None jest słowem kluczowym. Druga jest poprawna — none może być nazwą zmiennej.
None = 100
Cell In[8], line 1 None = 100 ^ SyntaxError: cannot assign to None
none = 100
| Operator | Skrót | Znaczenie |
|---|---|---|
+ |
+= |
dodawanie |
- |
-= |
odejmowanie |
* |
*= |
mnożenie |
/ |
/= |
dzielenie |
** |
**= |
potęgowanie |
// |
//= |
dzielenie całkowite lub iloraz przy dzieleniu z resztą |
% |
%= |
reszta z dzielenia |
a = 3
a *= 2
a
6
b*=a**2
a = 6
b = 2
b*=a**2
b
72
b/=a
b
12.0
a + b*=2
Cell In[14], line 1 a + b*=2 ^ SyntaxError: 'expression' is an illegal expression for augmented assignment
3*=2
Cell In[15], line 1 3*=2 ^ SyntaxError: 'literal' is an illegal expression for augmented assignment
Algorytmika - dział matematyki oraz informatyki zajmujący się analizą oraz projektowaniem algorytmów.
Algorytmika ma bardzo duży wpływ na wydajność systemów komputerowych. Z tego względu algorytmy, podobnie jak układy elektroniczne komputera, są uznawane za technologię.
Algorytmy operują na strukturach danych, stąd w literaturze często zagadnienia te są omawiane w tych samych pozycjach.
Algorytm -- skończony ciąg jasno zdefiniowanych czynności koniecznych do wykonania pewnego rodzaju zadań, sposób postępowania prowadzący do rozwiązania problemu. Można go przedstawić na schemacie blokowym.
Słowo ,,algorytm'' pochodzi od łacińskiego słowa algorithmus, oznaczającego wykonywanie działań przy pomocy liczb arabskich (w odróżnieniu od abacism -- przy pomocy abakusa), które z kolei wzięło się od nazwy ,,Algoritm'', zlatynizowanej wersji nazwiska ,,al-Chwarizm'' Abu Abdullaha Muhammada ibn Musy al-Chuwarizmiego, matematyka perskiego z IX wieku.
Badaniem algorytmów zajmuje się algorytmika.
Zadaniem algorytmu jest przeprowadzenie systemu z pewnego stanu początkowego do pożądanego stanu końcowego.
Jako przykład stosowanego w życiu codziennym algorytmu podaje się często przepis kulinarny. Dla przykładu, aby ugotować bigos, należy w określonej kolejności oraz odstępach czasowych dodawać właściwe rodzaje kapusty i innych składników. Może istnieć kilka różnych przepisów dających na końcu bardzo podobną potrawę. Przykład ten ma wyłącznie charakter poglądowy, ponieważ język przepisów kulinarnych nie został jasno zdefiniowany. Algorytmy zwykle formułowane są w sposób ścisły w oparciu o język matematyki.
Znalezienie największego elementu wśród podanych przez użytkownika po koleje. Użytkownik konczy badanie elementow podajac nie liczbowy symbol.
Niech maksimum oznacza największą dotychczas znalezioną wartość.
1 Pobieramy od uzytkownika pierwszy element.
Jezeli on nie jest liczbą, to koniec.
Inaczej ustalamy maksymum = podana liczba.
2. Pobieramy od użytkownika następny element.
Jezeli on nie jest liczbą, to koniec.
Jeżeli jego wartość jest większa od zawartości maksimum, to przypisz maksimum wartość tego elementu.
3. Wróć do punktu 2.
Wynikiem będzie maksymum
Schemat blokowy — narzędzie służące do przedstawienia kolejnych czynności w projektowanym algorytmie. Jest to diagram, na którym procedura, system lub program komputerowy są reprezentowane przez opisane figury geometryczne połączone strzałkami (niekiedy tylko liniami) zgodnie z kolejnością wykonywania czynności wynikających z przyjętego algorytmu rozwiązania zadania.

Schemat blokowy powinien zapewniać:
Schematy blokowe pozwalają na prostą zamianę instrukcji na instrukcje programu komputerowego.
Do głównych elementów budowy schematów blokowych należą:
Wyróżnia się następujące rodzaje bloków:
Blok graniczny — oznacza początek, koniec, przerwanie lub wstrzymanie wykonywania działania, np. blok startu programu.
Blok wejścia-wyjścia — przedstawia czynność wprowadzania danych do programu i przyporządkowania ich zmiennym dla późniejszego wykorzystania, jak i wyprowadzenia wyników obliczeń, np. czytaj z, pisz z + 10.
Blok operacyjny — oznacza wykonanie operacji, w efekcie której zmienią się wartości, postać lub miejsce zapisu danych, np. $z := z + 1$.
Blok decyzyjny (warunkowy) — przedstawia wybór jednego z dwóch wariantów wykonywania programu na podstawie sprawdzenia warunku wpisanego w blok, np. $a = b$.
Blok wywołania podprogramu — oznacza zmianę wykonywanej czynności na skutek wywołania podprogramu, np. $MAX(x,y,z)$.
Blok komentarza — pozwala wprowadzać komentarze wyjaśniające poszczególne części schematu, co ułatwia zrozumienie go czytającemu, np. wprowadzenie danych.
Łącznik wewnętrzny – służy do łączenia odrębnych części schematu znajdujących się na tej samej stronie; powiązane ze sobą łączniki oznaczone są tym samym napisem, np. $A1$, $7$.
Łącznik zewnętrzny – służy do łączenia odrębnych części schematu znajdujących się na różnych stronach; powinien być opisany jak łącznik zewnętrzny; poza tym powinien zawierać numer strony, do której się odwołuje, np. $2$, $4.3$, $B5$.
Znalezienie największego elementu wśród podanych przez użytkownika po koleje. Użytkownik konczy badanie elementow podając nie liczbowy symbol.
Niech maksimum oznacza największą dotychczas znalezioną wartość.
1 Pobieramy od uzytkownika pierwszy element.
Jezeli on nie jest liczbą, to koniec.
Inaczej ustalamy maksymum = podana liczba.
2. Pobieramy od użytkownika następny element.
Jezeli on nie jest liczbą, to koniec.
Jeżeli jego wartość jest większa od zawartości maksimum, to przypisz maksimum wartość tego elementu.
3. Wróć do punktu 2.
Wynikiem będzie maksymum
var1 = 2
var2 = 3
var1 += 2
var3 = var1
var1 *= 3
var4 = var1/var2
var2 += 2
# wyświetlenie wartości:
print('var2 = ', var2)
var2 = 5
print()¶print() -- polecenie wyświetlania
print("Hello World!")
Hello World!
Możesz połączyć dwa lub więcej napisów w jednym poleceniu oddzielając je przecinkiem, a spacja między nimi doda się automatycznie:
print("Witaj", "co u Ciebie?")
Witaj co u Ciebie?
Instrukcja print() pozwala na wyświetlanie różnych typów, nie tylko napisów.
print(3)
print(3, 6, 8)
print("Ania ma:", 3, "lata")
print()
print('doesn\'t')
3 3 6 8 Ania ma: 3 lata doesn't
print('Hello' , 'world')
print('Hello' , 'world' , sep='*')
print('Hello' , 'world' , sep=' ')
print('Hello' , 'world', sep='\n')
Hello world Hello*world Hello world Hello world
| Znak specjalny | Znaczenie |
|---|---|
\n |
znak nowej linii, dodanie „entera” |
\t |
dodanie tabulacji (= 8 spacji) |
\' |
apostrof |
\" |
cudzysłów |
\\ |
ukośnik zwrotny |
print("To jest\nnowe")
print("To jest\n\tnowe")
To jest nowe To jest nowe
print(5+3)
print(4*5.2)
print(9-7)
print(25%7)
print(4/5)
8 20.8 2 4 0.8
print(4//5)
print(4/5.0)
print(4//5.0)
print(3**0)
0 0.8 0.0 1
print(0**0)
print(4/0)
1
--------------------------------------------------------------------------- ZeroDivisionError Traceback (most recent call last) Cell In[24], line 2 1 print(0**0) ----> 2 print(4/0) ZeroDivisionError: division by zero
print() ze zmiennymi
a = 5
b = 7
print(a + b)
print(s = 3)
12
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) Cell In[25], line 4 2 b = 7 3 print(a + b) ----> 4 print(s = 3) TypeError: 's' is an invalid keyword argument for print()
c, d = 2, 4
print(c/d**2)
print(c/(d**2))
print((c/d)**2)
0.125 0.125 0.25
x = 2
print(x)
x += 1
print(x)
2 3
x = 3
print(x += 1)
Cell In[28], line 2 print(x += 1) ^ SyntaxError: invalid syntax
slowo = 'Ala ma'
print(slowo + 'kota')
print(slowo, 'kota')
print(slowo, 'kota', sep= '*')
Ala makota Ala ma kota Ala ma*kota
slowo = "Pies"
print(slowo*2)
print(slowo, 3)
print(slowo+3)
PiesPies Pies 3
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) Cell In[30], line 4 2 print(slowo*2) 3 print(slowo, 3) ----> 4 print(slowo+3) TypeError: can only concatenate str (not "int") to str
Obliczyć BMI dla wagi - 63, wzrost - 1.60.
Wzór na BMI: $$ BMI=\dfrac{waga}{wzrost^2} $$
wzrost = 1.60
waga = 53
BMI = waga / (wzrost ** 2)
BMI
print("Twoje bmi wynosi:",BMI)
Twoje bmi wynosi: 20.703124999999996
Oczywiście, można zrobić w jednej linii:
print("Twoje bmi wynosi:", 53.0 / (1.6 ** 2))
Twoje bmi wynosi: 20.703124999999996
print()¶print(*objects, sep=' ', end='\n', file=sys.stdout, flush =False)
objects — to, co ma być wyświetlonesep — separator, domyślnie znak spacjiend — to, co ma być wyświetlone na końcu, domyślnie znak końca liniifile — określa, gdzie mają być objects wyświetlone, domyślnie sys.stdout (domyślny ekran)flush — określa, czy „wyjście” ma być buforowane przed przekazaniem do file, domyślnie Falseprint(1, 2, 3, 4)
print(1, 2, 3, 4, sep = '*')
print(1, 2, 3, 4, sep = '*', end = '&')
print('x', 'y', 'z', sep='', end='')
print('a', 'b', 'c', sep='', end='')
print('a', 'b', '\n', 'c')
print('sdf', 3456, -2, sep='\t')
1 2 3 4 1*2*3*4 1*2*3*4&xyzabca b c sdf 3456 -2
a = "abc"
str = "a to %s" % a
print(str)
b = 4
c = 5
str2 = "%d + %d = %d" % (b, c, b + c)
print(str2)
a to abc 4 + 5 = 9
format¶a = "abc"
str = "a to {}".format(a)
print(str)
b = 4.2
c = 5
str2 = "{0} + {1} = {2}".format(b, c, b + c)
print(str2)
a to abc 4.2 + 5 = 9.2
f-Strings¶f-ciągi pojawiły się w wersji języka Python 3.6 i obecnie są zalecanym sposobem formatowania tekstu. Aby utworzyć f-ciąg, należy:
f lub F, a zaraz po niej otwierający cudzysłów lub apostrof.a = "abc"
str = f"a to {a}"
print(str)
b = 4.2
c = 5
str2 = f"{b} + {c} = {b+c}"
print(str2)
a to abc 4.2 + 5 = 9.2
b = 4.2
c = 5
str2 = f"{b:f} + {c:d} = {b+c:e}"
print(str2)
print(f"{b:.2f} + {c:d} = {b+c:e}")
4.200000 + 5 = 9.200000e+00 4.20 + 5 = 9.200000e+00
wzrost = 1.60
waga = 53
BMI = waga / (wzrost ** 2)
BMI
print(f"Twoje bmi wynosi: {BMI}")
Twoje bmi wynosi: 20.703124999999996
x = input()
print(x)
print(type(x))
4 4 <class 'str'>
x = int(input())
print(x)
print(type(x))
5 5 <class 'int'>
x = int(input("Wpisz licbzą:"))
print(x)
print(type(x))
Wpisz licbzą:5 5 <class 'int'>
a = int(input ("Wprowadź pierwszą liczbę : "))
b = int(input ("Wprowadź drugą liczbę : "))
print(a + b)
Wprowadź pierwszą liczbę : 2 Wprowadź drugą liczbę : 3 5
W wierze poleceń przejść do folderu z plikiem, naprz.
cd /D D:\numerindeksu
I potem uruchomić plik w werszu poleceń
py nazwapliku.py
W PowerShell:
Set-Location -Path D:\numerindeksu
py nazwapliku.py
a = int(input ("Wprowadź pierwszą liczbę : "))
b = int(input ("Wprowadź drugą liczbę : "))
print(a / b)
Wprowadź pierwszą liczbę : 6 Wprowadź drugą liczbę : 3 2.0
A jeżeli chcemy sprawdzić , ze $b\ne 0$?
Instrukcja warunkowa – element języka programowania, który pozwala na wykonanie różnych instrukcji w zależności od tego czy zdefiniowane przez programistę wyrażenie logiczne jest prawdziwe, czy fałszywe.
Jeżeli $b\ne 0$, wyświetl $a/b$.
Inaczej – wyświetl komunikat o błędzie (opcjonalne).
if <expr>:
<statement(s)>
Jeżeli $b\ne 0$, wyświetl $a/b$, inaczej....
if <expr>:
<statement(s)>
else:
<statement(s)>
Warunek musi być typu bool lub mieć możliwość przekstałcenia bool.
a = int(input ("Wprowadź pierwszą liczbę : "))
b = int(input ("Wprowadź drugą liczbę : "))
if b != 0:
print(a,":",b, "=", a/b)
Wprowadź pierwszą liczbę : 18 Wprowadź drugą liczbę : 6 18 : 6 = 3.0
a = int(input ("Wprowadź pierwszą liczbę : "))
b = int(input ("Wprowadź drugą liczbę : "))
if b:
print(a,":",b, "=", a/b)
Wprowadź pierwszą liczbę : 3 Wprowadź drugą liczbę : 0
Wprowadź pierwszą liczbę : 14
Wprowadź drugą liczbę : 2
7