Kaikkea tietoa Pythonista - aloittelijasta edistyneeseen

Kaikki mitä sinun on tiedettävä yhdessä artikkelissa

Tämän artikkelin tarkoituksena on hahmotella kaikkia Python-ohjelmointikielen avainkohtia. Tavoitteenani on pitää tiedot lyhyinä, osuvina ja keskittyä tärkeimpiin aiheisiin, jotka on ehdottomasti ymmärrettävä.

Kun olet lukenut tämän blogin, voit käyttää mitä tahansa Python-kirjastoa tai toteuttaa omia Python-paketteja.

Sinulta ei odoteta olevan mitään aikaisempaa ohjelmointitietoa, ja on erittäin nopea ymmärtää kaikki tarvittavat käsitteet.

Korostan myös tärkeimmät keskustelukysymykset, joita ihmiset yleensä kysyvät Python-ohjelmointikielestä.

Annetaan rakentaa tietoa vähitellen ja artikkelin loppuun mennessä sinulla on perusteellinen ymmärrys Pythonista.

Tässä on 5 mielenkiintoista Python-harjoitusta, jotka auttavat oppimisessa:

Suosittelen tätä artikkelia, koska se osoittaa kuinka voit käyttää Python-tietosi, jonka selitän nyt rakentaaksesi vankan sovelluksen:

Tämä artikkeli sisältää 25 keskeistä aihetta. Aloitetaan.
Kuva: Curtis MacNewton Unsplash-kuvassa

1. Esittelyssä Python

Mikä on Python?

  • Tulkittu korkean tason olio-suuntautunut dynaamisesti kirjoitettu skriptikieli.
  • Python-tulkki lukee yhden koodirivin kerrallaan, tulkitsee sen matalan tason konekieleksi (tavukoodi) ja suorittaa sen sitten.
  • Seurauksena on yleensä ajoaikavirheitä.

Miksi Python?

  • Python on suosituin kieli, koska se on helpompi koodata ja ymmärtää sitä.
  • Python on oliokeskeinen ohjelmointikieli, jota voidaan käyttää myös toiminnallisen koodin kirjoittamiseen.
  • Se on sopiva kieli, joka siltaa kuilut yrityksen ja kehittäjien välillä.
  • Myöhemmin Python-ohjelman saattaminen markkinoille vie vähemmän aikaa verrattuna muihin kieliin, kuten C # / Java.
  • Lisäksi on olemassa suuri määrä python-koneoppimis- ja analyyttisiä paketteja.
  • Python-kehittäjien tukemiseen on saatavana suuri joukko yhteisöjä ja kirjoja.
  • Lähes kaikki tyyppiset sovellukset, analyyttisestä ennustamisesta käyttöliittymään, voidaan toteuttaa Pythonissa.
  • Muuttujan tyyppejä ei tarvitse ilmoittaa. Näin ollen Python-sovellus on nopeampi toteuttaa.

Miksi ei Python?

  • Python on hitaampi kuin C ++, C #, Java. Tämä johtuu siitä, että Pythonissa ei ole Just In Time -optimoijia.
  • Python-syntaktinen valkoisen tilan rajoitus tekee siitä hieman vaikean toteuttaa uusille koodereille.
  • Python ei tarjoa edistyneitä tilastollisia ominaisuuksia, kuten R.
  • Python ei sovellu matalan tason järjestelmän ja laitteiston vuorovaikutukseen.

Kuinka Python toimii?

Tämä kuva kuvaa kuinka python toimii koneissamme:

Avain tässä on tulkki, joka vastaa korkean tason Python-kielen kääntämisestä matalan tason konekieleksi.

2. Muuttujat - objektityypit ja laajuus

  • Muuttujat tallentavat tietoja, joita voidaan käyttää ohjelmassasi, kuten pitää käyttäjän syötteitä, ohjelman paikallisia tiloja jne.
  • Muuttujilla on nimi, jotta niihin voidaan viitata koodissa.

Python tukee numeroita, merkkijonoja, sarjoja, luetteloita, tupleja ja sanakirjoja. Nämä ovat tavallisia tietotyyppejä.

Ilmoita ja anna arvo muuttujalle

Tehtävä asettaa arvon muuttujalle:

myFirstVariable = 1
mySecondVariable = 2
myFirstVariable = "Hei sinä"
  • Arvon määrittäminen tunnetaan sitovana Pythonissa.

Huomaa, kuinka annoin kokonaislukuarvon 1 ja sitten merkkijonoarvon “Hello You” myFirstVariable -muuttujalle. Tämä on mahdollista johtuen siitä, että tietotyypit tyypitetään dynaamisesti pythoniin.

numeerinen

  • Kokonaislukuja, desimaalit, kelluvia tuetaan.
arvo = 1 # integroitu
arvo = 1,2 # kelluva liukuluku
  • Pitkät ovat myös tuettu. Heillä on liite L, esim. 9999999999999L

jouset

  • Tekstitiedot. Merkkijonot ovat kirjainjaksoja.
  • Merkkijonon arvo on lainausmerkeissä:
nimi = 'farhad'
  • Merkkijonot ovat pysyviä. Kun ne on luotu, niitä ei voi muuttaa esim.
a = 'minä'
A [1] = 'y'
Se heittää tyyppivirheen
  • Kun merkkijonomuuttujille on annettu uusi arvo, sisäisesti Python luo uuden objektin arvon tallentamiseksi.

Muuttujat voivat olla paikallisia tai globaaleja.

Paikallinen soveltamisala

  • Esimerkiksi funktion sisällä ilmoitetut muuttujat voivat esiintyä vain lohkossa.
  • Kun lohko on olemassa, muuttujia ei myöskään voi käyttää.
def some_funcion ():
  TestMode = Väärä
print (TestMode) <- Katkeaa, koska muuttujaa ei ole ulkopuolella

Python-sovelluksessa, jos muu, ja / / loop-lohko ei luo paikallista laajuutta.

i: lle alueella (1, 11):
    test_scope = "muuttuja silmukan sisällä"
Tulosta (test_scope)

lähtö:

muuttuva silmukan sisällä

If-else -lohkolla

is_python_awesome = Totta
jos on_python_hieno:
    test_scope = "Python on mahtava"
Tulosta (test_scope)

lähtö:

Python on mahtava

Globaali soveltamisala

  • Muuttujista, joihin pääsee mistä tahansa toiminnosta, on maailmanlaajuinen laajuus. Ne ovat __main__-kehyksessä.
  • Voit julistaa globaalin muuttujan toimintojen ulkopuolella. On tärkeää huomata, että jos haluat antaa globaalille muuttujalle uuden arvon, sinun on käytettävä globaalia avainsanaa:
TestMode = Totta
def some_function ():
  globaali TestMode
  TestMode = Väärä
some_function ()
print (TestMode) <- Palauttaa väärän

Rivin ”global TestMode” poistaminen asettaa muuttujan arvoon False vain some_function () -toiminnossa.

Huomaa: Vaikka kirjoitan enemmän moduulien käsitteestä myöhemmin, mutta jos haluat jakaa globaalin muuttujan useille moduuleille, voit luoda jaetun moduulitiedoston esimerkiksi configuration.py ja etsi muuttujasi sieltä. Tuo lopuksi jaettu moduuli kuluttajamoduuleihisi.

Muuttujan tyypin löytäminen

  • Jos haluat löytää muuttujan tyypin, voit ottaa sen käyttöön:
tyyppi (Farhad ')
-> Palauttaa 

Pilkku kokonaislukumuuttujissa

  • Pilkuja käsitellään muuttujien sekvenssinä, esim.
9,8,7 on kolme numeerista muuttujaa

3. Toiminnot

  • Antaa meille mahdollisuuden laskea muuttujat

Numeeriset toiminnot

  • Python tukee perus *, /, +, -
  • Python tukee myös kerrosjakoa
1 // 3 # palauttaa 0
1/3 # palaa 0,333
  • Lisäksi python tukee eksponentisaatiota ** -operaattorin kautta:
2 ** 3 = 2 * 2 * 2 = 8
  • Python tukee myös Modulus (jäljellä oleva) operaattoria:
7% 2 = 1

Joustoiminnot

Concat-kielet:

'A' + 'B' = 'AB'

Toista merkkijono:

'A' * 3 toistaa A: n kolme kertaa: AAA

viipalointi:

y = 'Abc'
y [: 2] = ab
y [1:] = bc
y [: - 2] = a
y [-2:] = bc

peruutettaessa:

x = 'abc'
x = x [:: - 1]

Negatiivinen hakemisto:

Jos haluat aloittaa viimeisestä merkistä, käytä negatiivista indeksiä.

y = 'abc'
print (y [: - 1]) # palauttaa c

Käytetään myös uusien linjavaunujen / tilojen poistamiseen.

Hakemiston löytäminen

nimi = 'farhad'
hakemisto = nimi.find ('r')
#palaa 2
nimi = 'farhad'
index = name.find ('a', 2) # etsii toisen a hakemiston
#palaa 4

Käytä Regexiä:

  • split (): jakaa merkkijonon luetteloon regexin kautta
  • sub (): korvaa sovitetun merkkijonon regexin kautta
  • subn (): korvaa sovitetun merkkijonon regexin avulla ja palauttaa uusintamäärä

Valu

  • str (x): Merkkijono
  • int (x): Kokonaisluku
  • kelluva (x): kelluu

Aseta toiminnot

  • Sarja on järjestämätön tiedonkeruu. Voimme määrittää joukon muuttujan seuraavasti:
a = {1,2,3}

Risteysjoukot

  • Saadaksesi kaiken, mikä on yhteistä kahdessa sarjassa
a = {1,2,3}
b = {3,4,5}
c = a.suunta (b)

Ero sarjoissa

  • Kahden sarjan eron noutaminen:
a = {1,2,3}
b = {3,4,5}
c = a-ero (b)

Kokoelmien liitto

  • Saadaksesi erillinen kahden sarjan yhdistelmäsarja
a = {1,2,3}
b = {3,4,5}
c = a.union (b)

Ternaarioperaattori

  • Käytetään ehdollisten lauseiden kirjoittamiseen yhdelle riville.

Syntaksi:

[Jos totta], jos [lauseke] muu [jos väärä]

Esimerkiksi:

Vastaanotettu = Totta, jos x == 'Kyllä' muuten vääriä

4. Kommentit

Yhden rivin kommentit

# Tämä on yhden rivin kommentti

Useita rivikommentteja

Voidaan käyttää:

`` `tämä on moni
linja
comment```

5. Lausekkeet

Lausekkeet voivat suorittaa boolean-toimintoja, kuten:

  • Tasa-arvo: ==
  • Ei sama:! =
  • Suurempi:>
  • Vähemmän: <
  • Suurempi tai yhtä suuri> =
  • Vähemmän tai yhtä suuri <=

6. Peittaus

Objektin muuntaminen merkkijonoksi ja merkkijonon purkaminen tiedostoksi tunnetaan nimellä peittaus. Käänteinen puoli tunnetaan kutsumattomana.

7. Toiminnot

  • Toiminnot ovat lauseiden sarja, jotka voit suorittaa koodissasi. Jos näet toistumisen koodissasi, luo uudelleenkäytettävä toiminto ja käytä sitä ohjelmassa.
  • Toiminnot voivat viitata myös muihin toimintoihin.
  • Toiminnot poistavat toistumisen koodissa. Niiden avulla on helpompaa etsiä ja löytää ongelmia.
  • Lopuksi, toiminnot mahdollistavat koodin olevan ymmärrettävää ja helpompaa hallita.
  • Lyhyesti sanottuna, toiminnot antavat meille mahdollisuuden jakaa suuren sovelluksen pienemmiksi paloiksi.

Määritä uusi toiminto

def my_new_function ():
  tulosta ('tämä on uusi toimintoni')

Soitto-toiminto

my_new_function ()

Merkkijonon pituuden löytäminen

Kutsu len (x) -toiminto

len ( 'Hei')
tulostaa 5

argumentit

  • Toimintoon voidaan lisätä perusteluja, jotta toiminnoista tehdään yleisiä.
  • Tätä harjoitusta kutsutaan yleistykseksi.
  • Voit siirtää muuttujat menetelmälle:
def my_new_function (my_value):
  tulosta ('tämä on minun uusi toiminto, jossa' + oma_arvo)
  • Valinnaiset argumentit:

Voimme siirtää valinnaisia ​​argumentteja tarjoamalla oletusarvon argumentille:

def my_new_function (my_value = 'hello'):
  Tulosta (my_value)
#Kutsumus
my_new_function () => tulostaa hei
my_new_function ('test') => tulostaa testin
  • * Argumentit:

Jos toimintosi voi vastaanottaa minkä tahansa määrän argumentteja, lisää * parametrin nimen eteen:

def myfunc (* argumentit):
  palauta a
myfunc (a)
myfunc (a, b)
myfunc (a, b, c)
  • ** argumentteja:

Sen avulla voit siirtää vaihtelevan määrän avainsanargumentteja funktiolle.

Voit myös välittää sanakirja-arvoja avainsanargumenteina.

Palata

  • Toiminnot voivat palauttaa arvot, kuten:
def my_function (input):
  paluu tulo + 2
  • Jos funktio vaaditaan useiden arvojen palauttamiseksi, on sopivaa palauttaa pari (pilkuilla erotetut arvot). Selitän tuplat myöhemmin:
tulosA, tulosB = saada_tulos ()
get_result () voi palauttaa ('a', 1), joka on tuple

lambda

  • Yhden lausekkeen nimettömä funktio.
  • Se on inline-toiminto.
my_lambda = lambda x, y, z: x - 100 + y - z
my_lambda (100, 100, 100) # palauttaa arvon 0

Syntaksi:

muuttuja = lambda argumentit: lauseke

Lambda-funktiot voidaan siirtää argumentteina muille funktioille.

dir () ja ohje ()

  • dir () - näyttää määritetyt symbolit
  • ohje () - näyttää asiakirjat
Kuva Noah Silliman on Unsplash

8. Moduulit

Mikä on moduuli?

  • Python toimitetaan yli 200 vakiomoduulilla.
  • Moduuli on komponentti, joka ryhmittelee python-ratkaisusi samanlaiset toiminnot.
  • Mikä tahansa python-kooditiedosto voidaan pakata moduuliksi ja sitten tuoda.
  • Moduulit rohkaisevat komponenttirakennetta ratkaisuusi.
  • Ne tarjoavat nimiavaruuksien käsitteen, jonka avulla voit jakaa tietoja ja palveluita.
  • Moduulit edistävät koodin uudelleenkäytettävyyttä ja vähentävät muuttuvien nimien törmäyksiä.

PYTHONPATH

  • Tämä ympäristömuuttuja osoittaa missä Python-tulkin on navigoitava moduulien löytämiseksi. PYTHONHOME on vaihtoehtoinen moduulien hakupolku.

Kuinka tuoda moduuleja?

  • Jos sinulla on tiedosto: MyFirstPythonFile.py ja se sisältää useita toimintoja, muuttujia ja objekteja, voit tuoda toiminnot toiseen luokkaan yksinkertaisesti tekemällä:
Tuo MyFirstPythonFile
  • Sisäisesti python-ajonaika kääntää moduulin tiedoston tavuiksi ja suorittaa sitten moduulin koodin.
  • Jos haluat tuoda kaiken moduulista, voit tehdä:
Tuo oma moduuli
  • Jos moduulisi sisältää toiminnon tai objektin nimeltä my_object, sinun on tehtävä:
Tulosta (my_module.my_object)

Huomaa: Jos et halua tulkin suorittavan moduulia, kun se ladataan, voit tarkistaa, onko __name__ == '__main__'

2. Alkaen

  • Jos haluat käyttää objektia tai moduulin osia vain moduulista, voit toteuttaa:
Tuo my_module, tuo my_object
  • Tämän avulla pääset objektiin viittamatta moduuliin:
Tulosta (my_object)
  • Voimme myös tehdä * alkaen kaikkien esineiden tuontiin
My_module tuonnista *

Huomaa: Moduulit tuodaan vain ensimmäisen tuonnin yhteydessä.

Jos haluat käyttää C-moduulia, voit käyttää PyImport_ImportModule

Käytä tuontia yli, jos haluamme käyttää samaa nimeä, joka on määritelty kahdessa eri moduulissa.

9. Pakkaukset

  • Paketti on hakemisto moduuleista.
  • Jos Python-ratkaisusi tarjoaa suuren joukon toimintoja, jotka on ryhmitelty moduulitiedostoihin, voit luoda moduuleista paketin jakamaan ja hallitsemaan moduuleja paremmin.
  • Paketit antavat meille mahdollisuuden järjestää moduulimme paremmin, mikä auttaa meitä ratkaisemaan ongelmat ja löytämään moduulit helpommin.
  • Kolmannen osapuolen paketit voidaan tuoda koodiin, kuten pandat / sci-kit -oppiminen ja tenorivirhe muutamien mainitsemiseksi.
  • Paketti voi sisältää suuren määrän moduuleja.
  • Jos ratkaisumme tarjoaa samanlaisia ​​toimintoja, voimme ryhmitellä moduulit pakettiin:
osoitteesta packageroot.packagefolder.mod tuo my_object
  • Yllä olevassa esimerkissä packageroot on juurihakemisto. packagefolder on alikansio packroot-alla. my_module on moduulipython-tiedosto paketin kansiossa.
  • Lisäksi kansion nimi voi toimia nimitilana esimerkiksi.
from data_service.database_data_service.microsoft_sql.mod

Huomaa: Varmista, että jokainen paketin tuonnin hakemisto sisältää tiedoston __init__.py.

Jätä tiedostot tyhjiksi. Koska __init__.py-tiedostot tuodaan ennen moduulien tuontia, voit lisätä mukautetun logiikan, kuten palvelun aloittamisen tilan tarkistuksen tai avata tietokantayhteydet jne.

PIP

  • PIP on Python-paketinhallinta.
  • PIP: n avulla voit ladata paketteja:
pip asenna paketin nimi

10. Ehdot

  • Voit kirjoittaa, jos sitten muuta:
jos a == b:
  tulosta 'a on b'
elif a  b:
  tulosta 'a on suurempi kuin b'
else:
  tulosta 'a on erilainen'

Huomaa, kuinka kaksoispisteitä ja sisennyksiä käytetään ehdollisen logiikan ilmaisemiseen.

Tyyppien tarkistaminen

jos ei, vaaditaan (syöttö, int):
  tulosta 'Odotettu int'
  palaa Ei mitään

Voit lisätä ehdollisen logiikan myös toiseen osaan. Tätä kutsutaan sisäkkäiseksi tilaksi.

# kirjoitetaan olosuhteet muualla
else:
 jos a == 2:
    tulosta 'sisällä jos muuta'
 else:
     tulosta 'muualla muualla'

11. Silmukat

Sillä aikaa

  • Anna ehto ja aja silmukkaa, kunnes ehto täyttyy:
while (tulo <0):
 do_something (tulo)
 input = input-1

varten

  • Silmukka useita kertoja
i: lle alueella (0,10)
  • Siirrä merkkijonon kohteet tai merkit
kirjeelle 'hello'
  tulosta kirje

Yhden linjan

Syntaksi:

[Muuttuja] AggregateFunction ([Arvo] kohteelle [kokoelma] kokoelmassa)

tuottaen

  • Oletetaan, että luettelosi sisältää biljoonaa tietuetta ja sinun on laskettava parillisten numeroiden määrä luettelosta. Koko luettelon lataaminen muistiin ei ole optimaalista. Sen sijaan voit tuottaa jokaisen nimikkeen luettelosta.
  • xrange sijaan etäisyys voidaan käyttää iteroimaan kohteiden yli.

Yhdistä varten If

  • Tehdään yksinkertainen harjoitus selvittääkö merkki kahdesta sanasta
name = 'onename'
toinen nimi = 'onenameonename'
nimessä oleva merkki:
  jos merkki toisessa nimessä
     tulostusmerkki

Tauko

  • Jos haluat lopettaa silmukan
i: lle alueella (0,10):
 jos (i == 5):
   tauko
samalla totta:
  x = saa_arvo ()
  jos (x == 1):
     tauko
  • Kirjoitetaan Fibonacci silmukalle:
def fib (input):
 if (tulo <= 1):
   tuotto (str (input))
 else:
   ensimmäinen = 0
   toinen = 1
   laskea = 0
   lukumäärä alueella (tulo):
     tulos = ensimmäinen + toinen
     Tulosta (ensimmäinen)
     ensimmäinen = toinen
     toinen = tulos
     count = count + 1
#print-lause antaa oikean fib-arvon
FIB (7)

12. Rekursio

  • Itse kutsuva toiminto tunnetaan rekursiona.

Otetaan käyttöön faktoriaalinen rekursiivinen funktio:

säännöt:

  • 0! = 1 # Tekijän 0 arvo on 1
  • n! = n (n-1)! # N: n tekijä on n *: n tekijä

Askeleet:

  • Luo funktiona nimeltään factorial tulolla n
  • Jos n = 0 palauta 1 muu, tee n x kerroin n-1
def factorial (n):
  jos n == 0:
    palauta 1
  else:
    paluu n * tekijä (n-1)

Toinen esimerkki: Kirjoitataan Fibonacci-rekursiivinen funktio:

säännöt:

  • Kaksi ensimmäistä numeroa ovat 0 ja 1
  • Lisää loput kaksi numeroa

0, 1, 1, 2, 3, 5, 8…

Askeleet:

  • Luo funktio nimeltään fibonacci, joka ottaa sisään tulon n
  • Luo kaksi muuttujaa ensimmäinen ja toinen ja määritä niille arvot 0 ja 1
  • jos n = 0 paluu 0, jos n = 1 paluu 1 muu paluu (n-1) + (n-2)
defibonacci (n):
 jos (n <= 1):
   paluu n
 else:
   paluu fibonacci (n-1) + fibonacci (n-2)
Tulosta (Fibonacci (6))

On tärkeää saada poistumistarkistus, muuten toiminto päätyy äärettömään silmukkaan.

13. Kehykset ja soitopino

  • Python-koodi ladataan kehyksiin, jotka sijaitsevat pinossa.
  • Toiminnot ladataan kehykseen yhdessä parametrien ja muuttujien kanssa.
  • Seuraavaksi kehykset ladataan pinoon oikeassa suoritusjärjestyksessä.
  • Pino kuvaa toimintojen suorittamista. Muuttujat, jotka on ilmoitettu toimintojen ulkopuolelle, tallennetaan tiedostoon __main__
  • Stacks suorittaa viimeisen kehyksen ensin.

Voit käyttää jäljitystä löytääksesi toimintoluettelon, jos tapahtuu virhe.

14. Kokoelmat

Listat

  • Listat ovat tietorakenteita, joihin mahtuu minkä tahansa tietotyypin arvojakso. Ne ovat muutettavissa (päivitettävissä).
  • Listat indeksoidaan kokonaislukuin.
  • Luo luettelo käyttämällä hakasulkeita:
my_list = ['A', 'B']
  • Lisää / päivitä / poista kohde käyttämällä hakemistoa:
my_list.append ('C') # lisäykset lopussa
my_list [1] = 'D' #päivitys
my_list.pop (1) # poistaa
tai
del my_list [1: 2] # poistaa
my_list.extend (another_list) # lisää toisen luettelon lopussa
  • Lisäystä, toistoa ja viipaleita voidaan soveltaa luetteloihin (kuten merkkijonoja).
  • Lista tukee myös lajittelua:
my_list.sort ()

tuples

  • Tupit ovat kuin luettelot siinä mielessä, että ne voivat tallentaa sarjan esineitä. Esineet voivat taas olla minkä tahansa tyyppisiä.
  • Tuples ovat nopeampia kuin luettelot.
  • Kokoelmat indeksoivat nämä kokoelmat.
  • Tupit ovat muuttumattomia (ei päivitettävissä)
my_tuple = tuple ()
tai
my_tuple = 'f', 'm'
tai
my_tuple = ('f', 'm')

Huomaa: Jos kokonaisuus sisältää luettelon kohteista, voimme muokata luetteloa. Myös jos määrität objektille arvon ja tallennat objektin luetteloon ja vaihdat sitten objektin, luettelossa oleva objekti päivitetään.

sanakirjoja

  • Sanakirja on yksi tärkeimmistä tietorakenteista ohjelmointimaailmassa. Se tallentaa avain / arvo-pariobjektit.
  • Sillä on monia etuja, esim. optimoitu tietojen hakutoiminto.
my_dictionary = dict ()
my_dictionary ['my_key'] = 1
my_dictionary ['another_key'] = 2
  • Voit myös luoda sanakirjan seuraavasti:
my_dictionary = {'my_key': 1, 'another_key': 2}
  • Tulosta sanakirjan sisältö
avain sanakirjassa:
  tulostusnäppäin, sanakirja [näppäin]
  • Sanakirjan arvot voivat olla mitä tahansa tyyppiä, mukaan lukien merkkijonot, numeeriset, boolean-, luettelot tai jopa sanakirjat.
dictionary.items () # palauttaa kohteet
# tarkistaminen, jos avainta on sanakirjassa
if ('jokin avain' sanakirjasta):
  #tee jotain

Huomaa: Jos haluat suorittaa vektorisoidut / matriisitoiminnot luettelossa, käytä NumPy Python -pakettia

15. Kokoonpano ja linkittäminen

  • Näitä ominaisuuksia voidaan käyttää käyttämään tiedostoa, joka on kirjoitettu toisella kielellä, esim. C tai C ++ jne.
  • Kun koodi on kirjoitettu tiedostoon, tiedosto voidaan sijoittaa moduulien hakemistoon.
  • Tärkeää on lisätä rivi Setup.local-tiedostoon, jotta voidaan varmistaa, että vasta luotu tiedosto voidaan ladata.

kokoelma:

  • Mahdollistaa uusien laajennusten kokoamisen ilman virheitä

Linkitys:

  • Kun laajennukset on käännetty, ne voidaan linkittää.

16. Iteraattorit

iterators

  • Salli liikkuminen kokoelman läpi
  • Kaikki iteraattorit sisältävät __iter __ () - ja __sext __ () -toiminnot
  • Suorita iter (x) luetteloissa, sanakirjoissa, merkkijonoissa tai sarjoissa.
  • Siksi voimme suorittaa seuraavan (iter) missä iter = iter (luettelo) ilmentymänä.
  • Iteraattorit ovat hyödyllisiä, jos meillä on suuri määrä kohteita kokoelmassa, emmekä aio ladata kaikkia muistissa olevia tiedostoja kerralla.
  • On olemassa yleisiä iteraattoreita, joiden avulla kehittäjät voivat toteuttaa toiminnallisen ohjelmointikielen paradigman:

Suodattaa

  • Suodata arvot ehdon perusteella

Kartta

  • Sovelletaan laskenta kokoelman jokaiseen arvoon. Se kuvaa yhden arvon toiseen arvoon, esim. Muunna teksti kokonaislukuiksi

Vähentää

  • Pelkistää arvojen kokoelman yhdeksi arvoksi (tai pienemmäksi kokoelmaksi) esim. kokoelman summa. Se voi olla iteratiivinen luonteeltaan.

Postinumero

  • Ottaa useita kokoelmia ja palauttaa uuden kokoelman.
  • Uusi kokoelma sisältää kohteita, joissa jokainen esine sisältää yhden elementin jokaisesta syötekokoelmasta.
  • Sen avulla voimme poikitella useita kokoelmia samanaikaisesti
nimi = 'farhad'
jälkiliite = [1,2,3,4,5,6]
zip (nimi, jälkiliite)
-> palauttaa (f, 1), (a, 2), (r, 3), (h, 4), (a, 5), (d, 6)

17. Kohteeseen suuntautunut suunnittelu - luokat

  • Python antaa meille luoda räätälöityjä tyyppejä. Nämä käyttäjän määrittämät tyypit tunnetaan luokkina. Luokilla voi olla mukautettuja ominaisuuksia / määritteitä ja toimintoja.
  • Objektisuunnittelun avulla ohjelmoijat voivat määritellä liiketoimintamallinsa esineiksi, joilla on vaadittavat ominaisuudet ja toiminnot.
  • Ominaisuus voi viitata myös toiseen objektiin.
  • Python-luokat voivat viitata muihin luokkiin.
  • Python tukee kapselointia - esiintymäfunktioita ja muuttujia.
  • Python tukee perintöä.
luokka MyClass:
  def MyClassFunction (itse): # Self = viittaus kohteeseen
    palauta 5
#Luo uusi MyClass-esiintymä ja kutsu sitten toiminto
m = MyClass ()
return_value = m.MyClassFunction ()
  • Luokan esiintymä tunnetaan objektina. Objektit ovat muutettavissa ja niiden ominaisuuksia voidaan päivittää, kun objektit on luotu.

Huomaa: Jos pari (muuttumaton kokoelma) sisältää luettelon (muuttuva kokoelma) esineitä, voimme muokata luetteloa. Myös jos määrität objektille arvon ja tallennat objektin luetteloon ja vaihdat sitten objektin, luettelossa oleva objekti päivitetään.

__sen sisällä__

  • __init__-funktio on läsnä kaikissa luokissa. Se suoritetaan, kun meitä vaaditaan luokittelemaan objekti objektiksi. __init__-funktio voi ottaa kaikki ominaisuudet, jotka haluamme asettaa:
luokka MyClass:
   def __init __ (itse, ensimmäinen_ominaisuus):
       self.first_property = ensimmäinen_omaisuus
   def MyClassFunction (itse):
      palaa oma.fi-omaisuus
#Luo ilmentymä
m = MyClass (123)
r = m.MyClassFunction ()
r on 123

Huomaa: omaparametri sisältää objektin viittauksen, jota muissa ohjelmointikielissä, kuten C #, kutsutaan myös nimellä "tämä"

__str__

  • Palauttaa objektin vahvistetun version, kun kutsumme ”print”:
m = MyClass (123)
tulosta m #puhelut __str__
  • Siksi __str__ suoritetaan, kun suoritamme tulostamisen.

__cmp__

  • Käytä __cmp__-ilmentymän funktiota, jos haluamme tarjota mukautetun logiikan vertailla saman ilmentymän kahta objektia.
  • Se palauttaa arvot 1 (suurempi), -1 (alempi) ja 0 (yhtä suuri) osoittamaan kahden objektin tasa-arvoa.
  • Ajattele __cmp__, kuten Equals () -menetelmä muulla ohjelmointikielellä.

Ylikuormitus

  • Objektin menetelmät voidaan ylikuormittaa tarjoamalla useampia argumentteja esiintymänä.
  • Voimme myös ylikuormittaa operaattoria, kuten +, toteuttamalla oman __add__-toteutuksen

Matala vs syvä kopio esineistä

  • Vastaavat objektit - Sisältää samat arvot
  • Identtiset objektit - viitataan samaan objektiin - sama osoite muistiin
  • Jos haluat kopioida kokonaisen objektin, voit käyttää kopiointimoduulia
Tuo kopio
m = MyClass (123)
mm = kopio.kopio (m)
  • Tämä johtaa matalaan kopiointiin, koska ominaisuuksien viiteosoittimet kopioidaan.
  • Siksi, jos yksi objektin ominaisuuksista on kohdeviittaus, niin se osoittaa yksinkertaisesti samaan viiteosoitteeseen kuin alkuperäinen objekti.
  • Seurauksena on, että lähdeobjektin ominaisuuden päivittäminen johtaa kohdeobjektin ominaisuuden päivittämiseen.
  • Siksi matala kopio kopioi viiteosoittimia.
  • Onneksi voimme hyödyntää syväkopioita:
Tuo kopio
m = MyClass (123)
mm = copy.deepcopy (m)
  • Jos MyClass sisältää ominaisuuden, joka viittaa MyOtherClass-objektiin, ominaisuuden sisältö kopioidaan vastikään luotuun objektiin syväkopion avulla.
  • Siksi syvä kopio antaa uuden viitteen objektiin.

18. Kohteeseen suuntautunut suunnittelu - perintö

  • Python tukee esineiden perintöä. Seurauksena on, että esine voi periä vanhempansa toiminnot ja ominaisuudet.
  • Peritty luokka voi sisältää eri logiikan toiminnoissaan.
  • Jos sinulla on luokka: ParentClass ja kaksi alaluokkaa: SubClass1, SubClass2, voit luoda Pythonin luokkien luomiseksi seuraavasti:
luokka ParentClass:
 def my_function (itse):
   tulosta 'Olen täällä'
luokan alaluokka1 (ParentClass):
luokan alaluokka2 (ParentClass):
  • Näin ollen molemmat alaluokat sisältävät funktion my_function ().
  • Perintö voi rohkaista koodin uudelleenkäytettävyyttä ja ylläpitoa.

Huomaa: Python tukee useita perimöitä toisin kuin C #

  • Käytä Pythonin abc-moduulia varmistaaksesi, että kaikki alaluokat sisältävät abstraktin perusluokan vaadittavat ominaisuudet.

Multi-Perintö:

luokka A (B, C): #A implantoi B ja C
  • Jos haluat soittaa vanhemmalle luokkatoiminnolle, voit tehdä:
super (A, itse) .toiminnonimi ()

19. Roskakori - muistin hallinta

  • Kaikki Pythonin esineet tallennetaan kasaan. Tämä tila on Python-tulkin käytettävissä.
  • Pythonissa on sisäänrakennettu jätekeräysmekanismi.
  • Se tarkoittaa, että Python voi varata ja vapauttaa ohjelman muistin automaattisesti, kuten C ++ tai C #.
  • Sen vastuulla on tyhjentää muisti tilaa kohteille, joille ei viitata / käytetä ohjelmassa.

Koska useat objektit voivat jakaa muistiviitteitä, python käyttää kahta mekanismia:

  1. Viitelaskenta: Laske niiden kohteiden lukumäärä, joihin objektiin viitataan, sijoita kohde, jos sen lukumäärä on 0.
  2. Toinen mekanismi hoitaa pyöreät referenssit, jotka tunnetaan myös nimellä sykliset referenssit, allokoimalla objektit vain niissä kohdissa, joissa allokointi - kaupankäyntinumero on suurempi kuin kynnysarvo.
  • Uudet objektit luodaan pythonin sukupolvessa 0. Ne voidaan tarkastaa:
Tuo gc
kerätyt_objektit = gc.collect ()
  • Manuaalinen jätekeräys voidaan suorittaa oikea-aikaisesti tai tapahtumapohjaisella mekanismilla.

20. I / O

Näppäimistöltä

  • Käytä raw_input () -toimintoa
user_says = raw_input ()
Tulosta (user_says)

Tiedostot

  • Voit avata ja lukea tiedoston käyttämällä / -lausetta. Se vastaa lauseen käyttämistä C #: ssä.
  • lausunnolla voi hoitaa yhteyksien sulkemisen ja muut siivoustoimet.

Avaa tiedostoja

avoimella (tiedostopolku, 'r') nimellä my_file:
  riville tiedostossani
#Tiedosto on suljettu, koska / as

Huomautus: readline () voidaan myös suorittaa tiedoston rivin lukemiseen.

Kahden tiedoston avaaminen

jossa avoin (tiedostopolku) nimellä my_file, avaa (toinen polku) toisena tiedostona:
  varten (rivinumero, (rivi1, rivi2)) luettelossa (zip (oma_tiedosto, toinen_tiedosto):

Tiedostojen kirjoittaminen

avoimella (tiedostopolku, 'w') nimellä my_file:
  my_file.write ( 'testi')

Huomaa: Käytä os- ja shutil-moduuleja tiedostoihin.

Huomaa: rw - luku-kirjoitustila ja a - lisäystila.

SQL

Avaa yhteys

Tuo MySQLdb
tietokanta = MySQLdb.connect (“isäntä” = ”palvelin”, “tietokannan käyttäjä” = ”käyttäjänimi”, “salasana” = ”salasanani”, “tietokannan nimi” = ”tietokanta”)
kursori = tietokanta.kohdistin ()

Suorita SQL-käsky

cursor.fetch ("Valitse * MyTable-sovelluksesta")
database.close ()

Web palvelut

Voit kysyä lepopalvelua

tuontipyynnöt
url = 'http://myblog.com'
vastaus = pyyntöjä.get (URL) .teksti

Sarjalle ja Deserialise JSON

Deserialise:

Tuo json
my_json = {"A": "1", "B": "2"}
json_object = json.loads (my_json)
value_of_B = json_object ["B"]

Serialise:

Tuo json
a = "1"
json_a = json.dumps (a)

21. Virheiden käsittely

Nosta poikkeuksia

  • Jos haluat lisätä poikkeuksia, käytä nosta-avainsanaa:
yrittää:
  nosta TypError
paitsi:
  Tulosta ( 'poikkeus')

Pysäytyspoikkeukset

  • Voit saada poikkeuksia tekemällä:
yrittää:
   tee jotain()
paitsi:
   Tulosta ( 'poikkeus')
  • Jos haluat saada tiettyjä poikkeuksia, voit tehdä niin:
yrittää:
   tee jotain()
paitsi TypeError:
   Tulosta ( 'poikkeus')
  • Jos haluat käyttää try / catch / lopulta, voit tehdä:
yrittää:
   tee jotain()
paitsi TypeError:
   Tulosta ( 'poikkeus')
Lopuksi:
   close_connections ()
  • lopulta osa koodista laukeaa riippumatta, voit lopulta sulkea yhteydet tietokantaan / tiedostoihin jne.

Kokeile / Paitsi / Else

yrittää:
  tee jotain
paitsi IfraidRaisedException1:
  tehdä jotain muuta
paitsi (IfraidRaisedException2, IfraidRaisedException3)
  Jos poikkeus 2 tai 3 esiintyy, tee jotain
else:
  poikkeuksia ei esitetty
  • Voimme määrittää poikkeuksen muuttujalle myös tekemällä:
yrittää:
  tee jotain
paitsi Poikkeus1 minun poikkeuksena:
  tee jotain minun poikkeukselleni
  • Jos haluat määritellä käyttäjän määrittelemät rajoitukset, käytä assert:
väitä , 'virhe heittää'

Huomaa: Python tukee perintöä poikkeuksin

Voit luoda oman poikkeusluokan:

luokka MyException (poikkeus): läpäistä

22. Monisäikeinen ja GIL

  • GIL on Global Interpreter Lock.
  • Se varmistaa, että säikeet voivat suorittaa yhdellä kertaa, ja antaa prosessorijaksoille mahdollisuuden valita tarvittava säie suoritettaviksi.
  • GIL siirretään parhaillaan suoritettaviin ketjuihin.
  • Python tukee monisäikeistämistä.

Huomaa: GIL lisää yleiskustannukset suoritukseen. Siksi, varmista, että haluat ajaa useita ketjuja.

23. Sisustajat

  • Sisustajat voivat lisätä toimintoja koodiin. Ne ovat pääosin toimintoja, jotka kutsuvat muita objekteja / toimintoja. Ne ovat soitettavia toimintoja - siksi ne palauttavat kutsutun objektin myöhemmin, kun koristeltu toiminto käynnistetään.
  • Ajattele koristeita, jotka mahdollistavat näkökulmakeskeisen ohjelmoinnin
  • Voimme kääri luokan / funktion ja sitten tietty koodi suoritetaan aina, kun toimintoa kutsutaan.
  • Voimme toteuttaa yleisen logiikan lokiin, tarkistaa turvatarkistukset jne. Ja määrittää sen jälkeen menetelmän @property-tunnisteella.

24. Yksikkötestaus Pythonissa

  • Pythonissa on saatavana useita yksikkötestaus- ja pilkkauskirjastoja.
  • Esimerkki on käyttää yksinkertaisinta:

1.Ole oma toiminto yksinkertaisesti vähentämällä tuloa yhdellä

def my_function (input):
  paluu tulo - 1

2. Voit testata sen seuraavasti:

tuoda yksin
luokka TestClass (unittest.TestCase):
 def my_test (itse):
    self.assertEqual (my_function (1), 0)) #checking 1 muuttuu nollaksi

Voimme myös käyttää doctest-ohjelmaa testataksesi kielissä kirjoitetun koodin.

25. Python-keskustelun tärkeimmät kysymykset

Miksi minun pitäisi käyttää Pythonia?

  • Helppo koodata ja oppia
  • Objektisuuntautunut ohjelmointikieli
  • Upeita Analytics- ja ML-paketteja
  • Nopeampi kehittää ja tuoda ratkaisuni markkinoille
  • Tarjoaa sisäänrakennettuja muistinhallintapalveluita
  • Valtava yhteisön tuki ja sovellukset saatavilla
  • Ei tarvitse kääntää, koska se on tulkittu kieli
  • Dynaamisesti kirjoitettu - muuttujia ei tarvitse ilmoittaa

Kuinka tehdä Python Run nopeasti?

  • Python on korkean tason kieli, eikä se sovellu pääsyyn järjestelmän tason ohjelmiin tai laitteistoihin.
  • Lisäksi se ei sovellu monen alustan sovelluksiin.
  • Se, että Python on dynaamisesti tyypillinen tulkittu kieli, tekee siitä hitaamman optimoinnin ja käytön verrattuna matalan tason kieliin.
  • Ota käyttöön C-kielelliset laajennukset.
  • Luo moniprosesseja Sparkilla tai Hadoopilla
  • Käytä Cythonia, Numbaa ja PyPyä nopeuttaaksesi Python-koodiasi tai kirjoita se C: hen ja paljasta se Pythonissa, kuten NumPy

Mitä IDE: tä ihmiset käyttävät?

  • Spyder, PyCharm. Lisäksi käytetään erilaisia ​​muistikirjoja, esim. Jupyter

Mitkä ovat suosituimmat Python-kehykset ja paketit?

  • Pakollisia paketteja on paljon:

PyUnit (yksikkötestaus), PyDoc (dokumentaatio), SciPy (algebera ja numeerinen), Pandas (tiedonhallinta), Sci-Kit oppia (ML ja tietotiede), Tensorflow (AI), Numpy (matriisi ja numeerinen), BeautifulSoap (verkko sivujen romuttaminen), kolvi (mikrokehys), pyramid (yrityssovellukset), Django (UI MVVM), urllib (verkkosivujen kaavinta), Tkinter (GUI), malli (pilkkauskirjasto), PyChecker (virheenilmaisin), Pylint (moduulikoodianalyysi) )

Kuinka isännöidä Python-paketteja?

  1. Unix: Tee skriptitiedostomuoto Suoritettavaksi ja ensimmäisen rivin on oltava:
# (#! / tilini / paikallinen / bin / python)

2. Voit käyttää komentorivityökalua ja suorittaa sen

3. Käytä PyPRI- tai PyPI-palvelinta

Voidaanko Python ja R yhdistää?

  • R: ssä on kirjoitettu suuri joukko rikkaita tilastollisia kirjastoja
  • R-koodi voidaan suorittaa Pythonissa käyttämällä Rpy2 python -pakettia tai käyttämällä dekantterilaitetta tai IR-ydintä Juputerissa.

Onko tapa torjua virheitä ennen Pythonin suorittamista?

  • Voimme käyttää PyChecker- ja PyLink-ohjelmia virheiden sieppaamiseen ennen koodin suorittamista.
Kuva: Curtis MacNewton Unsplash-kuvassa

Yhteenveto

Tässä artikkelissa hahmotellaan tärkeimmät 25 Python-konseptia lyhyellä, osuvalla ja keskittyneellä tavalla. Toivon todella, että se on auttanut joku ymmärtämään paremmin Pythonia.

Uskon, että olen keskittynyt tuntemaan aiheisiin, jotka on ehdottomasti ymmärrettävä. Tämä tieto riittää omien python-pakettien kirjoittamiseen tulevaisuudessa tai käyttämällä olemassa olevia Python-paketteja.

Lepo, harjoittele vain niin paljon kuin mahdollista ja voit ottaa oman kirjaston käyttöön Pythonissa, koska tämä artikkeli sisältää kaiken tarvitsemasi tiedon.

Tässä on 5 mielenkiintoista Python-harjoitusta tietosi testaamiseksi:

Suosittelen tätä artikkelia, koska se osoittaa, kuinka voit käyttää Python-tietosi rakentaaksesi vankan sovelluksen:

Toivottavasti se auttaa.