Oct 28, 2023

Promenljive u Pythonu

Šta su promenljive u Pythonu?

Promenljive (variables) u Pythonu su imenovane lokacije u memoriji koje se koriste za skladištenje podataka. Svaka promenljiva ima svoje jedinstveno ime koje se koristi kako bi se pristupilo i manipulisalo sačuvanim podacima. Promenljive su osnovni građevni blokovi svakog programa, jer omogućavaju skladištenje i manipulaciju raznim vrstama podataka.

U Pythonu, definisanje promenljive je vrlo jednostavno. Samo trebate odabrati ime za promenljivu i dodeliti joj vrednost. Na primer:

broj = 42
ime = "John"
    

U ovom primeru, broj i ime su promenljive. broj sadrži celobrojnu vrednost 42, dok ime sadrži tekstualnu vrednost "John". Python je dinamički tipiziran jezik, što znači da ne morate eksplicitno navesti tip podatka prilikom definisanja promenljive; Python će automatski odrediti tip na osnovu vrednosti koju dodelite promenljivoj.

Promenljive mogu biti korišćene za čuvanje različitih tipova podataka, uključujući brojeve, tekst, liste, rečnike i mnoge druge. Na primer:

x = 5        # celi broj (int)
y = 3.14     # decimalni broj (float)
ime = "Ana"  # string (str)
lista = [1, 2, 3]  # lista (list)
recnik = {"kljuc": "vrednost"}  # rečnik (dict)
    

Promenljive vam omogućavaju da radite sa podacima i izvršavate različite operacije u Python programima.

Uvod u Python

O Python programskom jeziku

Python je visokonivojski programski jezik koji je popularan zbog svoje jednostavnosti i lakoće upotrebe. Osnovni cilj Pythona je da omogući programerima da pišu čitljiv, efikasan i brz kod. Evo nekoliko ključnih karakteristika Pythona:

  • Jednostavnost: Python ima čitljivu sintaksu, koja je slična engleskom jeziku, što ga čini lakim za učenje i razumevanje. Ovo olakšava rad i održavanje koda.
  • Univerzalnost: Python se koristi za razvoj različitih vrsta aplikacija, uključujući web aplikacije, desktop aplikacije, mobilne aplikacije, analizu podataka, veštačku inteligenciju, mašinsko učenje, i mnoge druge.
  • Velika i aktivna zajednica: Python ima ogromnu zajednicu programera širom sveta. To znači da postoji mnogo resursa, biblioteka i alata dostupnih za Python, što olakšava rad na različitim projektima.
  • Otvorenost: Python je besplatan i otvorenog koda, što znači da možete besplatno preuzeti, koristiti, i prilagođavati ga vašim potrebama.
  • Velika podrška za biblioteke: Python ima bogat ekosistem biblioteka i okvira (npr. NumPy, pandas, Django, Flask, TensorFlow, PyTorch) koji olakšavaju rad na specifičnim zadacima kao što su analiza podataka, razvoj web aplikacija i mašinsko učenje.

Python se često koristi za brzu prototipizaciju, razvoj skriptova, automatizaciju zadataka i različite druge primene. Zbog svoje popularnosti i univerzalnosti, Python je odličan jezik za početnike i iskusne programere.

Instalacija Pythona na Ubuntu serveru

Instalacija Pythona na Ubuntu serveru je prilično jednostavna, jer Python obično dolazi predinstaliran na većini Ubuntu verzija. Međutim, ako želite instalirati određenu verziju Pythona, možete to uraditi koristeći alate za upravljanje paketima kao što je apt. Evo kako možete instalirati Python 3 na Ubuntu serveru:

  1. Prvo, ažurirajte listu dostupnih paketa kako biste osigurali da imate najnovije informacije o paketima:
    sudo apt update
  2. Zatim možete instalirati Python 3 komandom:
    sudo apt install python3
    Ova komanda će instalirati najnoviju verziju Python 3 koja je dostupna u zvaničnim repozitorijumima Ubuntu.
  3. Da biste proverili da li je Python 3 uspešno instaliran, možete pokrenuti komandu:
    python3 --version
    Trebali biste videti verziju Pythona 3 koju ste instalirali.
  4. Ako vam je potrebna određena verzija Pythona ili dodatni paketi, možete koristiti apt za pretragu i instalaciju tih paketa.

Na Ubuntu serveru, Python će biti koristan za razne zadatke, uključujući automatizaciju, razvoj web aplikacija i razvoj serverskih aplikacija.

Kako napisati prvi Python kod

Pisanje prvog Python koda je jednostavno. Evo osnovnog primera kako biste mogli da započnete:

# Ovo je komentar
print("Zdravo, svete!")
    

Ovaj primer prikazuje osnovni Python program koji koristi funkciju print() da bi ispisao poruku "Zdravo, svete!" na ekranu.

Evo koraka kako da napišete i izvršite ovaj kod:

  1. Otvorite tekstualni uređivač (kao što je Notepad na Windowsu, ili bilo koji tekstualni uređivač na vašem operativnom sistemu).
  2. Kopirajte gornji Python kod i zalijepite ga u tekstualni uređivač.
  3. Sačuvajte datoteku sa ekstenzijom .py, na primer, prvi_program.py. Ekstenzija .py označava Python skriptu.
  4. Otvorite terminal na svom računaru.
  5. Koristite cd komandu da biste se pozicionirali u direktorijum gde se nalazi vaša Python skripta. Na primer:
    cd putanja/do/vasih/datoteka
  6. Pokrenite Python skriptu koristeći komandu python3 (ili python, zavisno od verzije Pythona koju koristite) sa imenom vaše datoteke:
    python3 prvi_program.py
    Ako koristite Python 3, koristite python3. Ako koristite Python 2, koristite python.
  7. Rezultat će biti prikazan u terminalu, a trebali biste videti "Zdravo, svete!" ispisano na ekranu.

Ovo je osnovni primer kako napisati i izvršiti Python kod. Nakon što savladate osnovne koncepte, možete nastaviti da učite i razvijate složenije Python programe.

Jul 19, 2015

Kontrola prosleđivanja i kontrola pristupa u Postfixu

Postfix omogućava da se access liste primene na svaku fazu u SMTP komunikaciji.

Primer jednostavnih restriktivnih lista:
/etc/postfix/main.cf:
    # Dozvoli samo konekcije sa pouzdanih mreža
    smtpd_client_restrictions = permit_mynetworks, reject

    # Ne komuniciraj sa mejl sistemima koji ne znaju svoj hostname.
    # Sa Postfix < 2.3, koristiti reject_unknown_hostname.
    smtpd_helo_restrictions = reject_unknown_helo_hostname

    # Ne prihvataj mejlove sa domena koji ne postoje.
    smtpd_sender_restrictions = reject_unknown_sender_domain

    # Kontrola prosleđivanja (Postfix 2.10 i veće): lokalni klijenti i autentifikovani klijenti mogu navesti bilo koji odlazni domein.
    smtpd_relay_restrictions = permit_mynetworks,
        permit_sasl_authenticated,
        reject_unauth_destination

    # Kontrola spama: isključi lokalne klijente i authentifikovane klijente is DNSBL lookupsa
    smtpd_recipient_restrictions = permit_mynetworks,
        permit_sasl_authenticated,
        # reject_unauth_destination is not needed here if the mail
        # relay policy is specified under smtpd_relay_restrictions
        # (available with Postfix 2.10 and later).
        reject_unauth_destination
        reject_rbl_client zen.spamhaus.org,
        reject_rhsbl_reverse_client dbl.spamhaus.org,
        reject_rhsbl_helo dbl.spamhaus.org,
        reject_rhsbl_sender dbl.spamhaus.org

    # Blokiraj klijente koji prebrzo započnu komunikaciju.
    smtpd_data_restrictions = reject_unauth_pipelining

    # Enforce mail volume quota via policy service callouts.
    smtpd_end_of_data_restrictions = check_policy_service unix:private/policy

Svaka lista ograničenja se primenjuje sa leva u desno dok neki rezultat ne bude Permit, Reject ili Defer(pokušaj kasnije).Na kraju svake liste  je Permit. Ubacivanjem Perimit restrikcije pre Reject mogu se izbeći zabrane za neke klijente. Ovo se zovu bele liste. Četvrti primer dozvoljava poštu iz lokalne mreže ali odbacuje u drugim slučajevima odbacuje mejlove ka proizvoljnim destinacijama.