Python

Užitočne Linky

Official Python Webpage
Stiahnuť Python version 3.7.0
Stiahnuť PyCharm
Operatory
Práca zo súbormi
Viac o Read-Write

Čo je Python?

Ď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

Riešenie

Stiahnuť riešenie