Užitočne Linky
Official Python WebpageStiahnuť Python version 3.7.0
Stiahnuť PyCharm
Operatory
Práca zo súbormi
Viac o Read-Write
Čo je Python?
- Programovací jazyk
- Interpretovaný
- Interaktívny
- Dynamicky typový jazyk
- Vyvíjaný povodne ako open source projekt
- Multi-paradigmový
- Created by: Guido van Rossum
- Python sa dá jednoducho rozširovať
- Na správu pamäte používa garbage collection
- Pomenovaný podľa populárneho britského seriálu "Monty Python’s Flying Circus"
- Má dosť veľkú štandardnú knižnicu
Ďalšie zaujimavosti
Python podporuje základné dátové typy, ako celé čísla a čísla s pohyblivou desatinnou čiarkou, ale podporuje aj celé čísla neobmedzenej dĺžky a komplexné čísla.
Taktiež podporuje bežné operácie s reťazcami s jednou výnimkou: reťazce sú v Pythone nemenným typom, takže operácie, ktoré by inak menili reťazec (napríklad zámena znakov), namiesto toho vracajú nový reťazec.
V Pythone premenné nemajú typ, majú iba hodnoty. Teda Python je dynamicky typový jazyk na rozdiel od Java a C. Všetky hodnoty sa odovzdávajú odkazom a nie hodnotou.
Operatory
Operacia | Syntax | Function |
---|---|---|
Addition |
a
+
b
|
add(a,
b)
|
Concatenation |
seq1
+
seq2
|
concat(seq1,
seq2)
|
Containment Test |
obj
in
seq
|
contains(seq,
obj)
|
Division |
a
/
b
|
truediv(a,
b)
|
Division |
a
//
b
|
floordiv(a,
b)
|
Bitwise And |
a
&
b
|
and_(a,
b)
|
Bitwise Exclusive Or |
a
^
b
|
xor(a,
b)
|
Bitwise Inversion |
~
a
|
invert(a)
|
Bitwise Or |
a
|
b
|
or_(a,
b)
|
Exponentiation |
a
**
b
|
pow(a,
b)
|
Identity |
a
is
b
|
is_(a,
b)
|
Identity |
a
is
not
b
|
is_not(a,
b)
|
Indexed Assignment |
obj[k]
=
v
|
setitem(obj,
k,
v)
|
Indexed Deletion |
del
obj[k]
|
delitem(obj,
k)
|
Indexing |
obj[k]
|
getitem(obj,
k)
|
Left Shift |
a
<<
b
|
lshift(a,
b)
|
Modulo |
a
%
b
|
mod(a,
b)
|
Multiplication |
a
*
b
|
mul(a,
b)
|
Negation (Arithmetic) |
-
a
|
neg(a)
|
Negation (Logical) |
not
a
|
not_(a)
|
Positive |
+
a
|
pos(a)
|
Right Shift |
a
>>
b
|
rshift(a,
b)
|
Slice Assignment |
seq[i:j]
=
values
|
setitem(seq,
slice(i,
j),
values)
|
Slice Deletion |
del
seq[i:j]
|
delitem(seq,
slice(i,
j))
|
Slicing |
seq[i:j]
|
getitem(seq,
slice(i,
j))
|
String Formatting |
s
%
obj
|
mod(s,
obj)
|
Subtraction |
a
-
b
|
sub(a,
b)
|
Truth Test |
obj
|
truth(obj)
|
Ordering |
a
<
b
|
lt(a,
b)
|
Ordering |
a
<=
b
|
le(a,
b)
|
Equality |
a
==
b
|
eq(a,
b)
|
Difference |
a
!=
b
|
ne(a,
b)
|
Ordering |
a
>=
b
|
ge(a,
b)
|
Ordering |
a
>
b
|
gt(a,
b)
|
Príklady
Vypís do konzoly:
>>> print("Hello world!")
Reťazce:
>>> "Ahoj Svet"
Ahoj Svet
>>> 'Ahoj Svet'
Ahoj Svet
Niektoré funkcie reťazcov:
#indexovanie
>>>"Ahoj Svet"[0]
#nasobenie
>>>"Ahoj Svet"*5
#konkatenacia
>>>"Ahoj Svet"+"world"
#substringy
>>>"Ahoj Svet"[1:5]
#dlzka
>>>len("Ahoj Svet")
#vyhladavanie
>>>"e" in "Ahoj Svet"
Niektoré základne funkcie pri prace z poliami:
pole.append(nejaky_obj)
pole.extend(pridaj_pole_na_koniec)
pole.insert(pozicia,hodnota)
pole.remove(i)
pole.pop(vymaz_z_pola_prvok_a_vrat_ho)
pole.index(vrat_idx_prveho_prvka_s_donou_hodnotou)
pole.count(vrat_pocet_urcitych_prvkov_v_poli)
pole.sort()
del pole[vymaz_prvok_na_idx]
Množiny sa vytvárajú pridelením hodnôt s použitim množinovych zátvoriek identifikátoru. Prvky ktore nachádzajú viac krát, na výstupe dostaneme iba raz.
Na získanie aktuálneho adresára sa oplatí použiť:
>>> import sys
>>> print(sys.path)
Tkinter a Socket
TKinter window example
Viac o TKintere
from Tkinter import *
tk=Tk()
tk.title('MegaChat')
tk.geometry('400x300')
tk.mainloop()
Socket Example
Viac o socketoch
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.bind(('0.0.0.0',11719))
while 1:
message = s.recv(128)
print (message)
Chat Broadcast Flooder
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
while 1:
sock.sendto('broadcast!',('255.255.255.255',11719))
Úloha
- Vytvoriť server-aplikaciu a klient-aplikaciu ktora bude simulovať chat