Python - wat is het? Programmeertaal op hoog niveau. Python- en desktopapplicaties

Waarschijnlijk hebben veel beginnende programmeurs zich herhaaldelijk afgevraagd: . Ik wil graag mijn ervaring met u delen over deze kwestie, namelijk, ik zal u vertellen hoe ik elkaar heb ontmoet Python, sloot zich aan bij de webontwikkelaars en begon desktopapplicaties voor elk systeem te ontwikkelen.

Ik leerde Python voor het eerst kennen in 2010. Wie heeft er geen idee wat het is, misschien wel meer gedetailleerde informatie Leer meer over Python op . Het belangrijkste voordeel van Python is hoe gemakkelijk het is om te leren. Feit is dat het zo dicht mogelijk bij begrijpelijk (menselijk) Engels komt. Waarschijnlijk wil je mij een vraag stellen: “Als je een ervaren PHP-ontwikkelaar bent, waarom heb je dan Python nodig?”. Het is een feit dat ik bij het leren van Python tegelijkertijd Engelse woorden en Ik leer ze tegelijkertijd. Tegelijkertijd doe ik NIET alleen webontwikkeling, maar werk ik met desktopapplicaties voor verschillende besturingssystemen, en ik heb de mogelijkheid om games te ontwikkelen.

Eén ding kan ik nu met vertrouwen zeggen: als het mogelijk zou zijn om de tijd terug te draaien, zou ik allereerst de taal gaan leren Python.

Hoe Python te leren

Mijn Python-lessen worden gegeven in een klassieke stijl. Ik zal je alles leren, van kaft tot kaft. Je leert alles wat ik zelf weet. Na slechts een paar lessen proberen we eenvoudige programma's te schrijven, zoals Hello World.

Python

print("Hallo wereld")

print("Hallo wereld")

Nadat je mijn lessen hebt voltooid " « , leer je alles wat je nodig hebt om in de toekomst je eigen websites te ontwikkelen. Daarnaast leer je desktopapplicaties en consolescripts schrijven. Na voltooiing van de training beschikken al mijn studenten over niveaukennis Junior Python-ontwikkelaar .

Over het algemeen zal ik proberen u in elk van mijn lessen zoveel mogelijk nuttige en noodzakelijke informatie over te brengen.

Als iemand de taal wil leren kennen Python, na het lezen van de bovenstaande regels, heeft ieder van jullie nu de kans om te beginnen met studeren en zich bij de gelederen aan te sluiten Junior Python-ontwikkelaar .

Er zijn veel toepassingen voor Python, maar er zijn er een paar waar het bijzonder goed in is. Laten we eens kijken wat er in deze taal kan worden gedaan.

Belangrijkste verschillen:

  • Flask biedt eenvoud, flexibiliteit en volledige controle op het project. Het stelt de gebruiker in staat zelfstandig te beslissen hoe hij bepaalde zaken wil implementeren.
  • Django is een all-inclusive service. Out of the box heeft het al een beheerderspaneel, database-interfaces, ORM (Object Relational Mapping) en een directorystructuur voor uw projecten.

Wat te kiezen?

  • Kies Flask als je meer ervaring en leermogelijkheden wilt. Of als u maximale controle nodig heeft over alle gebruikte componenten, bijvoorbeeld databases.
  • Kies Django als je geïnteresseerd bent eindproduct. Zeker als je ermee werkt eenvoudige toepassingen, zoals een nieuwssite, een winkel, een blog, en je wilt dat elke taak op één uiterst duidelijke manier wordt opgelost.

Met andere woorden: Flask misschien wel beste keuze voor de beginnende ontwikkelaar omdat het minder componenten bevat. Bovendien is het de moeite waard om te kiezen als je dat nodig hebt fijnafstemming project.

Flask is vanwege zijn flexibiliteit beter geschikt voor het maken van REST API's.

Aan de andere kant, als het doel is om iets snel en gemakkelijk te doen, moet je waarschijnlijk voor Django kiezen.

Data Science: machine learning, data-analyse en visualisatie

Allereerst moet je uitzoeken wat het is.

Stel dat u een programma wilt ontwikkelen dat automatisch detecteert wat er op een afbeelding wordt weergegeven.

Door het bijvoorbeeld met deze afbeelding te presenteren, wilt u dat het programma de hond identificeert.

En hier zou ze een tafel moeten zien.

U denkt misschien dat u eenvoudigweg beeldanalysecode kunt schrijven om dit probleem op te lossen. Als er bijvoorbeeld veel lichtbruine pixels in de foto voorkomen, concluderen we dat het een hond is.

Of je kunt leren randen en grenzen in een afbeelding te identificeren. Dan de foto met een groot aantal rechte grenzen zullen waarschijnlijk een tafel blijken te zijn.

Dit is echter een vrij complexe en slecht doordachte aanpak. Wat moet je doen als de foto een witte hond toont zonder bruine vlekken? Of als de foto een ronde tafel toont?

Dit is waar het in het spel komt machinaal leren. Meestal implementeert het een aantal , waardoor automatische detectie van een bekend patroon tussen de invoergegevens mogelijk is.

Je kunt het machine learning-algoritme bijvoorbeeld 1000 afbeeldingen van een hond en 1000 afbeeldingen van tafels invoeren. Het leert het verschil tussen deze objecten. Wanneer je het hem dan geeft nieuwe foto met een tafel of een hond kan hij bepalen wat er precies op staat afgebeeld.

  • scikit-learn heeft verschillende populaire leeralgoritmen kant-en-klaar ingebouwd;
  • TensorFlow is een bibliotheek op een lager niveau. Hiermee kunt u aangepaste algoritmen maken.

Voor degenen die nieuw zijn bij machine learning is scikit-learn een goed beginpunt. Meer ervaren ontwikkelaars, die met efficiëntieproblemen worden geconfronteerd, is het de moeite waard om TensorFlow eens nader te bekijken.

Hoe machine learning bestuderen?

Echte analisten, zoals die bij Google of Microsoft, doen hetzelfde, alleen is hun werk complexer en complexer.

Ze gebruiken taal SQL-query's om gegevens uit databases op te halen. Vervolgens worden ze gebruikt voor analyse en visualisatie speciaal gereedschap, bijvoorbeeld Mathplotlib (voor Python) of D3.js (voor JavaScript).

Manieren om Python te gebruiken voor data-analyse en visualisatie

Een van de meest populaire bibliotheken voor visualisatie is Mathplotlib.

Beginners zouden er om twee redenen mee moeten leren:

  • lage instapdrempel;
  • Door Mathplotlib onder de knie te krijgen, kunt u in de toekomst snel complexere bibliotheken begrijpen die daarop zijn gebaseerd, bijvoorbeeld seaborn.

Hoe leer je data-analyse in Python?

Onlangs zijn sommige bedrijven begonnen met het gebruik ervan JavaScript-applicaties. De Slack-desktopapp is bijvoorbeeld gebouwd met behulp van het Electron JavaScript-framework.

Het voordeel van het schrijven van desktopapplicaties in JavaScript is dat je de code uit de webversie kunt hergebruiken.

Python 3 of Python 2

Python 3 is een modernere en populaire keuze.

Uitleg van backend- en frontendcode

Stel dat je iets wilt doen dat doet denken aan Instagram.

Het is de moeite waard om de taal te leren Python-programmering? Vaak hoor je immers dat deze taal aan het uitsterven is. Quora-gebruikers bespraken dit probleem en deelden hun mening.

Bill Carven, SQL-ontwikkelaar, consultant, trainer en auteur

Assembleertaal biedt u een geweldige kans om compacte, efficiënte en projectgeoptimaliseerde code te schrijven. Met code geschreven in deze taal, die slechts een paar kilobytes in beslag neemt, kun je verbazingwekkende dingen doen. Maar het niveau van efficiëntie dat kan worden bereikt met behulp van assembleertaal rechtvaardigt dit niet extra werk, de extra tijd en de vaardigheden die daarvoor nodig zijn.

Het is waar dat talen in populariteit stijgen en dalen. Productiviteit is hier hoofdtaak bij het programmeren, dus van tijd tot tijd worden er nieuwe talen gecreëerd die de productiviteit verhogen, aldus ten minste, voor sommige soorten werk.

De meeste programmeurs gebruiken tegenwoordig talen van een hoger niveau - ze moeten productiever zijn. Talen hoogste niveau kan worden gecompileerd tot machinecode (C of C++), of kan worden gecompileerd tot bytecode met een onafhankelijke architectuur en worden uitgevoerd in virtuele machine(Java) of verwerkt worden (JavaScript, PHP, Ruby, Python, Perl, etc.).

De misvatting is dat het noodzakelijk is om assembleertaal te leren omdat “het beter dan Python" Dit is een dom standpunt, gebaseerd op verouderde gegevens.

Bill Poucher, uitvoerend directeur ICPC, software op het gebied van energie, synthetische genetica, etc.

Leer Python. Zorg voor programmeerervaring. Deze taal heeft zijn eigen elegantie.

Leer C als taal voor Unix-machines. UNIX begrijpen is relatief eenvoudig.

Leer MIX om Knuth te begrijpen.

Leer Java zodat u zich geen zorgen hoeft te maken over het samenwerken met anderen en leer ook objectgeoriënteerd programmeren.

Leer C++ zodat je in elke gewenste stijl kunt programmeren. De kracht ervan is dat het een eenvoudige programmeertaal is. Het zwakke punt is dat je, om erin te kunnen programmeren, de stijl ervan moet begrijpen.

Leer LISP om uw begrip van recursie te versterken.

Heb ik gezegd dat het niet de moeite waard is om tenminste iets te leren? Nee. Want het enige wat je hoeft te doen is jezelf hierin trainen constante studie alles, vooral leren hoe problemen kunnen worden opgelost.

Shiva Shinde, Python is gemakkelijk te coderen, maar moeilijk te lezen

De programmeertaal Python is niet aan het uitsterven; het is een van de snelst groeiende talen.

  1. Het is gemakkelijk om te leren
  • Op op dit moment 8 van de 10 beste Amerikaanse programma's voor computertechnologie gebruik deze taal (Philip Guo, CACM)
  • Python-programma's hebben doorgaans een minimum aan sjablonen die vaak in andere programmeertalen voorkomen. Daarom kunt u vaker niet-standaardoplossingen voor problemen gebruiken.
  • Als je programmeerervaring hebt, zelfs als je deze taal niet hebt, dan zul je Python snel onder de knie krijgen.

2. Volledige functionaliteit

  • Het is niet alleen een taal voor statistiek. Python heeft alle mogelijkheden voor het verzamelen en opschonen van gegevens, het werken met databases en high-performance computing, en nog veel meer.
  • Dit is een algemeen aanvaarde programmeertaal met een groot aantal ingebouwde bibliotheken. Het is goed voor gegevens- en databasebeheer en netwerkprogrammering. Het is een doordachte taal met een enorme hoeveelheid beschikbare bronnen.

3. Serieuze bibliotheken wetenschappelijke gegevens

  • Python beschikt over aanzienlijke wetenschappelijke bibliotheken met een enorme hoeveelheid gegevens om te gebruiken.
  • De ruggengraat van deze onderzoeksbibliotheken is het SciPy Ecosystem, dat zelfs zijn eigen conferenties organiseert.
  • Panda's en Matplotlib zijn componenten van SciPy. Ze bieden uitstekende gegevens over de meeste verschillende onderwerpen, zoals machine learning, text mining en netwerkanalyse.

Hernan Soulages, pragmatische programmeur

Deze taal is behoorlijk populair, het belang ervan groeit in academische kringen. Het is ook waar dat het nut van een programmeertaal afhangt van wat je ermee wilt doen.

Ik hou helemaal niet van PHP, maar ik ben niet dom genoeg om de veelzijdigheid en kracht ervan te ontkennen, en dat het een gemakkelijke taal is om te leren.
Wat het leren van assembleertaal betreft, deze taal is rechtstreeks afhankelijk van de processor waarmee u werkt.

Als je weet hoe je ermee moet werken, dan kun je hem zeker een tijdje in je processorfamilie gebruiken. Maar na verloop van tijd ondergaan ze ook enkele veranderingen. In die zin is het de minst duurzame taalfamilie.

Magnus Lychka, ontwikkelaar software en adviseur in Göteborg

Veel gebruikers houden van Python. Voor sommige applicaties zal het te langzaam zijn en ze zullen bijvoorbeeld sneller werken met assembleertaal, maar deze applicaties zullen net zo snel werken in C, ondanks het feit dat code geschreven in C op elk platform zal werken.

Veel startups werden succesvol met Python, waarna ze een aantal programma’s moesten herschrijven in Java, C++ of C. En als deze startups met assembleertaal zouden gaan werken, dan zouden ze hoogstwaarschijnlijk al lang voordat hun zeer snelle maar moeilijke start zonder financiering kwam te zitten. om code te lezen zou compleet zijn.

Maar als je met assembleertaal werkt, zul je er niet alleen mee te maken krijgen verschillende architecturen processor, maar ook met technische details die per besturingssysteem verschillen.

  • Python,
  • Website-ontwikkeling
  • Als je een antwoord zoekt op de vraag: "Welke programmeertaal moet je eerst kiezen", dan krijg je in ongeveer 90% van alle gevallen Python aangeboden - als de gemakkelijkste taal om te leren. En het is duidelijk dat een bepaald aantal mensen die nog niet eerder hebben leren programmeren, vanwege deze aanbevelingen voor Python zullen kiezen. En hier hebben we een probleem, waarover we zullen praten onderstaand. Uiteraard met een beschrijving van hoe ik in dit leven terecht ben gekomen.

    Over mij

    Zelfs tijdens mijn studententijd besefte ik op 18-jarige leeftijd dat mijn specialisme niet zo rooskleurig was als het mij leek. Dus begon ik na te denken over hoe ik voldoende geld kon verdienen. En nadat ik naar verhalen had geluisterd over hoe mijn neef destijds in 1C waanzinnig geld ontving, besloot ik ook mijn leven met IT te verbinden.

    Aanvankelijk waren dit sjabloonsites met behulp van websitebouwers en WordPress, daarna raakte ik betrokken bij SEO en op een gegeven moment kwam ik Habr tegen, waarna ik besloot een volwaardig programmeur te worden. Ik had geen hogere wiskunde, dus besloot ik een vakgebied te kiezen waar dit niet nodig was: webontwikkeling.

    Ik had een voor de hand liggende vraag: welke taal ik moest kiezen - php/python/ruby. Nadat ik genoeg artikelen over Habré had gezien, las ik de haat erin php-kant, na het bekijken van een paar motiverende video's van Yandex. Ik heb Python gekozen. Ik hoop dat je de voordelen van taal kent, dus ik zal er niet over praten.

    Basistaaltraining

    Ik combineerde het leren van talen met mijn hoofdbaan, dus ik las boeken, keek naar tutorials en werkte 's avonds aan kleine projecten. Over het algemeen ben ik binnen een jaar

    1) Bestudeerde boeken:

    • Mark Lutz - Python leren
    • Mark Lutz - Python-programmering
    • Chad Fowler – Programmeurfanaat
    • Bill Lubanovich - Eenvoudige Python
    2) Veel video's van Oekraïense/burgerlijke auteurs over Django bestudeerd
    3) Een cursus van codeacademy voltooid
    4) Beheersde PyCharm

    Je eerste project

    Toen kwam ik op het idee van een kleine dienst over een heel specifiek onderwerp, die ik besloot te creëren om mijn kennis van Python + Django te consolideren.

    Bij het maken van de site heb ik

    1) Bestudeerde boeken:

    • John Duckett - HTML en CSS. Ontwikkeling en ontwerp van websites
    • David Flanagan-JavaScript. Gedetailleerde gids
    • Ben Forta - Leer SQL zelf.
    2) Ik heb voor mijn taken de Django-documentatie bestudeerd
    3) Ik heb de implementatie van projecten op Django Gunicorn + nginx + centOS bestudeerd

    Mijn eerste normale project

    Nadat de eerste adequate website mislukte, besloot ik iets waardevols te creëren, koos een idee, koos een implementatieschema en voltooide het 's avonds in 3 maanden.

    Het project heeft zijn levensvatbaarheid bewezen (tot op de dag van vandaag levert het mij wat geld op, waar ik ongelooflijk blij mee ben). En ik besloot het beter op te pompen.

    Na het lezen van het boek “Percival H. - Test-Driven Development with Python” besloot ik eerst tests te schrijven op basis van Django-componenten, daarna de Selenium-documentatie op te zoeken en al externe tests te maken.

    Ik wil cool zijn

    Nadat ik vacatures voor Python-Django-ontwikkelaars had geopend, heb ik gekeken naar wat er meestal nog meer nodig is in dergelijke vacatures:
    • Django Rest-framework
    • Selderij
    • Tornado/Twisted/asyncio (Kies er één)
    • Klassengebaseerde weergave Django
    • Hoekig/reageren (kies er één)
    Ik heb 3 maanden besteed aan het leren kennen/proberen van deze dingen. Ook verhoogd standaard bibliotheek Python + externe parseerbibliotheek beautifulSoup.

    Je kunt niet werken zonder C/C++

    Er is een mening dat een programmeur zichzelf zonder kennis van C/C++ geen programmeur kan noemen. Daarom maakte ik, toen ik vrije tijd had, kennis met de boeken:
    • Brian Kernighan – C-programmeertaal
    • Stanley B Lippman - C++ programmeertaal. Basis cursus
    Ik heb de boeken gelezen, aan de code gesleuteld, de compilatie bekeken, de codevoorbeelden bekeken. Over het algemeen heb ik nu geen grote ogen getrokken bij het noemen van referenties, pointers, sorteren, OOP en een heleboel verschillende arrays met met verschillende snelheden het verwerken van een element afhankelijk van zijn positie.

    Ik ben klaar om te vechten!

    En hier komen we bij het uiterste belangrijk punt. Ik heb in totaal 2 jaar besteed aan het leren van alle elementen van webprogrammering die ik hierboven noemde. Ik vond mezelf er klaar voor zijn om te solliciteren naar een functie als Python-webontwikkelaar. Natuurlijk wist ik sommige dingen niet zo goed, sommige oppervlakkig, en sommige wist ik helemaal niet (bijvoorbeeld Flask), maar algemeen begrip en de vaardigheden waren redelijk goed.

    En hier begonnen de problemen met Python, waar mensen zich meestal niet op concentreren. Namelijk op de zakelijke vraag naar Python-ontwikkelaars op junior/pre-middle-niveau.

    Met deze vraag ben ik de markt opgegaan.

    Hoewel het op het eerste gezicht lijkt dat er nogal wat vacatures zijn in Python, verandert alles dramatisch als de details beginnen.

    1. Er is meteen een grote screening van vacatures waarbij Python uitsluitend een hulptaal is. Meestal zijn dit posities van Java-ontwikkelaars, systeembeheerders, QA Automation. Ook is er nu een grote uitval in Data Learning, waarvoor een wiskundeopleiding + de R-taal vereist is. Met Python alleen ga je deze vacature niet vinden.

    2. Het bleek dat er in mijn stad geen vacatures zijn voor Python, letterlijk helemaal geen. Nadat ik de zoektocht door het hele gebied had uitgebreid, kreeg ik ook een onbevredigend resultaat. Een paar vacatures in PHP, waarbij Python een pluspunt was. Toen ik de afgelopen 3 jaar het filter opende, ontdekte ik ook dat er helemaal geen vacatures waren voor Python. Die. bedrijven in de provincies kiezen het vaakst voor eenvoudigere en populairdere technologieën dan Python.

    3. Nadat ik Python-vacatures in een algemene zoekmachine had geopend, ontdekte ik de volgende trends:

    • Meer dan 90% van de vacatures bevindt zich in Moskou of St. Petersburg
    • Voor meer dan 90% van de vacatures is een middle+/senior niveau vereist
    • ~100% van de vacatures voor juniorposities in Moskou of St. Petersburg (meestal van reuzen)
    Met andere woorden, de situatie is gebleken dat als je niet in Moskou en Sint-Petersburg woont en ze niet gaat 'veroveren', je praktisch geen plek hebt om je eerste baan te krijgen.

    Natuurlijk zijn er een paar plaatsen waar Python nog steeds wordt gebruikt, bijvoorbeeld in Kazan. Maar meestal is dit één bedrijf, waar de vacatures ook erg midden+/senior zijn.

    4. De mogelijkheid om op het huidige niveau naar werk op afstand te zoeken, heeft ook aangetoond dat werkgevers niet bereid zijn een dergelijk risico te nemen. Weinig ervaring + werken op afstand = dit is een soort fantasie.
    Toch kon ik nog een paar opties vinden, maar al tijdens het eerste gesprek werd duidelijk dat dit onzin was als: “Je werkt drie maanden bij ons, en als de opdrachtgever voor jouw werk betaalt, betalen wij jou te." Niet de beste optie.

    5. Ik heb met een paar HR-medewerkers gesproken grote bedrijven, drukten zij deze trend uit. “Meestal nemen we mensen aan met minimaal een jaar ervaring in Python, plus ervaring in een andere taal (3+ jaar). Meestal php/Java." Met andere woorden, ze hebben er helemaal niet aan gedacht om iemand met alleen Python in dienst te nemen.

    6. Na een gesprek met jongens van gespecialiseerde forums werd het duidelijk dat dit genoeg is typische situatie. Uit hun verhalen werd duidelijk dat mensen, na een vergeefse zoektocht, óf aan de slag gingen met php/1c, óf op een of andere manier door upwork/eigen project/testautomatisering klommen.
    Maar nogmaals, van geval tot geval.

    Over het algemeen bleek dat Python een uitstekende taal is waarmee je krachtige projecten kunt maken. En het gebeurt gewoon zo dat hun concentratie zich in de hoofdsteden bevindt. En omdat het om complexe projecten gaat, zijn medewerkers op midden+ niveau nodig. Is iemand die net Python heeft geleerd klaar voor zo’n vacature? Het is moeilijk!

    Maar er is een andere manier!

    IN huidige moment alleen al in mijn stad zijn er 24 vacatures voor php verschillende niveaus(variërend van kleine bedrijven die een actuele website moeten onderhouden, tot e-commercegiganten die aanbieden seriële uitbreiding functionaliteit). En ongeveer hetzelfde aantal vacatures voor 1C. En in ongeveer de helft van deze vacatures zijn ze bereid iemand in dienst te nemen die in ieder geval iets van programmeren weet. Hoogstwaarschijnlijk zijn dit niet de meesten beste plaatsen, maar dit is al de eerste baan waarna je officieel een ervaren programmeur voor HR wordt.

    Dus uiteindelijk

    Het blijkt dat je de coole programmeertaal Python kunt leren en op straat kunt blijven. Of je kunt de “gehate” php/1c leren en een baan krijgen. De kwaliteit van dit werk laat natuurlijk veel vragen achter, maar dit is al ervaring.

    Wat mij betreft, in mijn omstandigheden (niet naar Moskou/St. Petersburg gaan) heb ik eigenlijk tijd besteed aan het leren van een taal waar nu uitsluitend in mijn land vraag naar is. eigen projecten. Ik kon lokaal of op afstand geen werk vinden. Nu ga ik richting php, omdat het gewoon werk heeft.

    Daarom, als je niet in Moskou of Sint-Petersburg woont, of geen student bent aan een technische universiteit, dan zou ik je niet aanraden om les te geven Python eerst tong. Besteed aandacht aan PHP - er is altijd plek voor, er is werk, er is ervaring. A verder pad ontwikkeling ligt al achter je.

    P.S. Zoals mijn vriend me vertelde, is de situatie in Ruby vrijwel hetzelfde. Maar hier kan ik niet langer met vertrouwen spreken.

    Welke programma's zijn geschreven in Python?

    Applicatiesoftware voor normale mensen

    Laten we eerst de programma's doornemen die worden gebruikt door gewone mensen die geen specialisten zijn op het gebied van informatietechnologie.

    BitTorrent

    Alle versies tot en met 6 van deze torrent-client zijn geschreven in Python. Versie 6 is herschreven in C++.

    Ubuntu-softwarecentrum

    Citaat uit Wikipedia:
    Centrum Ubuntu-applicaties (Engels) Ubuntu-software Centrum) is gratis software voor het vinden, installeren en verwijderen van pakketten op een Ubuntu Linux-systeem. V nieuwste versies Je kunt tijdschriften over Linux en Ubuntu kopen, maar je kunt ook betaalde games en software kopen. De applicatie is ontwikkeld in Python + Vala met behulp van GTK+-bibliotheken en is een grafische schil voor de Advanced Packaging Tool.

    Blender

    Citaat uit Wikipedia:
    Blender- een gratis, professioneel pakket voor het maken van driedimensionale computergraphics, inclusief tools voor modellering, animatie, rendering, video-nabewerking en het maken van interactieve games. Momenteel is het het populairst onder de gratis 3D-editors vanwege de snelle en stabiele ontwikkeling, die wordt gefaciliteerd door een professioneel ontwikkelingsteam.

    Python wordt gebruikt als hulpmiddel voor het maken van hulpmiddelen en prototypen, logische systemen in games, als middel voor het importeren/exporteren van bestanden (bijvoorbeeld COLLADA) en het automatiseren van taken.

    Hier zijn enkele documentatiepagina's:

    GIMP

    Citaat uit Wikipedia:
    Python wordt gebruikt om te schrijven extra modules bijvoorbeeld filters.
    Hier zijn een paar pagina's die dieper op het onderwerp ingaan:

    Spellen

    Beschaving IV

    Het grootste deel van het spel is geschreven in Python().

    Slagveld 2

    Er zijn veel leerboeken en eenvoudige recepten op internet om te veranderen diverse voorwerpen en hun gedrag.

    Wereld van tanks

    Citaat uit het artikel "GUI in het spel World of Tanks":
    Python wordt gebruikt als scripttaal in het project. Al het moois dat we in Flash hebben gemaakt, moet in de game worden aangesloten, gevuld met data, verwerkt en vertaald naar gebruikersinvoer echte actie in het spel. Dit alles gebeurt in Python.
    Meer volledige lijst games die Python gebruiken, zijn te vinden op Wikipedia en de Python-documentatie.

    Welke bedrijven gebruiken Python?

    De lijst met bedrijven die Python gebruiken is lang. Onder hen zijn Google, Facebook, Yahoo, NASA, Red Hat , IBM , Instagram , Dropbox, Pinterest, Quora, Yandex, Mail.Ru.

    Yandex

    Alsjeblieft, het rapport “Python in de kern van Yandex.Disk”. Sergej Ivashchenko (spreker):
    Ik zal het hebben over hoe we Python gebruiken in Yandex.Disk, welke bibliotheken en frameworks we gebruiken, welke taken we oplossen en welke problemen we tegenkomen. Ik zal ook ingaan op het onderwerp loggen en verwerken van asynchrone bewerkingen.
    In een van de video's op het Yandex-kanaal spraken medewerkers over hun favoriete talen.

    En op de Yandex-bedrijfsblog staat het bericht "Welke programmeertalen zijn geschreven in Yandex" van 19 maart 2014. Dus 13% van de Yandex-werknemers schrijft het grootste deel van hun werktijd in Python.

    Mail.ru

    Medewerkers van Mail.ru gebruiken ook Python. De officiële Mail.ru-blog op Habré bevat verschillende artikelen over Python:

    Googlen

    Google maakt sinds de oprichting actief gebruik van Python. Er gaan geruchten dat meest YouTube en Google Drive geschreven in Python. Google heeft een hele cloud ontwikkeld Google-platform App Engine zodat ontwikkelaars Python-code kunnen uitvoeren Google-wolk. Veel taalontwikkelaars hebben bij Google gewerkt en werken nog steeds.

    DropBox

    De dienst is ontwikkeld in Python. Het is geen toeval dat de auteur van de Python-taal, Guido van Rossum, bij DropBox werkt.

    Andere bedrijven

    De organisaties die Python gebruiken

    Op welke gebieden wordt Python gebruikt?

    Webontwikkeling

    Python wordt misschien wel het meest gebruikt op dit gebied. Het Django-webframework blijft in een stroomversnelling komen en breidt zijn leger fans uit. Veel beginnende programmeurs denken zelfs dat Python nergens anders wordt gebruikt. Maar veel andere webframeworks zijn geschreven in Python: Pylons TurboGears , CherryPy, Flask, Pyramid en anderen. U kunt een completere lijst vinden.
    Er is ook een CMS gebaseerd op Django, deze heet DjangoCMS.
    Heel vaak worden website-parsers geschreven in Python. Meestal worden hiervoor Requests, aiohttp, BeautifulSoup, html5lib gebruikt. Er zijn ook tools op een hoger niveau voor het parseren van websites: Schrap, Grijp.

    Systeembeheer

    Python is een geweldige taal om het werk van een systeembeheerder te automatiseren. Het wordt standaard op alle Linux-servers geïnstalleerd. Het is eenvoudig en begrijpelijk. Python-code is gemakkelijk te lezen. Sommige mensen houden van Perl, ik ben er ook dol op comfortabel werk Met reguliere expressies maar ik haat Perl vanwege zijn syntaxis. Bash is handig voor relatief kleine tot middelgrote scripts, maar Python is krachtiger en in sommige gevallen kun je veel minder code schrijven.
    Het enige pakket dat ik ken is Fabric. Misschien is er nog iets anders, schrijf me in de reacties als je het weet.

    Aanvullende informatie

    Python voor systeembeheerders (IBM developerWorks)
    Documentatie van de stof. Systeembeheer.

    Ingebouwde systemen

    Python wordt heel vaak gebruikt voor het programmeren van embedded systemen. Het bekendste project dat gebruik maakt van Python is de Raspberry Pi. Maar hij is niet de enige:
    Ingebouwde Python
    Framboos Pi
    Ingebedde Python-tools
    Het Owl Embedded Python-systeem

    Ontwikkeling van applicatiesoftware, inclusief games

    Python wordt vaak gebruikt als ondersteunende taal bij de ontwikkeling van applicatiesoftware. Ik heb hierboven al voorbeelden gegeven, ik zal ze niet herhalen.

    Wetenschappelijk onderzoek

    Natuurkundigen en wiskundigen houden van Python vanwege zijn eenvoud. Bovendien is er voor Python enorm bedrag bibliotheken die het leven van een wetenschapper gemakkelijker maken. Bijvoorbeeld:
    1. SciPy- Dit bibliotheek openen hoogwaardige wetenschappelijke tools voor de programmeertaal Python. SciPy bevat modules voor optimalisatie, integratie, speciale functies, signaalverwerking, beeldverwerking, genetische algoritmen, het oplossen van gewone differentiaalvergelijkingen en andere problemen die vaak worden opgelost in wetenschap en techniek.
    2. Matplotlib- een bibliotheek in de programmeertaal Python voor het visualiseren van gegevens met tweedimensionale (2D) afbeeldingen (3D-afbeeldingen worden ook ondersteund). De resulterende afbeeldingen kunnen worden gebruikt als illustraties in publicaties.
    3. NumPy is een uitbreiding op de Python-taal die ondersteuning toevoegt voor grote multidimensionale arrays en matrices, samen met een grote bibliotheek van hoog niveau wiskundige functies voor bewerkingen met deze arrays.
    Een uitgebreidere lijst met wetenschappelijke computerbibliotheken in Python is te vinden op Wikipedia.

    Onderwijs

    Python wordt vaak aanbevolen als eerste programmeertaal.
    Sommige Russische scholen hebben succesvolle ervaring met het leren programmeren van schoolkinderen in Python.
    Guido van Rossum was overigens onder de indruk van de ABC-taal toen hij Python schreef. En de ABC-taal was bedoeld voor training en prototyping.

    Kritiek op de Python-taal

    Python is een van de langzaamste programmeertalen

    Op internet kun je veel verschillende snelheidstests vinden voor programma's die erin zijn geschreven verschillende talen programmeren. Python staat meestal aan het einde van lijsten.
    Normaal gesproken verwijst Python naar CPython, de referentie-implementatie van de taal. Er zijn andere implementaties van de Python-taal, zoals PyPy. PyPy is sneller dan CPython en vele andere scriptprogrammeertalen, en ligt qua snelheid zeer dicht bij Java. Maar er is één probleem: PyPy implementeert de Python-taal niet volledig, hierdoor werken veel Python-programma's er niet mee.
    Veel programmeurs schrijven inserts in C/C++ om het werk bij knelpunten te versnellen. Python is niet ontworpen voor rekentaken, voor taken die veel geheugen vereisen (geheugengebonden) en dergelijke. Je moet kunnen kiezen geschikt gereedschap voor de taken die u te wachten staat. Guido van Rossum vertelt hierover in een interview.

    GIL voorkomt dat meerdere threads tegelijkertijd worden uitgevoerd

    Global Interpreter Lock voorkomt dat meerdere Python-threads tegelijkertijd worden uitgevoerd. Dit zijn kenmerken van CPython. Maar is dit een nadeel? Je moet begrijpen dat alles afhangt van de taak. Als uw taak afhankelijk is van I/O-snelheid (IO-gebonden taak), dan is het efficiënter om meerdere processen te gebruiken die asynchroon met externe bronnen werken. En de vloeit voort uit gedeelde herinnering goed voor computertaken (CPU-gebonden). Maar zelfs als je met threads moet werken, kun je de GIL een tijdje uitschakelen, aangezien dit gebeurt in het wiskundige pakket NumPy.

    Geen goede distributietools

    Helaas is de code in Python, waar veel afhankelijkheden van zijn systeembibliotheken, moeilijk over te zetten naar andere systemen. Dit probleem wordt opgelost met behulp van virtualenv. maar deze tool krijgt veel kritiek van systeembeheerders.

    Aanvullende informatie

    Python-succesverhalen
    Je hebt Python gebruikt om WAT te schrijven?
    Waar wordt Python voor gebruikt?
    Nog meer bewijs dat het de wereld van Python is en dat wij er gewoon in leven
    GEMIDDELDE SALARIS VOOR BANEN DIE PYTHON VEREISEN
    Lijst met Python-software