Pin
Send
Share
Send


  • თარგმანები, 2018 წლის 6 სექტემბერი 19:22 საათზე
  • ნიკიტა პრიაცელსუკი

პითონი არის ერთ – ერთი ყველაზე პოპულარული და პოპულარული პროგრამირების ენა. ამის მრავალი მიზეზი არსებობს:

  • სწავლა ადვილია.
  • ძალიან მრავალფეროვანია.
  • მას აქვს მრავალი მოდული და ბიბლიოთეკა.

პითონისთან მუშაობის პროცესში, ყველას აღმოაჩენს სასარგებლო მოდულები და ხრიკები. ამ კოლექციაში გაეცნობით რამდენიმე სასარგებლო ხრიკს.

კოლექციები

პითონს გააჩნია ინტეგრირებული მონაცემების ტიპები, მაგრამ ზოგჯერ ისინი ისე არ იქცევიან, როგორც მათ სურთ.

საბედნიეროდ, პითონის ჩამონტაჟებულ ბიბლიოთეკას აქვს კოლექციების მოდული, სადაც მოცემულია დამატებითი მონაცემების ხელსაყრელი ტიპები:

ოდესმე გაინტერესებთ როგორ გამოიყურებოდეს პითონში მდებარე ობიექტი და დაათვალიეროთ მისი ატრიბუტები? რა თქმა უნდა, ფიქრობდნენ.

XYZ სკოლა, მოსკოვი, 250 000 მდე ₽

გამოიყენეთ ბრძანების სტრიქონი:

ეს შეიძლება სასარგებლო იყოს პითონში ინტერაქტიული სესიის დროს, ასევე იმ ობიექტებისა და მოდულების დინამიური შესწავლისთვის, რომლებთანაც მუშაობთ.

__ დასრულების__ იმპორტიდან

პითონის პოპულარობის ერთ-ერთი შედეგია ის, რომ ახალი ვერსიები მუდმივად ვითარდება და გამოდის. ახალი ვერსიები - ახალი ფუნქციები, მაგრამ არა თქვენთვის, თუ მოძველებულია.

თუმცა, ყველაფერი ასე არ არის ცუდი. __Future__ მოდული შესაძლებლობას იძლევა პითონის მომავალი ვერსიების ფუნქციონალური იმპორტისთვის. ეს ისევე როგორც დროის მოგზაურობა ან მაგია:

გეოპია

პროგრამისტებისთვის შეიძლება რთული იყოს გეოგრაფიაში ნავიგაცია. ამასთან, გეოპიის მოდული ამარტივებს ნივთებს:

$ pip დააყენოთ გეოპია

იგი მუშაობს სხვადასხვა გეოკოდირების სერვისის API– ების ანაბეჭდით. ეს მოდული შესაძლებელს ხდის გაეცნოთ ადგილის სრულ მისამართს, მის გრძედის და გრძედის და თუნდაც სიმაღლეს.

მას ასევე აქვს სასარგებლო მანძილის კლასი. იგი ითვლის ორ ადგილს შორის მანძილს გაზომვის ხელსაყრელ ერთეულში.

როგორ

თქვენ პრობლემის მოგვარებაზე ხართ და არ გახსოვთ მისი გამოსავალი? გჭირდებათ წასვლა StackOverflow- ში, მაგრამ არ გვინდა ტერმინალის დატოვება?

მაშინ არ შეგიძლიათ ამ ბრძანების ხაზის ხელსაწყოს გარეშე:

$ pip დააინსტალირეთ Howdoi

დასვით ნებისმიერი შეკითხვა და ის შეეცდება იპოვოთ მასზე პასუხი:

მაგრამ ფრთხილად იყავით: ის ამოიღებს კოდს ზემოდან მიღებული პასუხებით StackOverflow- ზე და ყოველთვის არ მოგაწვდით სასარგებლო ინფორმაციას:

$ howdoi გასასვლელი vim

უნდა გავაგრძელო პითონის გაკვეთილების თარგმნა?

ზოგადად, როგორც ცოტა ხნის წინ გაირკვა, YouTube- ზე უკვე არის გაჟღენთილი Bucky Roberts– ის ვიდეო Python3 პროგრამირების შესახებ, აქ შეგიძლიათ ნახოთ ისინი ამ ბმულზე:

გაუქმება კომენტარში, თუ კიდევ უფრო ხმამაღლა უნდა გამოვთქვა, თუნდაც იმის გათვალისწინებით, რომ ეს მასალა უკვე თარგმნილია. გმადლობთ ყურადღებისთვის.

საფუძვლები ნაწილი 1. ჩვილებისთვის.

ვარაუდობენ, რომ პოსტი http://pikabu.ru/story/hello_world_4265035 უკვე წაკითხული ან გაქვთ ლინუქსის განაწილება.

ვარაუდობენ, რომ მაყურებელი დაინტერესდება და თუ ეს ასეა, პითონის შესახებ კიდევ რამდენიმე პოსტს დავწერ, რომ გაეცნონ სინტაქსს, სტანდარტულ მონაცემთა სტრუქტურას, ზოგიერთ სტანდარტულ ბიბლიოთეკას, რათა განვაგრძოთ განვითარება Django- ზე.

ვარაუდობენ, რომ აუდიტორიის შემადგენლობაში არ შედის ბოსტნეულის მსგავსი ამოები, არამედ განვითარებული ადამიანები, რომლებიც მზად არიან გამოიყენონ თავის ქალა ყუთში არა მხოლოდ ჭამა.

დასაწყებად, მოატყუე. შეგიძლიათ დაწეროთ ბევრი რამ იმაზე, თუ რა მაგარია პითონი, რა არის იგი გამოყენებული bigdata, datasaens, ვებ განვითარებისთვის და სხვა ყველაფერი. მაგრამ ეს ყველაფერი მშრალი სიტყვებია. მაშასადამე, რამდენიმე მაგალითს მოვიყვან, თუ როგორ გამოიყენება პითონი, როგორც მთავარი ენა.

Instagram - ყველას საყვარელი ჰოსტინგი ფოტოებისა და ყრუდ მუნჯი მატარებლების ფოტოებისგან. დიახ, იგი წერია პითონში. უფრო მეტიც, Django არის აღებული იმ ჩარჩოსაკენ, რომლისკენაც ჩვენ ვიკლებით, თუ ჩემ გარდა არსებობენ ადამიანები, რომელთაც სურთ დაჩოქება. უფრო მეტიც, მათ აიღეს HTTP სერვერი Gunicorn, რომელზეც ჩვენ ასევე ვიცვებით. როგორც მონაცემთა ბაზა, ისინი იყენებენ PostgreSQL - ჩემს საყვარელ RDBMS და ამიტომაც, ჩვენც შეიძლება ის ვიმსჯელოთ.

Reddit არის სახალისო სიცილის სერვისი, ვფიქრობ, რომ ყველამ გაიგო ამის შესახებ მაინც. იგი ასევე წერია პითონში, მაგრამ პირამიდის ჩარჩოებში არა დანგო. მონაცემთა ბაზაში გამოიყენება ორი მონაცემთა ბაზა: Cassandra და PostgreSQL. Memcached და Facebook mcrouter გამოიყენება როგორც ქეში. როგორც შეტყობინებების ბროკერი, RabbitMQ გამოიყენება.წყაროს კოდი აქ საჯაროდ არის შესაძლებელი https://github.com/reddit/reddit

exchange.livejournal.com - LiveJournal ბლოგერების გაცვლა, რომელიც ახლახანს გაიხსნა. რატომ არის იგი აქ? რადგან მე მონაწილეობა მივიღე მის განვითარებაში. იგი ასევე წერია Django– ში PostgreSQL მონაცემთა ბაზასთან.

ამ შესაძენად მთავრდება და იწყება ჩემი დაუვიწყარი ნაწილი - მარყუჟები, ტოტები და ცვლადი.

კოდის ყველა ნაჭერი იქნება Jupyter Notebook- ის ეკრანის ანაბეჭდები, პირველ რიგში, რადგან ჩემთვის მოსახერხებელია მასში ჩაწერა, და მეორეც, რადგან სხვისი კოდის კოპირება არაფერია.

პითონი არის ძლიერი დინამიური აკრეფის ენა. რას ნიშნავს ეს?

- თუ გსურთ დაამატოთ ნომერი 5 სტრიქონი '7' - თქვენ გაგიჟდებით. ამას ეწოდება ძლიერი აკრეფა. არანაირი გარდაქმნა "უფრო ზოგადი" ტიპისთვის.

- თუ ნომერი ინახებოდა ცვლადი x- ში, ეს არ ნიშნავს რომ მას არ შეუძლია სტრიქონის მინიჭება. ეს დინამიური აკრეფაა. ცვლადის ტიპს, რა თქმა უნდა, არ სჭირდება სადმე დაზუსტება.

ლამაზი თვისებაა პარალელური დავალება. ასევე არის მხარდაჭერილი ღირებულების გაცვლა.

ასევე არსებობს მრავალჯერადი დავალება, რომელსაც მე მტკიცედ დაუფიქრებლად გამოყენებას არ გირჩევთ (ეს ეხება არაპლანეტარული მონაცემების ტიპებს, რაზეც მოგვიანებით ვისაუბრებთ):

ცვლადებით, მაგალითად, ამჟამად.

C– ს მსგავსი სინტაქსისგან განსხვავებით, ჩვენ არ გვაქვს არც ბრჭყალი ფრჩხილები, რომ არ განვსაზღვროთ ბლოკები და არც ფრჩხილები გავითვალისწინოთ პირობითი გამოხატულება (სინამდვილეში, არაფერს უშლის მდგომარეობაში შეფუთვას ფრჩხილებში). ბლოკები ხაზგასმით აღინიშნება მხოლოდ ნეკნებით. არ არსებობს კომუტატორები, მხოლოდ თუ, elif და სხვა. შემდეგი მაგალითი, ვფიქრობ, აგიხსნით ყველაფერს ჩემთვის:

ახლა კი ცოტა გაკვირვებული. იმისდა მიუხედავად, რომ ენას აქვს მკაცრი აკრეფა, მხარს უჭერს შედარება მონაცემთა არათანაბარ ტიპებს შორის (int, float, Decimal). მაგალითად, 5 == 5.0 დაუბრუნდება True, თუმცა 5 არის მთელი რიცხვი, ხოლო 5.0 არის მძიმით. მაგრამ მისი გამოყენება ცუდი ფორმად ითვლება.

თუ ამ დღეს თქვენ არ იცოდით სიტყვა "iterator" და დაწერა მხოლოდ ციკლები ინდექსებით, მაგალითად (int i = 0, i

რეგულარული ინდექსის მარყუჟებისთვის, არსებობს დიაპაზონის გენერატორი. მოგვიანებით გენერატორების შესახებ.

პითონში ფუნქციები გამოცხადებულია ორი გზით:

ამასთან, მკაცრად გირჩევთ გამოიყენოთ სტრიქტური რეგულირების მეორე მეთოდი, ჩვეულებრივი ფუნქციების განსაზღვრისთვის. Lambda- ს ფუნქციები (ან ანონიმური ფუნქციები) საჭიროა მხოლოდ მასზე მეტი არგუმენტის მისაღებად.

აქ, ალბათ, დაუყოვნებლივ წამოიჭრა ორი კითხვა:

როგორ შემიძლია გადავიტანო ფუნქცია არგუმენტით სხვა ფუნქციაზე?

რა არის უმაღლესი რიგის ფუნქცია?

იმიტომ პითონი ობიექტზეა ორიენტირებული, შესაბამისად, მასში შემავალი ყველაფერი არის ობიექტი. და ფუნქციაც. ფუნქციის არგუმენტი შეიძლება იყოს ნებისმიერი ობიექტი, მათ შორის და ფუნქცია:

ამ მაგალითში ბევრი საინტერესო რამ არის:

1) ფუნქციის (დეფ) განსაზღვრის შემდეგ შეგიძლიათ შეიყვანოთ ე.წ დოქტრინაცია, რომელშიც აღწერილია რას აკეთებს ფუნქცია. ამავდროულად, ეს დოქსტინგი ინახება ფუნქციის ობიექტის __doc__ ატრიბუტში (რაც მხოლოდ ერთხელ მიუთითებს იმაზე, რომ ფუნქცია არის ობიექტი)

2) __name__ ატრიბუტი შეიცავს ობიექტის სახელს (ფუნქციას ან კლასს)

3) თ ამ შემთხვევაში უფრო მაღალი ხარისხის ფუნქციაა. უფრო მაღალი დონის ფუნქცია არის ფუნქცია, რომელიც იღებს ან დააბრუნებს სხვა ფუნქციას. ეს ხელს შეუწყობს დეკორატორებს, რომელთა შესახებაც მოგვიანებით.

ფუნქციები შეიძლება გადაეცეს სხვა ცვლებს:

მაგრამ სახელი (__name__) იგივე დარჩება, რადგან ფაქტობრივად, f და იგივე_func მხოლოდ ფუნქციას ეხება.

თანაც, როგორც ჩანს, მე უკვე შორს ვარხედე. შემდეგ ნაწილში, თუკი დავინახავ აუდიტორიის ინტერესს, ვისაუბრებ მონაცემთა სტანდარტულ სტრუქტურებზე (სიები, რჩევები, ლექსიკონები, კომპლექტი) და რა არის ისინი და რისთვის გამოიყენება.

P.S. პოსტი დაიწერა მომზადების გარეშე, პირდაპირ picabu post- ის რედაქტორზე, დაწერეთ კომენტარებში ყველა ხარვეზის შესახებ, ჩაყარეთ ჩუსტები და პომიდორი.

დამწყებთათვის უნდა ისწავლონ პროგრამირება (პითონი)

უნდა აღინიშნოს, რომ პითონი საუკეთესო არჩევანია დამწყებთათვის, რომელსაც სურს პროგრამირების სწავლის დაწყება. თუმცა, ეს თემა არ არის ერთი პოსტისთვის. დაპროგრამების შესწავლა არ უნდა იყოს აგებული მხოლოდ ერთ ენაზე, არამედ მოიცავს რამდენიმე კომპონენტს, მაგრამ ეს პოსტი მათთვისაა, ვინც იცის, რა სურს პითონს ისწავლოს, მაგრამ არ იცით რა ტიპის ლიტერატურა აირჩიოს.

1.Michael Dawson - პროგრამირება პითონში

ღირს ამ წიგნიდან დაწყება. ენაში გადაჭარბებული გამოკლების გარეშე, მისი საფუძვლები განიხილება.ყველა მასალას ასახავს მრავალი მაგალითი, რაც ძირითადად დაკავშირებულია სათამაშო თემებთან. თავი ასე არის სტრუქტურირებული: თავიდანვე მოცემულია პროგრამა, რომლის მიხედვითაც შეგიძლიათ დაწეროთ მსგავსი, თავი კითხვის შემდეგ, მაგრამ, როდესაც სწავლობთ, შეხვდებით უამრავ მარტივ პროგრამას, რაც მთავარ გააზრებას იწვევს. ეს სიტყვასიტყვით ადიდებს წიგნს მაგალითებით და საჭირო პრაქტიკის დამწყებთათვის. რა თქმა უნდა, ის უბიძგებს საკუთარი პროგრამების შექმნას.

შესანიშნავი წიგნი, მაგრამ ძალიან დეტალია დამწყები ადამიანისთვის, ღირს კითხვის სწავლება პრაქტიკასთან ერთად. მსგავსი რამ: თქვენ გინდოდათ პროგრამის დაწერა, მაგრამ თქვენ არ გაქვთ უფრო სიღრმისეული ცოდნა, რომ ეს უფრო მოსახერხებელი / მოკლე / ლამაზი და ლამაზი გახადოთ და ა.შ.

3.მარკის Summerfield - პითონის 3 პროგრამირება

იგივე დინამიკა არსებობს, როგორც პირველ წიგნში, არ არის ზედმეტი ინფორმაცია, მაგრამ ეს უფრო რთულია, ყველაფერი ისეთი არ არის საღეჭი, როგორც Dawson. აღსანიშნავია, რომ Dawson– ის წაკითხვის შემდეგ, ამ წიგნის განვითარება განსაკუთრებით რთული არ არის.

4.მარკ ლუცი - პითონის პროგრამირება

წიგნი დაგეხმარებათ გაეცანით მიღებული ცოდნის გამოყენებას "Learning Python მე -4 გამოცემაში", მაგრამ ის ასევე არის გადატვირთული ზედმეტი ინფორმაციისთვის დამწყებთათვის, რაც უფრო ადვილი იქნება აღქმა Dawson- სა და Summerfield- ის შემდეგ. ეს წიგნი დასრულებაა ენის საწყის შესწავლაში. მას შემდეგ რაც დაეუფლეთ მას, შეგიძლიათ უფრო ღრმა ნაშრომზე გადავიდეთ.

იმედი მაქვს, რომ ვინმე ეხმარება ამ არჩევანს. ისიამოვნეთ კითხვით და გაერთეთ სწავლით.

Yandex.Translator Linux- ისთვის Python GUI– ზე

დიდი ხნის წინ საჭირო გახდა მრავალენოვანი ონლაინ თარჯიმანი დახურული ბრაუზერით.

არა, მე არ ვცდილობ ლექსიკონის გამოყენებას "განსაკუთრებით რთულ" შემთხვევებში, მაგრამ ზოგჯერ საკმაოდ დიდი ტექსტის წაკითხვა მაქვს და არა ყველა სიტყვა, როგორ ვიცი კონტექსტი.

თარგმნა-ჭურვი რამ საკმაოდ მოსახერხებელია, განსაკუთრებით თუ Vi / vim- ში დაწერეთ, ვთქვათ. გადადით შემდეგ კონსოლზე და თარგმნეთ.

გასაღებები მარტივია და ადვილად დასამახსოვრებელი.

მაგრამ ეს, ჩვეულებისამებრ, საკმარისი არ აღმოჩნდა. მინდოდა გრაფიკა.

SublimeText– ზე და Zeal– ში მუშაობა უფრო მოსახერხებელია ვიდრე შიშველი კონსოლი.

ჰმ ... აზრი, ფიქრი და გადაწყვიტა თარჯიმნის დამაგრება ცხელ კლავიშზე.

არჩევანი დაეცა gxmessage. Zenity არ მომეწონა, არ მახსოვს, რატომ.

კოდი დაიწერა:

ეს ჩემთვის შესაფერისი იყო გარკვეული ხნით. ინგლისურიდან "კონტროლი + 1" - მდე "კონტროლი + 2" - დან ინგლისური. კარგი.

მაგრამ შემდეგ თარგმნა ჭურვი დაიწყო.

არ ვიცი, რა მოუვიდა დეველოპერებს, მაგრამ ამან მართლა გამაბრაზა.

გადავწყვიტე, რომ დროა, დიდი ხანია არ ვწერ პითონში.

Google– ის მოკლე ძიებამ გამიყვანა Yandex.API, Python და GTK + 3, როგორც gi მოდული.

რატომ gi, რადგან ჩვეულებრივ წერდით PyQt5- ში? ეს ბევრად უფრო სწრაფად მუშაობს ჩემს მანქანაზე. მოწყობილობა არ არის ახალი, ასევე მეხსიერება (თანამედროვე სტანდარტებით) არც ისე ცხელია.

შედეგად, ცხელი ღილაკზე მაქვს ავტომატური თარჯიმანი.

დიდი მადლობა ყურადღებისთვის.

გამარჯობა სამყარო!

აქ დავწერე ერთი ძლიერი, მარტივი, საინტერესო ბიბლიოთეკის შესახებ, რომელსაც თითქმის ყოველდღე ვიყენებ, მაგრამ უცებ მივხვდი, რომ უმჯობესია პირველი პოსტის გაკეთება მხოლოდ ფაქტების მოსაძიებლად, მათთვის, ვინც სრულიად, სრულიად ახალია. :)

ამიტომ, დღეს ჩვენ ვისაუბრებთ ცოტა იმაზე, თუ რა არის პითონი და შევეცდებით ის მივიღოთ ჩვენს კომპიუტერში.

თუ უკვე გაქვთ პროგრამირება პითონში, მაშინ ეს პოსტი აშკარად არ არის სწორი თქვენთვის. :) თქვენ შეიძლება უბრალოდ არ წაიკითხოთ ეს, არამედ დაწეროთ თქვენი საკუთარი აქ რაიმე საინტერესო თქვენი გამოცდილებიდან! სასურველი და პოეტებით, როგორც მოსალოდნელი იყო. ,)

ასე რომ, როგორც სანდო წყარო (ვიკიპედია) გვეუბნება, პითონი (მე პიტონს ვთქვამ. ზოგი რუსულენოვანი ადამიანი ამბობს პითონს) არის ზოგადი დანიშნულების პროგრამირების ენა, რომელიც მიზნად ისახავს დეველოპერული პროდუქტიულობისა და კოდების წაკითხვის გაუმჯობესებას. სხვა სიტყვებით რომ ვთქვათ, შეგიძლიათ სწრაფად დაწეროთ მასზე კოდი და გაიგოთ რა დაწერა მეზობელმა.

განმარტების აშკარა სიმარტივის მიუხედავად, მას უზარმაზარი პოტენციალი აქვს რამდენიმე პროგრამირების პარადიგმის ერთდროულად მხარდაჭერის წყალობით, ყუთში გასვლის უამრავი ფუნქცია (სტანდარტულ ბიბლიოთეკაში) და, რა თქმა უნდა, გაფართოება, მადლობა უზარმაზარი რაოდენობის მარტივად დაინსტალირებული არასტანდარტული ბიბლიოთეკებისთვის.

იყენებენ ამას პრაქტიკაში?

რა თქმა უნდა! პითონი ძალიან გავრცელებული ენაა! მასთან ერთად, თქვენ შეგიძლიათ შექმნათ საიტები, დაამუშავოთ მონაცემები, იმუშაოთ მანქანათმცოდნეობასთან და ბევრი, მრავალი სხვა საინტერესო რამ. მას იყენებენ მრავალი მსხვილი კომპანია (მაგალითად, Google, რომლის წასასვლელად).მასთან ერთად, თქვენ შეგიძლიათ გააკეთოთ მარტივი სკრიპტები ყოველდღიური ცხოვრებისთვის და სერიოზულად ჩაერთოთ სამეცნიერო და კომერციული განვითარებით.

გაინტერესებს? შემდეგ მოდით ვცდილობთ დავწეროთ და გავუშვათ რამე პითონში! :)

მნიშვნელოვანია გვესმოდეს, რომ ამის გაკეთების სიბნელე არსებობს! თქვენ შეგიძლიათ დაწეროთ თქვენი პროგრამა ძლიერი განვითარების გარემოში სინტაქსის ხაზგასმით და სხვა სიკეთეებით, თუნდაც რეგულარულ ნოუთბუქში, თუნდაც ზოგადად ინტერნეტში (და აწარმოებთ იმავე ადგილას). ვფიქრობ, ეს იქნება ცალკეული პოსტი. ახლა, მე უბრალოდ ვაჩვენებ, როგორ შეგიძლიათ შესრულდეს ბრძანებები პითონის თარჯიმანში.

დაუყოვნებლივ დაუბრუნდით რამდენიმე სიტყვას ამ უკანასკნელის შესახებ, რადგან თუ ამას წაიკითხავთ, იქნებ არ იცით რა არის.

პითონი თარგმნილი ენაა. მოკლედ, ეს ნიშნავს, რომ მისი მითითებები შესრულებულია (ინტერპრეტაცია) ერთმანეთის მიყოლებით, თანმიმდევრულად, ყველაფრის ერთდროულად შედგენის გარეშე, როგორც, მაგალითად, C ენაზე. თარჯიმანი მხოლოდ სპეციალური პროგრამაა, რომელიც ინტერპრეტაციას ეხება.

პითონის ენით გამოსაყენებლად, თქვენ უნდა ჩამოტვირთოთ და დააინსტალიროთ მისი შესრულება ოფიციალურ საიტზე https://www.python.org/downloads/.

მაგალითს მივცემ პიტონის ენის მე –3 სერიაზე (3.5.1), ასე რომ გირჩევთ მისი ჩამოტვირთვა. Windows- ისთვის ეს შეიძლება გაკეთდეს პირდაპირ ამ ბმულზე. ინსტალაციის დროს არ უნდა დაგვავიწყდეს ყუთის შემოწმებადაამატე PATHეს მომავალში გაამარტივებს თქვენს ცხოვრებას.

გადმოწერეთ და დააინსტალირეთ? მშვენიერია! მოდით გავუშვათ თარჯიმანი. გახსენით ბრძანება (დააჭირეთ Start) სმდ) და შედი იქ:

თარჯიმანი გადის! დიახ, ეს ასე მარტივია! თუ ყველაფერი სწორად გაკეთდა, მაშინ იქნება მსგავსი რამ:

ახლა შეასრულეთ პირველი ბრძანება! შეიყვანეთ:

დიახ, მან უბრალოდ დაბეჭდა, რა არის ფრჩხილებში, ციტატორებში, ეკრანზე! ამან შეასრულა სტანდარტული პითონის ენის ფუნქცია - ბეჭდვა () როგორც ხედავთ, აქ, C- სგან განსხვავებით, მაგალითად, მას არაფრის მიბმა არ გჭირდებათ, არ გჭირდებათ რაიმე ფორმით გამიჯვნა (ამ კონკრეტულ შემთხვევაში), ამის გაკეთება აღარ გჭირდებათ.

საერთოდ, თარჯიმანი ბეჭდავს სტრიქონს ბრჭყალებში და მის გარეშე ბეჭდვა () ამ რეჟიმში, რიგითი ნომრის მსგავსად (მხოლოდ ციფრების ჩაწერაა საჭირო ციტირების გარეშე), ასევე ციფრული და ცვლადი არითმეტიკული ოპერაციების ჩატარებაც, მაგრამ გირჩევთ არ გამოიყენოთ ეს, რადგან თუ პროგრამას ფაილიდან ამოიღებთ, მაშინ მსგავსი გამოტოვება ბეჭდვა () შეცდომას არ გამოიწვევს.

სხვათა შორის, არითმეტიკული ოპერაციების შესახებ. თქვენ შეგიძლიათ განახორციელოთ ისინი უშუალოდ ფუნქციონირებაში, სინდისის ქენჯნის გარეშე ბეჭდვა (). მაგალითად, სცადეთ:

ბეჭდვა (100 + 1)
ბეჭდვა (42/7)
ბეჭდვა (111111111 * 111111111)

ახლა ეს ყველაფერია! გმადლობთ ყურადღებისთვის! ძალიან რთულია პირველი თემის დაწერა მთელ საზოგადოებაში - მკითხველთა დონე არ არის ბოლომდე გასაგები. ამიტომ, მე გადავწყვიტე, ეს მიეძღვნა აბსოლუტურ დამწყებთათვის. იმედი მაქვს არ დაიკარგა. :)

გმადლობთ ყურადღებისთვის!

პითონი არის ინტერპრეტაცია ან შედგენილი?

ეს არის პითონის ახლებებს შორის გაუგებრობის წყარო.

პირველი რაც გასაგებია: ”პითონი” არის ინტერფეისი. არსებობს დაზუსტება, რომელშიც აღწერილია რა უნდა გააკეთოს პითონმა და როგორ უნდა მოიქცეს იგი (რაც მართალია ნებისმიერი ინტერფეისისთვის). და არსებობს რამდენიმე განხორციელება (რაც ასევე შეესაბამება ნებისმიერი ინტერფეისს).

მეორე: "ინტერპრეტაცია" და "შედგენა" არის განხორციელების თვისებები, მაგრამ არა ინტერფეისის.

ასე რომ, კითხვა თავისთავად არ არის სწორი.

ყველაზე გავრცელებული განხორციელების შემთხვევაში (CPython: C- ში დაწერილი, რომელსაც ხშირად უწოდებენ "პითონს" და, რა თქმა უნდა, ის, რომელსაც იყენებთ, თუ თქვენ არ იცით, რაზე ვლაპარაკობ) პასუხი არის: ინტერპრეტაცია, გარკვეული კრებულებით. CPython ადგენს Python- ის წყაროს კოდს ბაიკოდოდში და შემდეგ განმარტავს ამ ბაიკოდს, ამ პროცესის დაწყებას.

* შენიშვნა: ეს არ არის ზუსტად "შედგენა" ტრადიციული გაგებით. ჩვეულებრივ, ჩვენ ვფიქრობთ, რომ „შედგენა“ მაღალი დონის ენიდან კონვერტად გადაქცევაა. თუმცა, გარკვეულწილად, ეს არის "შედგენა".

მოდით შეისწავლონ ეს პასუხი უკეთესად, რადგან ეს დაგვეხმარება გავიგოთ ზოგიერთი კონცეფცია, რომელიც გელოდებათ ამ სტატიაში.

Bytecode ან მანქანა კოდი

ძალიან მნიშვნელოვანია გვესმოდეს განსხვავება bytecode და მანქანა (ან მშობლიური) კოდით. ამის გაგების მარტივი გზა, როგორც მაგალითად:

- C შედგენილია მანქანულ კოდში, რომელსაც შემდგომში პირდაპირ ამუშავებენ პროცესორი. თითოეული ინსტრუქცია აიძულებს პროცესორს განახორციელოს სხვადასხვა მოქმედებები.
- ჯავა შედგენილია ბაიკოდოდში, რომელიც შემდგომში მოქმედებს Java Virtual Machine (JVM), აბსტრაქტულ კომპიუტერზე, რომელიც ასრულებს პროგრამებს. თითოეული ინსტრუქციის დამუშავება ხდება JVM– ით, რომელიც კომპიუტერთან ურთიერთქმედებს.

დიდად გამარტივებული: მანქანა კოდი ბევრად უფრო სწრაფია, მაგრამ bytecode უკეთესია პორტატული და უსაფრთხო.

მანქანაში კოდი შეიძლება განსხვავდებოდეს მანქანაზე, ხოლო ბაიკოდური ერთნაირია ყველა აპარატზე. შეიძლება ითქვას, რომ მანქანის კონფიგურაციისთვის ოპტიმიზებულია მანქანა.

CPython– ზე დაბრუნების შემდეგ, ოპერაციების ჯაჭვი შემდეგია:

1. CPython ადგენს თქვენს Python- ის წყაროს კოდს ბაიკოდოდში.
2. ეს bytecode გადის CPython ვირტუალურ აპარატზე.

დამწყებთათვის ხშირად ვარაუდობენ, რომ პითონი შედგენილია .pyc ფაილების არსებობის გამო. ეს ნაწილობრივ მართალია: .Pyc ფაილები შედგენილია ბაიკოდური კოდით, რაც შემდგომში ხდება ინტერპრეტაცია. ასე რომ, თუ თქვენ გაუშვით თქვენი კოდი პითონში და გაქვთ .pyc ფაილი, შემდეგ მეორედ ის უფრო სწრაფად იმუშავებს, რადგან აღარ დაგჭირდებათ ბაიკოდოდში გადაკეთება.

ალტერნატიული ვირტუალური აპარატები: Jython, IronPython და სხვები

როგორც ზემოთ ვთქვი, პითონს აქვს მრავალი განხორციელება. კვლავ, როგორც ზემოთ უკვე აღინიშნა, CPython ყველაზე პოპულარულია. პითონის ეს ვერსია წერია C და ითვლება "ნაგულისხმევი" განხორციელებად.

რაც შეეხება ალტერნატივებს? ერთ-ერთი ყველაზე გამორჩეულია Jython, პითონის განხორციელება ჯავაში, რომელიც იყენებს JVM. CPython წარმოქმნის ბაიკოდოდს, CPYthon VM- ზე გასაშვებად, Jython წარმოქმნის Java bytecode- ს JVM– ზე გასაშვებად (ეს იგივეა, რაც ჯავის პროგრამის შედგენისას).

"რატომ შეიძლება დაგჭირდეთ გამოიყენოთ ალტერნატიული განხორციელება?", თქვენ ჰკითხავთ. დამწყებთათვის, სხვადასხვა დანერგვა კარგად ახლავს სხვადასხვა ტექნოლოგიების კომპლექტს.

CPython მარტივს უწევს C გაფართოებების დაწერა პითონის კოდს, რადგან ბოლოს იგი იწყება C თარჯიმნის მიერ. ჯითონი, თავის მხრივ, ამარტივებს ჯავას სხვა პროგრამებთან მუშაობას: თქვენ შეგიძლიათ შეიტანოთ ჯავის ნებისმიერი კლასის დამატებითი მცდელობის გარეშე, თქვენი ჯავის კლასების გამოძახება და გამოყენება Jython პროგრამებიდან. (შენიშვნა: თუ ამაზე სერიოზულად არ გიფიქრიათ, ეს საკმაოდ გიჟურია. ჩვენ ვცხოვრობდით იმის დრო, როდესაც სხვადასხვა ენების შეთავსება და მათი გაერთიანება ერთ ერთეულად შეგიძლიათ. როგორც როსტინმა აღნიშნა, პროგრამები, რომლებიც Fortran- ს და C- ს კოდებს აერთიანებს, დიდი ხნის წინ გამოჩნდა, ასე რომ, ეს არ არის სრულიად ახალი. მაგრამ მაინც მაგარია.)

როგორც მაგალითი, აქ არის სწორი Jython კოდი:

Java HotSpot (TM) 64-ბიტიანი სერვერი VM (Apple Inc.) java1.6.0_51- ზე
>>> java.util- ის იმპორტიდან HashSet
>>> s = HashSet (5)
>>> s.add ("Foo")
>>> s.add ("ბარი")
>>> ს
ფუ – ბარი

IronPython კიდევ ერთი პოპულარული პითონის განხორციელებაა, რომელიც მთლიანად ნათქვამია C # for .NET. კერძოდ, ის მუშაობს .NET ვირტუალურ აპარატზე, თუ ასე შეგიძლიათ მას ეძახით, საერთო ენაზე Runtime (CLR), Microsoft- დან, შედარებით JVM.

შეიძლება ითქვას, რომ Jython: Java :: IronPython: C #. ისინი მუშაობენ შესაბამის ვირტუალურ აპარატებზე, შესაძლებელია C # კლასების შემოტანა IronPython კოდის და ჯავის კლასებში Jython კოდით და ა.შ.

სავსებით შესაძლებელია გადარჩენა CPython- სთან არაფერზე შეხების გარეშე. მაგრამ, სხვა განხორციელებებზე გადასვლისას, თქვენ მიიღებთ უპირატესობას, ძირითადად, გამოყენებული ტექნოლოგიის დასტის გამო. იყენებთ ბევრ JVM დაფუძნებულ ენას? ჯითონი შეიძლება მოგცე. ყველაფერი არის .NET? შეიძლება ღირდეს IronPython გასინჯვა (და იქნებ უკვე გააკეთეთ).

სხვათა შორის, მიუხედავად იმისა, რომ ეს არ ხდება სხვა განხორციელებაზე გადასვლის მიზეზი, უნდა აღინიშნოს, რომ ეს განხორციელებები რეალურად განსხვავდება ქცევაში. ეს ეხება არა მხოლოდ პითონის კოდის ინტერპრეტაციას. თუმცა, ეს განსხვავებები, როგორც წესი, არ არის მნიშვნელოვანი, ისინი ქრება და დროთა განმავლობაში ჩნდება აქტიური განვითარების გამო. მაგალითად, IronPython იყენებს სტანდარტულად უნიკოდის სტრიქონებს, მაგრამ CPython იყენებს ASCII 2.x ვერსიაში (UnicodeEncodeError შეცდომა ისრის არა ASCII სიმბოლოებისთვის), და მაინც უჭერს მხარს Unicode სიმბოლოებს ნაგულისხმევი ვერსიით 3.x ვერსიებში.

ფრენაზე შედგენა (დროულად შედგენა): PyPy და მომავალი

ასე რომ, ჩვენ გვაქვს პითონის განხორციელება დაწერილი C- ში, კიდევ ერთი Java- ში, ხოლო მესამე - C # -ში. შემდეგი ლოგიკური ნაბიჯი: პითონის განხორციელება, დაწერილი ... პითონი. (გამოცდილი მკითხველი შეამჩნევს, რომ ეს განცხადება ცოტა შეცდომაში შეჰყავს).

ამიტომ შეიძლება დამაბნეველი იყოს. დასაწყისისთვის მოდით განვიხილოთ შედგენა ფრენაზე (დროულად ან JIT).

ჯიტ. რატომ და როგორ

შეგახსენებთ, რომ მშობლიური აპარატის კოდი უფრო სწრაფია, ვიდრე bytecode. რა მოხდება, თუ შეგიძლია შემუშავებულიყო ბაიკოდის ნაწილი და გაუშვა ის, როგორც მშობლიური კოდი? მე უნდა გადავიხადო გარკვეული ფასი (სხვა სიტყვებით: დრო) bytecode– ის შედგენისთვის, მაგრამ თუ შედეგი უფრო სწრაფად მუშაობს, მაშინ ეს შესანიშნავია! ეს ახდენს JIT- ის შედგენას, ჰიბრიდულ ტექნიკას, რომელიც აერთიანებს თარჯიმანთა და შემდგენელთა უპირატესობებს. მოკლედ - JIT ცდილობს კომპილაციის გამოყენებას ინტერპრეტაციის სისტემის დაჩქარების მიზნით.

მაგალითად, აქ არის საერთო JIT მიდგომა:

  1. განსაზღვრეთ ბაიკოდური კოდი, რომელიც ხშირად გადის.
  2. შეაკეთეთ იგი მშობლიურ მანქანულ კოდში.
  3. შედეგი შეინახეთ.
  4. როდესაც საჭიროა იგივე ბაიკოდის დაშვება, გამოიყენეთ უკვე შედგენილი მანქანა კოდი და აიღეთ სარგებელი (კერძოდ, სიჩქარის ზრდა).

ეს არის მთელი PyPy– ის აზრი: JIT– ის გამოყენება Python– ში (დანართში შეგიძლიათ წინა მცდელობები). რასაკვირველია, არსებობს სხვა მიზნებიც: PyPy მიზნად ისახავს ჯვარედინი პლატფორმას, მუშაობს მცირე რაოდენობით მეხსიერებით და stackless მხარდაჭერით (C ენაზე გამოძახების სტეკის მიტოვება საკუთარი დასტის სასარგებლოდ). მაგრამ JIT არის მთავარი უპირატესობა. დროის ტესტების საფუძველზე, აჩქარების საშუალო ფაქტორი არის 6.27. უფრო დეტალური მონაცემების მიღება შეგიძლიათ PyPy Speed ​​Center– დან:

PyPy ძნელია გაერკვნენ

PyPy- ს აქვს უზარმაზარი პოტენციალი, და ამ ეტაპზე ის კარგად არის მორგებული CPython (ასე რომ თქვენ შეგიძლიათ აწარმოოთ Flask, Django და ა.შ. მასზე).

მაგრამ PyPy– სთან ერთად ბევრი დაბნეულობაა. (დააფასეთ, მაგალითად, ეს უაზრო წინადადება PyPyPy- ის შესაქმნელად ...). ჩემი აზრით, მთავარი მიზეზი იმისა, რომ PyPy არის ამავე დროს:

1. RPython- ში დაწერილი პითონის თარჯიმანი (არა პითონი (მე მანამდე მომატყუეს)). RPython წარმოადგენს პითონის ქვესათაურს, სტატიკური აკრეფით. პითონში, ტიპების შესახებ საფუძვლიანი საუბრების ჩატარება "ზოგადად შეუძლებელია"; რატომ არის ეს ასე რთული? განვიხილოთ შემდეგი:

x = შემთხვევითი.ჩანაწერი (1, "foo")

ეს არის სწორი პითონის კოდი (ადამანის წყალობით). რა ტიპია x? როგორ განვიხილოთ ცვლადების ტიპები, როდესაც ტიპებიც კი არ არის იძულებული?). RPython- ში ჩვენ ვწირავთ გარკვეულ მოქნილობას, მაგრამ ამის სანაცვლოდ ვიღებთ მეხსიერების მართვის უფრო მარტივად და ბევრად უფრო შესაძლებლობას, რაც ოპტიმიზაციას უწყობს ხელს.

2. შემდგენელი, რომელიც ადგენს RPython კოდს სხვადასხვა ფორმატში და მხარს უჭერს JIT. ნაგულისხმევი პლატფორმაა C, ანუ RPython-in-C შემდგენელი, მაგრამ ასევე შეგიძლიათ აირჩიოთ JVM და სხვები, როგორც სამიზნე პლატფორმა.

აღწერილობის მარტივად, მე მათ PyPy (1) და PyPy (2) დავარქმევ.

რატომ გჭირდებათ ეს ორი რამ და რატომ - ერთ ნაკრებში? ასე მოიფიქრეთ: PyPy (1) არის RPython– ში დაწერილი თარჯიმანი. ეს არის ის, რომ პითონში ატარებს მომხმარებლის კოდს და ადგენს მას ბაიკოდოდში. იმისთვის, რომ თავად თარჯიმანმა (დაწერილი RPython- ში) იმუშაოს, იგი უნდა იქნას ინტერპრეტირებული სხვა პიტონის განხორციელებით, არა?

ასე რომ, თქვენ შეგიძლიათ უბრალოდ გამოიყენოთ CPython თარჯიმნის დასაწყებად. მაგრამ ეს ძალიან სწრაფი არ იქნება.

ამის ნაცვლად, ჩვენ ვიყენებთ PyPy (2) (სახელწოდებით RPython Toolchain), რათა PyPy თარჯიმანი სხვა პლატფორმისთვის (მაგალითად, C, JVM, ან CLI) კოდირებად გამოვიყენოთ დანიშნულების მანქანაზე, JIT– ის დამატებით. ეს ჯადოსნურია: PyPy დინამიურად დაამატებს JIT- ს თარჯიმანთან, ქმნის საკუთარ შემდგენელს. (ისევ და ისევ ეს გიჟურია: თარჯიმანს ვამზადებთ სხვა ცალკეული, დამოუკიდებელი შემდგენელის დამატებით).

საბოლოო ჯამში, შედეგი იქნება დამოუკიდებელი შესრულებადი, რომელიც განმარტავს პითონის წყაროს კოდს და იყენებს JIT ოპტიმიზაციას. რაც გჭირდებათ! ძნელი გასაგებია, მაგრამ ალბათ ეს სქემა დაგეხმარებათ:

კიდევ ერთხელ, PyPy– ს ნამდვილი სილამაზე ის არის, რომ ჩვენ შეგვიძლია დავწეროთ რიტმონის სხვადასხვა პითონის მთარგმნელთა თაიგული, JIT– ს (თუ რამდენიმე დეტალისა გარდა). ამის შემდეგ, PyPy ახორციელებს JIT– ს ჩვენთვის RPython Toolchain / PyPy (2) გამოყენებით.

სინამდვილეში, თუ თქვენ ღრმად ამოიღებთ აბსტრაქციას, თეორიულად შეგიძლიათ დაწეროთ თარჯიმანი ნებისმიერი ენისთვის, მიმართოთ PyPy– ს და მიიღოთ JIT ამ ენაზე. ეს შესაძლებელია იმის გამო, რომ PyPy ორიენტირებულია თავად თარჯიმნის ოპტიმიზაციაზე, ვიდრე იმ ენის დეტალებზე, რომელიც მას განმარტავს.

როგორც გადახრა, მინდა აღვნიშნო, რომ JIT თავისთავად საოცარია. ის იყენებს ტექნიკას სახელწოდებით ”კვალი”, რომელიც შემდეგნაირად მუშაობს:

  1. გაუშვით თარჯიმანი და გაითვალისწინეთ ყველაფერი (JIT არ დაამატოთ).
  2. ინტერპრეტაციის კოდის მარტივი პროფილის ჩატარება.
  3. დაადგინეთ ოპერაციები, რომლებიც უკვე შესრულებულია.
  4. ამ ნაწილების კოდების შეყვანა მანქანულ კოდში.

შეგიძლიათ მეტი გაიგოთ ამ ხელმისაწვდომი და ძალიან საინტერესო პუბლიკაციიდან.

შეჯამება: ჩვენ ვიყენებთ PyPy შემდგენელს RPython-in-C (ან სხვა სამიზნე პლატფორმის ფორმას) RPython- ზე განხორციელებული PyPu თარჯიმნის შესაქმნელად.

დასკვნა

რატომ არის ეს ყველაფერი საოცარი? რატომ ღირს ამ გიჟური იდეის დევნა? ჩემი აზრით, ალექს გეინორმა ეს კარგად გამოთქვა თავის ბლოგში: ”PyPy- სთვის მომავალი იმიტომ ხდება, რომ ის უფრო სწრაფი, მოქნილია და საუკეთესო პლატფორმაა პითონის განვითარებისათვის”.

  • ის სწრაფია - რადგან ის ადგენს კოდის მშობლიურ ადგილს (JIT– ის გამოყენებით).
  • ის მოქნილია - რადგან ის თარჯიმანს JIT- ს უმატებს დიდი ძალისხმევის გარეშე.
  • ეს არის მოქნილი (ისევ) - იმიტომ, რომ თქვენ შეგიძლიათ დაწეროთ თარჯიმნები RPython– ში, რაც შემდგომში ამარტივებს გაფართოებას იმავე C- სთან შედარებით (სინამდვილეში ეს იმარტივებს იმდენს, რომ არსებობს საკუთარი თარჯიმნების დაწერის ინსტრუქცია).

დამატება: სხვა სახელები, რომლებიც შეიძლება გსმენიათ

პითონი 3000 (Py3k): ალტერნატიული სახელი Python 3.0, პითონის მთავარი გამოშვება ჩამორჩენილი თავსებადობით, რომელიც გამოჩნდა 2008 წელს. Py3k– ის გუნდმა იწინასწარმეტყველა, რომ ახალ ვერსიას დაახლოებით ხუთი წელი დასჭირდება, რომ ფესვი სრულად გაეღო. და მიუხედავად იმისა, რომ პითონის შემქმნელთა უმრავლესობა (ყურადღება: შორსწასული განცხადება) აგრძელებს Python 2.x- ს გამოყენებას, ხალხი უფრო და უფრო მეტს ფიქრობს Py3k– ზე.

Cython: პითონის სუპერმარკეტი, რომელიც მოიცავს C ფუნქციების ზარის შესაძლებლობას.

  • მიზანი: მოდით, დავწეროთ C გაგრძელება, პითონის პროგრამებისთვის.
  • ეს ასევე საშუალებას გაძლევთ დაამატოთ სტატიკური აკრეფა უკვე არსებულ პითონის კოდზე, რომლის გადაანგარიშების შემდეგ დაგეხმარებათ C- ის მსგავსი შესრულების მიღწევა.
  • ახსენებს PyPy- ს, მაგრამ ეს არ არის იგივე. Cython- ის შემთხვევაში, თქვენ აიძულებთ აკრიფოთ მომხმარებლის კოდი, სანამ მას კომპლიმენტს გადასცემთ. PyPy- ში თქვენ წერთ კარგი ძველი პითონი და შემდგენელი პასუხისმგებელია ნებისმიერი ოპტიმიზაციისთვის.

ნუმბა: „სპეციალიზირებული მხოლოდ დროული შემდგენელი“, რომელიც JIT– ს უმატებს პითონის ანოტირებულ კოდს. მარტივად რომ ვთქვათ, თქვენ აძლევთ მინიშნებებს და ის აჩქარებს თქვენი კოდის ზოგიერთ ნაწილს. Numba არის Anaconda– ს მონაცემთა ანალიზისა და მონაცემთა მართვის პაკეტის პაკეტების ნაწილი.

IPython: ძალიან განსხვავდება იმ ყველაფრისგან, რაც ჩვენ განვიხილეთ. გამოთვლითი გარემო პითონისთვის. ინტერაქტიული, GUI პაკეტების მხარდაჭერით, ბრაუზერებით და ა.შ.

ფსიქო: პითონის გაფართოების მოდული, პითონის ერთ-ერთი პირველი მცდელობა JIT სფეროში. იგი უკვე დიდი ხანია აღინიშნება, როგორც "დაუჭირა მხარი და მკვდარი". ფსიქოდის მთავარი დეველოპერი არმინ რიგო ამჟამად PyPy- ზე მუშაობს.

ენობრივი ვალდებულებები

  • RubyPython: ხიდი Ruby- სა და პითონის ვირტუალურ აპარატებს შორის. საშუალებას გაძლევთ ჩაწეროთ პითონის კოდი Ruby კოდით. თქვენ მიუთითებთ, თუ სად იწყება პითონი და მთავრდება და RubyPython უზრუნველყოფს მონაცემთა გადაცემას ვირტუალურ აპარატებს შორის.
  • PyObjc: ენობრივი კავშირი პითონსა და Objective-C- ს შორის, რომელიც იქცევა ხიდს შორის. პრაქტიკაში, ეს ნიშნავს, რომ შეგიძლიათ გამოიყენოთ Objective-C ბიბლიოთეკები (მათ შორის ყველაფერი, რაც გჭირდებათ პროგრამის შესაქმნელად OS X- ს შესაქმნელად) პითონის კოდში, ხოლო პითონის მოდულებზე ობიექტის-C კოდში. ეს მოსახერხებელია, რადგან CPython იწერება C- ში, რომელიც არის Objective-C ქვესათაური.
  • PyQt: სანამ PyObjc საშუალებას გაძლევთ დაუკავშიროთ პითონი OS X GUI კომპონენტებთან, PyQt იგივე აკეთებს Qt ჩარჩოსთვის. ეს შესაძლებელს გახდის სრულფასოვანი გრაფიკული ინტერფეისის შექმნა, SQL მონაცემთა ბაზების წვდომა და ა.შ. კიდევ ერთი ინსტრუმენტი, რომელიც მიმართულია პითონის სიმარტივის სხვა ჩარჩოებში გადატანას.

ჯავასკრიპტის ჩარჩოები

  • pajs (Pajamas): პითონში ვებ – დესკტოპის პროგრამების შექმნის ჩარჩო. მოყვება Python- ის JavaScript შემდგენელი, ვიჯეტის ელემენტების და რამდენიმე სხვა ხელსაწყოს შემადგენლობა.
  • Brython: პითონის ვირტუალური მანქანა, რომელიც დაიწერა Javascript- ში. საშუალებას გაძლევთ გაუშვათ Py3k კოდი ინტერნეტ ბრაუზერში.

პიკაპის 5 სასაცილო და ეპიკური მოთხრობა საახალწლო დღესასწაულის შესახებ

გახსოვთ, რაც მოხდა ახალი წლის ღამეს? მოდით ვთქვათ, როგორ იდგნენ ისინი რიგები 30–31 დეკემბრის ღამით მანდარინისთვის, ან დაიწვა ძირითადი კურსი. Pikabushniki- მა გაზიარა ტკბილი, უცნაური და სასაცილო შემთხვევები. ამ პოსტში ჩვენ ვაქვეყნებთ ხუთი საუკეთესო მოთხრობას და ვაძლევთ საჩუქრებს.

თუ თქვენ არ გინახავთ პოსტი, სადაც ჩვენ გამოგვიცხადეს სიუჟეტის კონკურსი, გეტყვით. ჩვენ ეს დავიწყეთ Yandex.Sev– თან ერთად და ხუთი ყველაზე საინტერესო მოთხრობის ავტორებთან, ჟიურის თანახმად, საახალწლო სადილისთვის პიესის გაკეთება გვპირდებოდა. ახლახან, სამსახურმა დაიწყო ხუთი სადღესასწაულო მენიუ: ქათმით. საქონლის ხორცი, ღორის, იხვი და თევზი. მათ შეაგროვეს მთავარი ცხელი კერძი, არასტანდარტული სალათები და საჭმელები. რას გვეტყვით? ჩვენ აქ უკვე ტესტირება დავიწყეთ.

გამარჯვებულებზე ყოველთვის უფრო მეტი მონაწილეა. ასე რომ, არავინ დატოვა ცარიელი ხელით: ჩვენ ვაძლევთ სარეკლამო კოდს ფასდაკლებით 800 რუბლს. ვახშმის ფასდაკლებით შეკვეთის მიზნით, შეკვეთის გაკეთებისას, შეიყვანეთ სარეკლამო კოდი პიკაბუ. აქციები ძალაშია 4000 რუბლიდან 28 დეკემბრამდე.

ახლა დროა გამარჯვებულთა მოთხრობებისთვის!

1. ”ძალიან გამოხატული შამპანური”

”მეგობრებმა გადაწყვიტეს ახალი წლის აღნიშვნა სახლში. მათ მიიწვიეს მეგობრების თაიგული, სუფრა ადიდებული იყო სალათებით, მწნილებით, სენდვიჩებით ხიზილალა და სხვა კარგით. ახლა კი ჭიმების ჩხუბამდე რამდენიმე წუთი რჩება, ყველა ადგება, მეპატრონე შამპანურს ხსნის ზოგადი ოჰებისა და მოლოდინების აჰების ქვეშ. შემდეგ კი კორკი ბოთლიდან გადმოხტა და მაგიდის ჭაღებივით დაფრინავს მაგიდის პირდაპირ. ხმამაღალი ზარი, ფრაგმენტების დაშლა ფირფიტებში. ასე რომ, მე უნდა გადამეყარა ყველა საჭმელი და სწრაფად შემეკავებინა რაღაც ახალი გზით. დიასახლისი ამ ახალ წელს დიდი ხნის განმავლობაში დაამახსოვრდება. ყველას ვუსურვებ ოპტიმისტურად დარჩეს ნებისმიერ სიტუაციაში :) "

2. "დედა ასისტენტი"

”საახალწლო სადილის შესახებ მხოლოდ ერთი სასაცილო ისტორია მაქვს - რადგან 31 დეკემბერს, დედაჩემმა მოამზადა ყველა ძირეული კულტურა, გაიქცა სამსახურით და მიპასუხა, რომ ყველაფერი გაწმენდა ზედაპირული გზით. მაგრამ მე დედაჩემის თანაშემწე ვარ. მე გავწმინდე ყველაფერი, შემდეგ ასევე დავჭერი კუბოში და ავურიე. როგორ ვიცოდი პატარა ასაკში, რომ ეს იყო მზადება ოლივირისთვის, ვინიაგრატის ქურთუკისთვის? ამ საახალწლო ღამეს ჩვენ კარტოფილის, სტაფილოების, ხახვის, ჭარხლის, ბარდა, ძეხვის, მაიონეზის სალათის უზარმაზარი თასი შევჭამეთ. ზოგადად, ყველაფერი, რაც სალათებისთვის მზადდებოდა. ქაშაყი არ ჩანდა. არ მახსოვს, დიდი დრო იყო :) ძალიან გამწვავდა. აუცილებელი იყო ინსტრუქციების დატოვება, როგორც ამ მშობიარობაში: გაჭრა, ჩარევა, არ შეეხოთ, თუ მკლავები მხრებიდან არ არის. თუმცა, თუკი ხელები არ მოიჭრა მხრებიდან, არცერთი ინსტრუქცია არ დაეხმარება ... ”

”ეს არ არის საკმაოდ მომზადება, მაგრამ სასაცილო ამბავი მომხიბლავი საათის ქვეშ. ახალ წელს მშობლებთან ერთად აღვნიშნე, გადავწყვიტეთ, რომ ტრადიციები შეგვეცვალა და წითელი, და არა თეთრი შამპანური ვიყიდეთ. პრეზიდენტის გამოსვლის შუა გზაზე, მამაჩემმა მიაღწია ბოთლს, რომ გაიხსნას იგი, ჩამოიღო კილიტა, მაგრამ კორპის გახსნა არ შეუძლია. ფრანტულად ცდილობდა მის გახსნას, რადგან მალე ჩიბუხიანი საათით, მამა ვერაფერს იფიქრებდა იმაზე უკეთესზე, ვიდრე გააფთრებულიყო და თითით ქერქს უბიძგებდა ერთ მშვენიერ, მაგრამ ძლიერ მოძრაობაში. იმ მომენტში ბაკქანალია დაიწყო. ფილმიდან "Radiance", ფილმიდან, სადაც ლიფტიდან შადრევნით სისხლი დაიღვარა, ჩვენი შამპანური ყველა მიმართულებით დაასხა, საახალწლო სუფრის შევსება სისხლიანი ნაპერწკლებით, ჩვენს მაგიდასთან და გარშემო. კორკი, რომელიც ჭერიდან გამორთული იყო, დედის პირდაპირ სახეზე ედებოდა ბრალი. ჩვენ ვყინავდით, როდესაც პუტინი სატელევიზიო ეკრანის მიღმა, სისხლიან მწვანეში იყო ჩაფლული, გამოსვლა დაასრულა და უკან წავიდა. მამამ როგორღაც დაასხა შამპანური, რომელიც თითქმის ბოთლის ძირში დარჩა და ისტერიული სიცილის ქვეშ, ყველა საღებავით და ტკბილი შამპანურით, ახალი წელი აღვნიშნეთ. P.S. ყველაფერი კარგად არის დედასთან, ოდნავ შიშით დაეშვა). ”

4. "ფულის ლეგო ტორტი კარგი იღბლისთვის"

”ასე რომ, ეს ამბავი მოხდა ახალ წელს რამდენიმე საათის წინ. მაგიდა სამზარეულოდან დიდ ოთახში გადაიტანეს, თეფშები დააწესეს ფირფიტებზე და ემსახურებოდნენ. ოჯახის უმეტესობა უკვე შეიკრიბა და დღესასწაულის მოლოდინს ელოდება. სამზარეულოში დედა და დედამთილი ამზადებენ კერძებს, ბავშვები ოთახიდან ოთახში ჩქარობენ.და შემდეგ ჩვენმა ოთხმა შვილმა შეამჩნია, რომ ბებიამ პიტაში მონეტა დადო და, რა თქმა უნდა, პანიკაში ჩააგდო. მაგრამ მან მაშინვე დაამშვიდა, როდესაც მას უთხრეს, რომ ეს ასეთი ტრადიციაა: ის, ვინც ამ მონეტას აღმოაჩენს, მთელი წლის განმავლობაში თან ახლავს წარმატებას. დაბოლოს, ყველანი სუფრასთან ისხდნენ, თანდათანობით დასრულდა ოლივირით, ქაშაყი ბეწვის ქურთუკის ქვეშ, შემწვარი, და ტორტის დრო დადგა. პირდაპირ ღუმელიდან, ვარდისფერი, სურნელოვანი, სიცხისგან! ქმარმა თითოეულს თითოეული ნაჭერი ჩამოჭრა და ყველამ მონეტის პოვნის იმედით დანით მუხრუჭის დადება დაიწყო. ჩემდა გასაკვირად, მე ვპოულობ არა ერთს, არამედ ოთხს! მსგავსი დაჭერა დღესასწაულის ყველა მონაწილისთვის. ასეთი სიმრავლის დამნაშავე აშკარა გახდა, როდესაც მისი მეუღლე ლეგოს მამაკაცს წააწყდა. როგორც გაირკვა, ვაჟს სურდა, რომ წელი ყველასთვის წარმატებული ყოფილიყო და ამიტომ წვრილმანი ადგილიდან აიღო ღამით, გულუხვად გადაისხა იგი ტაფაში, ხოლო მოზრდილებში კი თავი გააქნია. როგორც ჩანს, იმ იმედით, რომ მომავალ წელს ისეთივე ლუქსით მდიდარი იქნება, მან იქვე გამოიტანა ფიგურა დიზაინერისგან. რა თქმა უნდა, ტორტი გამოვიდა იმდენი ფული, რომ ვერ შევჭამეთ, მაგრამ წელს ნამდვილად აღმოჩნდა ბედნიერი და სავსე კარგი მოგონებებით! ”

5. "ახალი წელი თინეიჯერული მუტანტის Ninja Turtles"

”ვერ ვიტყვი, რომ ამბავი სასაცილო ან სამწუხაროა, მაგრამ ეს იწვევს ჩემს საყვარელ მოგონებებს. მე ექვსი წლის ვიყავი და ნინძას კუს საკმარისად მინახავს, ​​ვთამაშობდი მათ, მაგრამ რაც იქ იყო, მე თვითონ ვიყავი ნინძას კუს (ჩემი აზრით). რა მოსწონთ? მართალია - პიცა! და ეს იყო ეს კერძი, რომ დედაჩემს ვთხოვე საახალწლო სუფრა, და რადგან საკმარისი ფული არ იყო, დედაჩემმა დაიწყო გამოსვლა და პიცა მოამზადა. ქაშაყი და დამუშავებული ყველით "მეგობრობა". იმ დღეს ზარაფხანების ქვეშ ვიჯექი, პეპსის დავლიე და ქაშაყივით მიჭამეს პიცა. ბედნიერი ვიყავი ”.

გილოცავთ ავტორებს! ჩვენ სამწუხაროა, რომ ყველას და ყველას არ შეგვიძლია კომპლექტების დათმობა. მაგრამ გაგზავნეთ სიყვარულის სხივები (და სარეკლამო კოდი) პიკაბუ) მოდით, ახალი წელი კიდევ უფრო თბილი და კომფორტული იყოს. ყველა მანდარინი!

ხედვისა და აღწერის წარმოშობა

ფოტო: Mesh Python

რეტიკული პითონი პირველად 1801 წელს იქნა აღწერილი გერმანელი ბუნებისმეტყველი ი. გოტლობი. სახეობის სახელწოდება "reticulatus" ლათინურიდან ითარგმნება, როგორც "mesh", და წარმოადგენს მითითებას რთული ფერის სქემაზე. ზოგადი სახელი პითონი შემოგვთავაზა ფრანგმა ბუნებისმეტყველმა ფ. დოვდენმა 1803 წელს.

2004 წელს დნმ-ის გენეტიკური შესწავლის შედეგად დადგინდა, რომ რეციკლირებული პითონი უფრო ახლოს არის წყლის პითონთან და არა ვეფხვის პითონთან, როგორც ადრე ეგონათ. 2008 წელს ლესლი რურლინგმა და მისმა კოლეგებმა გადააკეთეს მორფოლოგიური მონაცემები და, მათ გენეტიკურ მასალებთან აერთიანეს, დაადგინეს, რომ წმინდა გვარის წყალს წარმოადგენს წყლის პითონის ხაზის შედეგი.

ვიდეო: Reticulated Python

მოლეკულური გენეტიკური კვლევების საფუძველზე, წმინდა პითონი ოფიციალურად ჩამოიწერა 2014 წლიდან, სამეცნიერო სახელწოდებით Malayopython reticulans.

ამ სახეობის შიგნით შეიძლება განვასხვავოთ სამი ქვესახეობა:

  • malayopython reticulans reticulans, რომელიც ნომინოტიპული ტაქსონია,
  • malayopython reticulans saputrai, რომელიც მშობლიურია ინდონეზიური კუნძულ Sulawesi და Selayar– ის ნაწილებისთვის,
  • malayopython reticulans jampeanus გვხვდება მხოლოდ კუნძულ ჯემპაში.

ქვესახეების არსებობა აიხსნება იმით, რომ რეციკლირებული პითონი გავრცელებულია საკმაოდ დიდ ტერიტორიებზე და მდებარეობს ცალკეულ კუნძულებზე. გველის ეს პოპულაციები იზოლირებულია და სხვებთან გენეტიკური შერევა არ ხდება. შესაძლო მეოთხე ქვესახეობა, რომელიც კუნძულ სანგიეში მდებარეობს, ამჟამად გამოძიების პროცესშია.

პითონი კომერციულად წარმატებული ენაა

სასიამოვნოა იმის ცოდნა, რომ პითონი გამოიყენება არა მხოლოდ აკადემიურ და სამოყვარულო წრეებში, არამედ ბიზნესში. კომპანიები მას ფული ენდობიან. მრავალი კომპანია იყენებს პითონს - Google, Paypal, Instagram, NASA.

პითონი ქმნის სამუშაო ადგილებს. ბევრი ვაკანსია, მათ შორის რუსეთში. პითონი ინდუსტრიული ენაა. ის პლოუსთან და ჯავასთან შედარებით არის. პითონის დეველოპერს აქვს შანსი, მოხვდეს ნამდვილი პროდუქტის განვითარებაში. ეს არ არის შემცვლელი ადგილობრივი მოხმარებისთვის, როგორიცაა 1C.

პითონი ძალიან მარტივი ენაა

ამასთან, პითონი ძალიან ადვილად სწავლობს. შეისწავლეთ საფუძვლები ერთ კვირაში. კიდევ ერთი კვირა მიიღებს პაკეტებსა და სასწავლო გარემოს. შედეგად, ერთ თვეზე ნაკლებ დროში შეგიძლიათ მიაღწიოთ ადგილს პროექტში.

პითონს რამდენიმე რთული თემა აქვს. ასე რომ, მე ვუწოდებ ენის დაყოფას, რომლის შესწავლას ცალკე ვცხოვრობთ. Lisp- ში ერთი რთული წერტილი მაკროსია. კლდეში უფრო მეტია - თვისებები, შედეგები, კომპოზიციური ობიექტები. პითონში, ორი - დეკორატიული და მეტაკლასელები. ყოველდღიურ სამუშაოებში მეტაკლასები არ არის საჭირო, ასე რომ, მხოლოდ ერთი სირთულე რჩება. დეკორატორებთან ურთიერთობისას, თქვენ ვერ შეხვდებით ენაზე სხვა დაბრკოლებებს.

პითონმა პროგრამირება ხალხს მიუახლოვა

მე არასოდეს მინახავს ვინმეს ამ ნივთის აღნიშვნა. პითონი გახდა ენა, რომლის საშუალებითაც ნებისმიერ ინჟინერს, მეცნიერს ან ტექნიკოსს პროგრამირების უნარის გარეშე შეუძლია გადაჭრას ინდუსტრიული დონის პრობლემები. პითონი პრობლემების გადაჭრის საშუალებაა.

გამოჩნდა სპეციალური პროექტები და წიგნები, მაგალითად, Python For Engineers, პითონის სამეცნიერო პროგრამირების სახელმძღვანელო და სხვები. სამსახურში ვნახე პითონის სკრიპტები, რომლებიც დაწერილი იყო იმ ადამიანების მიერ, რომლებმაც პროგრამირების მთელი ცოდნა შეამცირეს სასკოლო სასწავლო გეგმასთან. მაგრამ სკრიპტები მუშაობდნენ, მუშაობდნენ ავტომატიზირებას, რაც იმას ნიშნავს, რომ მათ დაზოგავდნენ დროს და ფულს.

პითონთან ერთად ავტომობილის მართვა უფრო ადვილი გახდა. თითოეული ამოცანისთვის არის ასლის ჩასმა Stack Overflow– დან. არ აქვს მნიშვნელობა რას გუგლობთ - დაარღვიეთ ხაზი, შექმენით გრაფიკი, გაამრავლე მატრიქსი - გაცემის პირველ სამ ბმულზე ნამდვილად იქნება გამოსავალი.

რასაკვირველია, ამგვარი სტილის პატიება ეძლევა მხოლოდ პროგრამისტებს, როდესაც მნიშვნელოვანია შედეგის მიღება, ვიდრე საიმედო მხარდაჭერილი კოდი.

პითონი ინდუსტრიულ განვითარებაში მოსახერხებელი გზაა.

შეახსენებს დისერტაციას, თუ როგორ უნდა მოხვდეთ შოუბიზნესში საწოლიდან. თუ თქვენ აკეთებთ რაღაც მახლობლად IT- ს, მაგალითად ადმინისტრაციას, ქსელებს, მხარდაჭერას, 1C ან ძველ ენებს, როგორიცაა Delphi, მაშინ პითონს გაუმართლა ბილეთი. ზემოაღნიშნული წერტილებიდან აღმოვაჩინეთ, რომ ეს ინდუსტრიული დონის მარტივი ენაა. ალბათ ის გახდება გამგზავრების მატარებლის ეს შემსრულებელი, რომელზეც დრო გექნებათ გადახტომა, სანამ რამის შეცვლა და გადალახვა გსურთ.

აბზაცს, ფაქტობრივად, მოვუყევი ჩემი ამბავი. პითონის შეხვედრამდე მე ვმუშაობდი საიტებზე CMS, Delphi და 1C. რა თქმა უნდა, ამით შეგიძლიათ იპოვოთ სამსახური. თუმცა, ეს იყო პითონის ხარჯზე, რომ მე წინ წამოვეწიე ჩემს ძველ საქმეს, შემდეგ სხვა ქალაქში გადავედი 6000 კილომეტრზე და დასრულდა დატაარტში. მოგვიანებით ევროპაში ნაპოვნია udalenka.

პითონი მხარს უჭერს პროგრამირების ყველა პარადიგმას

პითონი საოცრად მოქნილია. მისი დიზაინი და სინტაქსი თანაბრად უჭერს მხარს პარადიგმების უმეტესობას. სტანდარტული OOP, იმპერატიული მიდგომა, პროცედურულ-მოდულური, ფუნქციონალური.

თითოეული პარადიგმა სრულდება არასრული ფორმით. ასე რომ, OOP– ში არ არსებობს პირადი ცვლადი და ინტერფეისი. ორმაგად ხაზგასმა ჰაკია და ერთდროულად მართავს. ინტერფეისები იწერება mixins- ით, მაგრამ შეუძლებელია ინტერფეისის ზუსტი შემდეგი თვალყურის დევნება.

სრულფასოვანი FP- სთვის არ არის საკმარისი სრულყოფილი ლამბდა და უცვლელი კოლექციები. პირველ სამეულში შემცირების ფუნქცია დამალული იყო სტანდარტული ბიბლიოთეკის ნაწლავებში.

ზარმაცი გამოთვლები, დეკორატორები და ოპერატორების გადატვირთვა ხსნის ადგილს საინტერესო მანევრებისთვის. პითონი ასახავს სხვადასხვა ენებს, მაგალითად:

Fake Lisp არის ფსევდო-Lisp, პიტონის მსგავსი კოდის დაწერა S- გამონათქვამებით.

ჰასკი - ზაკოსი ჰასკელის სინტაქსის ქვეშ. ეს არის ძალიან სასარგებლო, რომ ძაღლებისთვის საყვარელი სასმელი დაინახოს, თუ რა ხრიკებზე მიდის ავტორი, რათა მიაღწიოს ასეთ ზუსტ მსგავსებას.

fn.py - ფუნქციური nishtyaki Rock- დან. ანალოგიურად, ძალიან საინტერესოა თუ რა არის ქუდის ქვეშ.

გონივრული კითხვა, რატომ არის ასეთი მოქნილობა? ჩემი პასუხი არის შაბლონებისა და მიდგომების დაფიქსირება, ჩემი ჰორიზონტის გაფართოება და სხვა ენებისა და პლატფორმების საუკეთესო პრაქტიკის მიღება.

მაგალითად, პიტონში გადატანილი Cluti– დან ერთი ფუნქცია დაზოგავს უამრავ სტრიქონს და დაზოგავს შეცდომებს. ან, როდესაც შევხვდი ახალ შაბლონს, ვცდილობ, ეს პითონში განვახორციელო, რათა შევაფასო, თუ რამდენს მიიღებს იგი დიდ პროექტთან ერთად.

დაასრულეთ სარგებელი. პითონი არ არის სრულყოფილი. ვხედავ შემდეგ ნაკლოვანებებს:

მცირე ხარვეზები სინტაქსით

პითონს აქვს ლაკონური სინტაქსი ზედმეტი ფრჩხილების, სემიკოლონებისა და სხვა tinsel- ის, სწორი აპარატის, არა პიროვნების გარეშე. მიუხედავად ამისა, ფეხის გადაღების და დებიუგის საათის შემოწმების გზები რჩება, იმის გაგება თუ რა ხდებოდა.

კუდის ფორმირება. შეიძლება ვინმემ არ იცის, რომ ჩამოსხმის გარშემო ფრჩხილები სიმბოლურია. სინამდვილეში, იგი განისაზღვრება მძიმით. ერთი ელემენტის პრობლემა აქვს:

მე დამივიწყე მძიმით - მე მივიღე არა ტუპლი, არამედ ნომერი. მარცხენა მძიმით დატოვეთ კუდი - არა ნომერი, არამედ თოფი. საშინელი არ არის, კოდი სხვადასხვა ტიპის გამო დაეცემა. ტკივილი დაიწყება, როდესაც მწკრივების მწკრივი. სტრიქონი და ტულსი თავს იკავებს ზოგადი ოპერაციებისთვის: iteration, index- ით წვდომა, ნაჭერი. კოდი მუშაობს ავარიების გარეშე, მაგრამ აწარმოებს არასწორ შედეგს. ერთი მძიმის გამო.

შემდეგი მაგალითი. ზედიზედ ორი სტრიქონი მძიმის გარეშე ერთდება. ეს ნიშნავს tuple

რადგან შეცდომა არ არსებობს. სტატუსებში "შეცდომის" შემოწმება დაუბრუნდება ცრუ, რაც წარმოადგენს ბიზნეს ლოგიკის პირდაპირ დარღვევას.

პითონის კოდი ძალიან მყიფეა და მას დიდი ტესტები სჭირდება. მასთან მუშაობის მეექვსე წელს, მე ჯერ კიდევ არ ვიცი დარწმუნებული იქნება, რომ ამ ან იმ კოდის კოდი სწორად იმუშავებს ტესტის გარეშე.

OOP– ის ხელმძღვანელობა

მიუხედავად იმისა, რომ პითონი მხარს უჭერს ბევრ პარადიგმს, OOP რჩება მთავარი. ტიპიური ჩარჩო ან ბიბლიოთეკა არის კლასების ისეთი კოლექცია, რომელიც ინახავს სახელმწიფო და ერთმანეთს ცვლის.

ოდესმე გიშლიათ Django? დიახ. ეს იყო ჩვეულებრივი უკაბელო ნებართვა. დებიუტი ერთ საათზე მეტ ხანს გაგრძელდა და BSDM სესიას წააგავდა.

მოთხოვნა, რეაგირება, მომხმარებელი, სესიის ობიექტები აყენებს მთლიან ცოდვას. რამდენჯერმე დააყენეთ მეგობრული ბმულები. ისინი რატომღაც მიდიან კეშში.

ძალიან უცნაურია ავტორიზაციის ფონზე მოთხოვნები. .Get_user () მეთოდი აბრუნებს მომხმარებლის ობიექტს. შემდეგ ეს მომხმარებელი სადმე იკარგება, მას არანაირი კავშირი არ აქვს. სისტემა ითხოვს .get_user_by_id () მეთოდს. მე მომხმარებელი უკვე დავტოვე, კლუბი! ასე რომ, თქვენ უნდა შეხვიდეთ მონაცემთა ბაზაში ან ქსელში, ან შეინახოთ ლექსიკა კლასში, რომელიც არ არის ძაფების უსაფრთხო.

რატომღაც, კლაგში თავისი შეუცვლელი კოლექციებით, არასდროს მომიწია სხდომაზე ასვლა, რეტროაქტიულად მოთხოვნა ან რეაგირება და იქ რაღაცეების რედაქტირება. კოლექციის ცვლილებები მხოლოდ წინ არის წინ წამოწეული.

მე არ ვუწოდებ პროგრამირებას მყარი FP სტილში. გულწრფელად რომ ვთქვათ, ყველა ეს სტატია "პროგრამირება პითონში ფუნქციონალური სტილით" შესრულებული სულისკვეთებით გამოიყურება. შემცირება და სამსართულიანი ლამბდა მთლიანად ყურებით იჭრება. ასეთი კოდი არ თანაარსდება პროექტის ფარგლებში და ამოჭრა, მაშინაც კი, თუ ის შეიძლება როგორღაც გადმოიტანოს.

ეს აზიანებს ფუნქციონალურ პროგრამირებას. არსებობს გავრცელებული მცდარი მოსაზრება, რომ AF არის რუქა და ლამბდა.

პითონში, კარგი იქნება, რომ დაამატოთ ის, რაც სახელმწიფოს მიტოვებას უწყობს ხელს. მაგალითად, უცვლელი ლექსიკონი, უფრო მეტი ფუნქციები კოლექციებთან მუშაობისთვის.

თუმცა, ეს იქნებოდა სრულიად განსხვავებული ენა.

დაბალი სიჩქარე

ერთი წლის წინ მან თქვა, რომ ეს საერთოდ არ არის ნაკლი. მეხსიერება იაფია, ჰოსტინგი არის იაფი და სხვა საბაბი. დღეს ასეთ პასუხს სამოყვარულო ბევრს ვთვლი.

აღსრულების სიჩქარე მნიშვნელოვანია. წარმოიდგინეთ, რომ თქვენს კომპიუტერში ყველა თქვენი პროგრამა დაწერილია პითონში. ის მუშაობდა 20-30 ჯერ ნელა, უნდა დაევიწყებინა თამაშები და ფოტოშოპი. ეს არა მხოლოდ უკან გადადგმული ნაბიჯია, არამედ უკან დაბრუნება რამდენიმე თაობისთვის.

ამას წინათ, Nginx ჟურნალის გაანალიზება დამჭირდა, Google- მა გამოუშვა ngxtop პროგრამა. არ დავხედე რაზე იყო დაწერილი, პაკეტებიდან გამოვყარე. მან გადაამუშავა გიგაბაიტის ჟურნალი ერთი საათის განმავლობაში. აღმოჩნდა პითონი. პროგრამა C– ზე გაანადგურა 5 წუთში. არასწორი არჩევანი დროის დაკარგვა იყო.

პითონს განვითარებისთვის დიდი დრო დასჭირდა. დიახ, ეს უფრო ნელია, მაგრამ ჩვენ მას ადრე გამოვიყენებთ ვიდრე Java- ს კონკურენტი. ახლა კი არსებობს ენები, რომლებიც აერთიანებს კოდების სიჩქარეს და განვითარების სიჩქარეს. თუ X და Y– ში დაწერეთ დაახლოებით ერთსა და იმავე დროს, ხოლო Y 5 – ჯერ უფრო სწრაფად მუშაობს, რატომ ავიღოთ X?

დამატებითი რკინის შესახებ. იმის თქმა, რომ მეორე კვანძის დადება უმნიშვნელოვანესი საკითხია, მხოლოდ მას შეუძლია გააკეთოს ადამიანი, ვინც წერს კოდს და არ ეხება განლაგებას. რამდენიმე კვანძი არის განაწილებული სისტემა. ჩვენ გვჭირდება ბალანსერი, ჟურნალის განცალკევება, სინქრონიზაციის პრობლემები, თანმიმდევრული განახლებები.

ჩემს პირად პროექტში პითონი დიდხანს ცხოვრობდა, დატვირთვა მუდმივად იზრდებოდა. სერვერი ხუმრობდა, მე არ მქონდა დრო, რომ შევსულიყავი ტარიფი. შემდეგ მან გააფუჭა და გადაწერა იგი კლოდზე. არ დამავიწყდება ეს შეგრძნება, როდესაც CPU გრაფიკი დაეცა 80-დან 20 პროცენტამდე.

ისინი საყვედურებიან GIL- ს სულისკვეთებით: "შენ ეს არ გჭირდებათ", "გამოიყენე პროცესები". ასე ვთქვი, სანამ არ ვიცოდი, როგორ მუშაობს მრავალწარმოება ფუნქციურ ენებზე.

ჩვენ ვუშვებთ ვებ – პროგრამას პითონში, uWSGI– ს ქვეშ. იწყება სამაგისტრო პროცესი. ის მართავს მუშებს, რომელთა პროცესებში თითოეულში არის ვებ – პროგრამა. 16 იუნგი იწყება ერთდროულად, რომელთაგან თითოეული პასუხობს, როდესაც მეორე დაკავებულია.

სამაგისტრო პროცესი უზრუნველყოფს ყველას თანაბარი. კლავს მათ, ვინც არ პასუხობს, ძალიან მახსოვს მშიერი ან ზედმეტი სამუშაო - შეიმუშავეს შეკითხვის ლიმიტი.

ამ მეთოდს მახინჯად ვგრძნობ. ჯერ ერთი, არსებობს უნდობლობა ტექნოლოგიისა და მისი არასტაბილური ქცევის მიმართ. ხანგრძლივი მოქმედებით, პროცესები მიედინება, თუნდაც სამაგისტრო პროცესი. ეს ნიშნავს, რომ სისტემაში გადატვირთვაა საჭირო.

პროცესების პარალელიზაცია ართმევს საერთო მეხსიერების დაშვებას, აიძულებს გამოიყენოს ისეთი სუროგატები, როგორიცაა Memcache ან Redis, მაგრამ ყველაზე ეფექტური ქეში არის საერთო მეხსიერება.

UWSGI და Green Unicorn– ის მაგისტრალური პროცესები დამატებით იმართება იმ ჯაჭვში, რომელზეც მოთხოვნა გადის. ზედმეტი I / O, ხეების მორგებისა და დაცემის წერტილი.

დაბოლოს, არაფერი შეიძლება პარალელურად GIL– სთან, გარდა ქსელის მოთხოვნებისა. ფუნქციურ ენებს არ აქვთ ეს ხარვეზები. კოლექციების შეუცვლელობა კარადაში, გოუში არსებული არხების სისტემა საშუალებას გაძლევთ იხელმძღვანელოთ მრავალწახნაგები ფეხიდან სროლის შიშის გარეშე. ეს ხველებს ინფრასტრუქტურის მთელ ფენას: ხელჯოხები რიგების სახით, მუშებისა და გვირგვინის სკრიპტის სახით. და დამატებითი სისტემები ამ ყველაფრის მხარდასაჭერად.

დიფუზიის სირთულეები

პითონში დაწერილი აპლიკაცია ძნელია განაწილება. მცირე სკრიპტი მოითხოვს გარკვეული ვერსიის თარჯიმანს, ვირტუალურ გარემოს, რომელზეც არის ბიბლიოთეკა. არ არსებობს ზუსტი პასუხი კითხვაზე, თუ როგორ უნდა გადავიტანოთ გარემო მომხმარებლის აპარატში.

რამდენიმე წლის წინ შევეცადე სხვადასხვა შეფუთვები: Py2Exe, PyInstaller, CxFreeze. მხოლოდ ბოლო შეძლო ვინდოუს განაცხადის შედგენა შეცდომების გარეშე. ეს ძალიან კარგად გავაკეთე: გავუშვი * .msi ინსტალერი, დავარეგისტრირე სისტემის მომსახურება. მაგრამ დოკების აშენებასა და წაკითხვას დიდი დრო დასჭირდა. რატომ არ აწუხებთ Python- ის დეველოპერები ყუთში საბოლოო პროდუქტის განაწილების სისტემის ჩათვლით?

სკრიპტის დასაწერად, ააწყეთ ასამბლეა და მიიღეთ არქივი შესრულებული ფაილით. რატომ შეუძლია ამის გაკეთება ფუნქციურ ენებს, მაგრამ პითონს არ შეუძლია?

კოლეტი აძლევს uberjar. მე ვაგროვებ მას Mac- ზე, ვტვირთავ მას ჰოსტინგზე, სადაც ჯავის გარდა სხვა არაფერია - ის პრობლემების გარეშე მუშაობს. ჰასკელი ადგენს ბინარს. რაკეტები, Rast - ძალიან. ოცდაათი წლის Common Lisp, Carl, ბინძურ ფაილში გადაყავს Lisp აპარატს!

სინამდვილეში, პითონში, ვებ – პროგრამის შესაქმნელად, თქვენ გჭირდებათ დაახლოებით 10,000 * .py ფაილები. თუ არ არსებობს, სისტემა არ დაიწყება. დოქერის საშუალებით შესაძლებელია ამ ჯიშის იზოლირება, მაგრამ აქ ჩვენ სულს ვეხებით.

მესამე Python- ის დოკუმენტაციის შესაქმნელად, საინტერესო zipapp მოდული ვიპოვნე. პირველ წუთში ვიფიქრე, რომ ამაოდ ვიმსჯელებდი ენას, რომ ეს საკითხი ხმელეთზე გადავიდა. აღმოჩნდა, რომ მოდული არ უჭერს მხარს ვირტუალურ გარემოში და ბიბლიოთეკის ბიბლიოთეკებს. Postgres- ის დრაივერთან ვერ შევქმენი მარტივი აპლიკაცია.

რა არის პითონი?

მე არ შევიტან ენის შექმნის და განვითარების ისტორიაში, შეგიძლიათ მარტივად გაეცნოთ ვიდეოდან, რომელსაც დაერთვის ქვემოთ. მნიშვნელოვანია აღინიშნოს, რომ პითონი დამწერლობის ენაა. ეს ნიშნავს, რომ თქვენი კოდი შემოწმებულია შეცდომების გამო და დაუყოვნებლივ უნდა შესრულდეს, დამატებითი შედგენის ან დამუშავების გარეშე. ამ მიდგომას ინტერპრეტაციასაც უწოდებენ.

ეს ამცირებს შესრულებას, მაგრამ ძალიან მოსახერხებელია. არსებობს თარჯიმანი, რომელშიც შეგიძლიათ შეიყვანოთ ბრძანებები და დაუყოვნებლივ ნახოთ მათი შედეგი. ასეთი ინტერაქტიული მუშაობა დიდად ეხმარება სწავლის პროცესში.

თარჯიმანში მუშაობა

პითონის თარჯიმნის გაშვება ძალიან მარტივია ნებისმიერ ოპერაციულ სისტემაზე. მაგალითად, Linux- ზე, უბრალოდ ჩაწერეთ python ბრძანება ტერმინალში:

ჭრილში, რომელიც იხსნება, ჩვენ ვხედავთ პითონის ვერსიას, რომელიც ამჟამად გამოიყენება. დღესდღეობით Python 2-ისა და Python 3-ის ორი ვერსია ძალიან გავრცელებულია.ეს ორივე პოპულარულია, რადგან პირველს შეიმუშავა მრავალი პროგრამა და ბიბლიოთეკა, ხოლო მეორე უფრო მეტი მახასიათებელი. ამიტომ, დისტრიბუციები მოიცავს ორივე ვერსიას. ნაგულისხმევი, მეორე ვერსია ამოქმედდა. თუ თქვენ გჭირდებათ ვერსია 3, მაშინ უნდა გააკეთოთ:

ეს არის მესამე ვერსია, რომელიც განიხილება ამ სტატიაში. ახლა განვიხილოთ ამ ენის ძირითადი მახასიათებლები.

3. ტრანსფორმაციასთან ერთად

თქვენ შეგიძლიათ დააკავშიროთ სტრიქონი რიცხვთან ან ბოლიანთან. ამისათვის თქვენ უნდა გამოიყენოთ ტრანსფორმაცია. ამისათვის არსებობს str () ფუნქცია:

str = "ეს არის გამოცდის ნომერი" + str (15)
ბეჭდვა (ქ)

4. სუბსტრაქციის ძებნა

შეგიძლიათ იპოვოთ პერსონაჟი ან სუბსტრაჟი მოძიების მეთოდის გამოყენებით:

str = "კეთილი იყოს თქვენი მობრძანება losst.ru- ში"
ბეჭდვა (str.find ("losst.ru"))

ეს მეთოდი აჩვენებს substring losst.ru- ს პირველი შემთხვევის პოზიციას, თუ იგი იპოვნეს, თუ ვერაფერი იპოვნეს, მნიშვნელობა -1 უბრუნდება. ფუნქცია იწყებს ძებნას პირველი პერსონაჟით, მაგრამ შეგიძლიათ დაიწყოთ მეცხრე ნიშნით, მაგალითად, 26:

str = "კეთილი იყოს თქვენი მობრძანება losst.ru- ში"
ბეჭდვა (str.find ("წაგებული", 26))

ამ ვარიანტში, ფუნქცია დაუბრუნდება -1, რადგან სიმები ვერ იქნა ნაპოვნი.

5. სუბსტრატის მიღება

ჩვენ მივიღეთ სუბსტრაქციის პოზიცია, რომელსაც ვეძებთ და ახლა როგორ უნდა მივიღოთ სუბსტრატი თავად და რა ხდება მას შემდეგ? გამოიყენეთ ეს სინტაქსი ამისათვის. დაწყება: დასრულებაუბრალოდ მიუთითეთ ორი ნომერი ან მხოლოდ პირველი:

str = "ერთი ორი სამი"
ბეჭდვა (სტრიქონი: 2)
ბეჭდვა (str2 :)
ბეჭდვა (სტრი 3: 5)
ბეჭდვა (სტრი-1)

პირველი ხაზი გამოიყოფა სუბსტრატი პირველიდან მეორე სიმბოლოზე, მეორე - მეორედან ბოლომდე. გაითვალისწინეთ, რომ დათვლა იწყება ნულიდან. საპირისპიროდ დათვლისთვის გამოიყენეთ უარყოფითი რიცხვი.

6. სუბსტრაქტის ჩანაცვლება

შეგიძლიათ შეცვალოთ სტრიქონის ნაწილი შეცვლის მეთოდით:

str = "ეს საიტი არის ლინუქსის შესახებ"
str2 = str.replace ("Linux", "Windows")
ბეჭდვა (str2)

თუ მრავალი შემთხვევაა, მაშინ მხოლოდ პირველი შეიძლება შეიცვალოს:

str = "ეს არის ლინუქსის საიტი და მე ვარ გამოწერილი ამ საიტზე"
str2 = str.replace ("საიტი", "გვერდი", 1)
ბეჭდვა (str2)

7. სტრიების გაწმენდა

თქვენ შეგიძლიათ ამოიღოთ დამატებითი ზოლები ზოლის ფუნქციით:

str = "ეს არის Linux ნახვა"
ბეჭდვა (str.strip ())

თქვენ ასევე შეგიძლიათ ამოიღოთ დამატებითი სივრცეები მხოლოდ მარჯვენა rstrip ან მარცხენა მხარეს - lstrip.

9. გადაიყვანეთ სიმები

სიმები სხვადასხვა რიცხვითი ტიპების გადაქცევას რამდენიმე ფუნქცია აქვს, ეს არის int (), float (), long () და სხვები. Int () ფუნქცია გარდაიქმნება მთელ რიცხვში, ხოლო float () - მცურავი პუნქტის ნომრად:

str = "10"
str2 = "20"
ბეჭდვა (სტრი + სტ 2)
ბეჭდვა (int (str) + int (str2))

10. ხაზის სიგრძე

თქვენ შეგიძლიათ გამოიყენოთ ფუნქციები min (), max (), len () სტრიქონების სიმბოლოების გამოსათვლელად:

str = "კეთილი იყოს თქვენი მობრძანება ლოსსტში"
ბეჭდვა (წთ (ქ))
ბეჭდვა (მაქსიმალური (ქ))
ბეჭდვა (len (str))

პირველი გვიჩვენებს მინიმალური ხასიათის ზომას, მეორე აჩვენებს მაქსიმუმს, ხოლო მესამე აჩვენებს სტრიქონის მთელს სიგრძეს.

11. სტრიქონი

შეგიძლიათ წვდომის სტრიქონის თითოეულ პერსონაჟს ცალკე მარყუჟისთვის:

str = "კეთილი იყოს თქვენი მობრძანება საიტზე"
მე დიაპაზონში (ლენ (სტრი)):
ბეჭდვა (stri)

მარყუჟის შეზღუდვისთვის, ჩვენ გამოვიყენეთ len () ფუნქცია. ყურადღება მიაქციეთ აბზაცებას. Python- ში პროგრამირება სწორედ ამაზეა დაფუძნებული, არ არსებობს ბლოკების ორგანიზების ფრჩხილები, მხოლოდ ქვევრები.

2. შემთხვევითი რიცხვის შექმნა

შეგიძლიათ მიიღოთ შემთხვევითი რიცხვები შემთხვევითი მოდულის გამოყენებით:

იმპორტი შემთხვევითი
ბეჭდვა (შემთხვევითი. შემთხვევითი ())

სტანდარტულად, რიცხვი წარმოიქმნება 0.0-დან 1.0-მდე დიაპაზონში. შეგიძლიათ დააყენოთ თქვენი დიაპაზონი:

იმპორტი შემთხვევითი
ციფრები = 1,2,3,4,5,6,7
ბეჭდვა (შემთხვევითი.ჩაფიკა (ნომრები))

ოპერაციების თარიღი და დრო

პითონის პროგრამირების ენას აქვს DateTime მოდული, რომლის საშუალებითაც შეგიძლიათ შეასრულოთ სხვადასხვა ოპერაციები თარიღით და დროით:

იმპორტის დრო
cur_date = datetime.datetime.now ()
ბეჭდვა (cur_date)
ბეჭდვა (cur_date.year)
ბეჭდვა (cur_date.day)
ბეჭდვა (cur_date.weekday ())
ბეჭდვა (cur_date.month)
ბეჭდვა (cur_date.time ())

მაგალითი გვიჩვენებს, თუ როგორ უნდა ამოიღოთ სასურველი მნიშვნელობა ობიექტიდან. თქვენ შეგიძლიათ მიიღოთ განსხვავება ორ ობიექტს შორის:

იმპორტის დრო
დრო1 = datetime.datetime.now ()
დრო2 = datetime.datetime.now ()
timediff = დრო2 - დრო1
ბეჭდვა (timediff.microseconds)

თქვენ შეგიძლიათ შექმნათ თარიღის ობიექტები თვითნებური ღირებულებით:

დრო1 = datetime.datetime.now ()
დრო2 = datetime.timedelta (დღე = 3)
time3 = დრო1 + დრო2
ბეჭდვა (time3.date ())

1. თარიღისა და დროის ფორმატირება

Strftime მეთოდი საშუალებას გაძლევთ შეცვალოთ თარიღი და დრო ფორმატის მიხედვით, შერჩეული სტანდარტის ან მითითებული ფორმატის მიხედვით. აქ მოცემულია ძირითადი ფორმატის სიმბოლოები:

  • % ა - კვირის დღე, შემოკლებული სახელი,
  • % ა - კვირის დღე, სრული სახელი,
  • % w - კვირის ნომერი, 0 – დან 6 – მდე,
  • % დ - თვის დღე
  • % ბ - თვის შემოკლებული სახელი,
  • % B - სრული თვის სახელი,
  • % მ - თვის ნომერი
  • % Y - წლის ნომერი
  • % თ - დღის 24 საათიანი ფორმატით,
  • % ლ - დღის 12 საათიანი ფორმატით,
  • % პ - AM ან PM,
  • % მ - ერთი წუთი
  • % S - მეორე.

იმპორტის დრო
date1 = datetime.datetime.now ()
ბეჭდვა (date1.strftime ('% d.% B% Y% I:% M% p '))

2. შექმენით თარიღი სტრიქონიდან

თარიღის შესაქმნელად შეგიძლიათ გამოიყენოთ strptime () ფუნქცია:

იმპორტის დრო
date1 = datetime.datetime.strptime ("2016-11-21", "% Y-% m-% d")
date2 = datetime.datetime (წელი = 2015, თვე = 11, დღე = 21)
ბეჭდვა (თარიღი 1),
ბეჭდვა (თარიღი 2),

1. ფაილების კოპირება

ფაილების კოპირება, თქვენ უნდა გამოიყენოთ ფუნქციები ქვედა ნაწილის მოდულიდან:

იმპორტის შილიკი
new_path = shutil.copy ('file1.txt', 'file2.txt')

თუ file1 სიმბოლური რგოლია, ასლის ოპერაცია კვლავ შექმნის ცალკეულ ფაილს. თუ გსურთ სიმბოლური ბმული დააკოპიროთ, გამოიყენეთ ეს მშენებლობა:

new_path = shutil.copy ('file1.txt', 'file2.txt', follow_symlinks = მცდარი)

3. ტექსტური ფაილების კითხვა და წერა

თქვენ შეგიძლიათ გამოიყენოთ ჩაშენებული ფუნქციები ფაილების გასახსნელად, მონაცემების წასაკითხად ან დასაწერად მათზე:

fd = გახსნა ('file1.txt')
შინაარსი = fd.read ()
ბეჭდვა (შინაარსი)

პირველი თქვენ უნდა გახსნათ ფაილი, რომ იმუშაოთ ღია ფუნქციის გამოყენებით. წაკითხვის ფუნქცია გამოიყენება ფაილიდან მონაცემების წასაკითხად, წაკითხული ტექსტი შეინახება ცვლადი. თქვენ შეგიძლიათ მიუთითოთ ბაიტების რაოდენობა, რომ წაიკითხოთ:

fd = გახსნა ('file1.txt')
შინაარსი = fd.read (20)
ბეჭდვა (შინაარსი)

თუ ფაილი ძალიან დიდია, შეგიძლიათ ის გაყოფილიყოთ ხაზებად და უკვე გააკეთოთ დამუშავება:

შინაარსი = fd.readlines ()
ბეჭდვა (შინაარსი)

ფაილის მონაცემების დასაწერად ჯერ უნდა გახსნათ იგი წერისთვის. არსებობს ოპერაციის ორი რეჟიმი - ფაილის ბოლოს გადაწერა და დამატება. ჩაწერის რეჟიმი:

fd = გახსნა ('file1.txt', 'w')
შინაარსი = fd.write ('ახალი შინაარსი')

და დაამატეთ ფაილის ბოლოს:

fd = გახსნა ('file1.txt', 'a')
შინაარსი = fd.write ('ახალი შინაარსი')

5. შექმნის დრო

თქვენ შეგიძლიათ გამოიყენოთ ფუნქციები getmtime (), getatime () და getctime (), რომ მიიღოთ ბოლო ცვლილების, ბოლო წვდომისა და შექმნის დრო. შედეგი გამოჩნდება Unix ფორმატში, ასე რომ, ის უნდა შეიცვალოს იკითხება ფორმაში:

იმპორტი os
იმპორტის დრო
tim = os.path.getctime ('./ file1.txt')
ბეჭდვა (datetime.datetime.fromtimestamp (დრო))

6. ფაილების სია

Listdir () ფუნქციის გამოყენებით, შეგიძლიათ საქაღალდეში შეიტანოთ ფაილების სია:

იმპორტი os
ფაილი = os.listdir ('.')
ბეჭდვა (ფაილები)

იგივე პრობლემის გადასაჭრელად, შეგიძლიათ გამოიყენოთ glob მოდული:

იმპორტის გლობუსი
ფაილები = glob.glob ('*')
ბეჭდვა (ფაილები)

7. პითონის ობიექტების სერიალიზაცია

სერიალიზაცია საშუალებას გაძლევთ შეინახოთ ობიექტი სტრიქონში, მისი შემდგომი აღდგენისთვის. ამისათვის გამოიყენეთ მწნილის მოდული:

იმპორტის მწნილი
fd = გახსნა ('myfile.pk', 'wb')
pickle.dump (mydata, fd)

შემდეგ, ობიექტის აღდგენისთვის, გამოიყენეთ:

იმპორტის მწნილი
fd = გახსნა ('myfile.pk', 'rb')
mydata = pickle.load (fd)

8. ფაილის შეკუმშვა

პითონის სტანდარტული ბიბლიოთეკა საშუალებას გაძლევთ იმუშაოთ სხვადასხვა საარქივო ფორმატებთან, მაგალითად, zip, tar, gzip, bzip2. ფაილის გამოყენების შინაარსის სანახავად:

შემოიტანეთ zipfile
my_zip = zipfile.ZipFile ('my_file.zip', რეჟიმი = 'რ')
ბეჭდვა (file.namelist ())

და შექმნათ ZIP არქივი:

შემოიტანეთ zipfile
ფაილი = zipfile.ZipFile ('files.zip', 'w')
file.write ('file1.txt')
file.close ()

ასევე შეგიძლიათ არქივის გაუქმება:

შემოიტანეთ zipfile
ფაილი = zipfile.ZipFile ('files.zip', 'r')
file.extractall ()
file.close ()

თქვენ შეგიძლიათ დაამატოთ ფაილები არქივში ასე:

შემოიტანეთ zipfile
ფაილი = zipfile.ZipFile ('files.zip', 'a')
file.write ('file2.txt')
file.close ()

9. CSV და Exel ფაილების ანალიზი

პანდას მოდულის გამოყენებით, თქვენ შეგიძლიათ ნახოთ და გაანალიზოთ CSV და Exel ცხრილების შინაარსი. პირველი თქვენ უნდა დააინსტალიროთ მოდული პიპზე:

sudo pip დააინსტალირეთ პანდა

შემდეგ გაანალიზეთ, ჩაწერეთ:

იმპორტის პანდები
data = pandas.read_csv ('file.csv)

სტანდარტულად, პანდა იყენებს პირველ სვეტს თითოეული სტრიქონის სათაურისთვის. თქვენ შეგიძლიათ ინდექსის სვეტი მიუთითოთ index_col პარამეტრის გამოყენებით ან მიუთითოთ მცდარი, თუ ეს არ არის საჭირო. ფაილში ცვლილებების დასაწერად გამოიყენეთ to_csv ფუნქცია:

ანალოგიურად, შეგიძლიათ გააანალიზოთ Exel ფაილი:

data = pd.read_excel ('file.xls', ფურცელი = 'ფურცელი 1')

თუ საჭიროა ყველა ცხრილის გახსნა, გამოიყენეთ:

შემდეგ შეგიძლიათ დაწეროთ ყველა მონაცემი:

ქსელის პითონში

პითონის 3 პროგრამირება ხშირად გულისხმობს ქსელის ჩართვას. პითონის სტანდარტული ბიბლიოთეკა მოიცავს სოკეტებს დაბალი დონის ქსელთან წვდომისათვის. ამისათვის აუცილებელია ქსელის მრავალი პროტოკოლის მხარდაჭერა.

იმპორტის სოკეტი
მასპინძელი = '192.168.1.5'
პორტი = 4040
my_sock = socket.create_connection ((მასპინძელი, პორტი))

ეს კოდი აკავშირებს პორტში 4040 პორტატულ 192.168.1.5 მოწყობილობას. როდესაც სოკეტი ღიაა, შეგიძლიათ გაგზავნოთ და მიიღოთ მონაცემები:

ჩვენ უნდა დავწეროთ ხასიათი b, სტრიქონის წინ, რადგან საჭიროა მონაცემების გადაცემა ბინარული რეჟიმში. თუ შეტყობინება ძალიან დიდია, შეგიძლიათ განმეორებით:

msg = b 'გრძელი შეტყობინება აქ გადის'
mesglen = len (msg)
სულ = 0
ხოლო სულ

მონაცემების მისაღებად, თქვენ ასევე გჭირდებათ სოკეტის გახსნა, გამოიყენება მხოლოდ my_sock_recv მეთოდი:

აქ ჩვენ აღვნიშნავთ, თუ რამდენი მონაცემი გჭირდებათ - 20,000, მონაცემები არ გადაეცემა ცვლადი, სანამ არ მიიღება მონაცემები 20,000 ბაიტი. თუ შეტყობინება უფრო დიდია, მაშინ მის მისაღებად საჭიროა მარყუჟის შექმნა:

ბუფერი = ბაიტი (b '' * 2000)
my_sock.recv_into (ბუფერული)

იმ შემთხვევაში, თუ ბუფერული არ არის ცარიელი, აქ მიღებული წერილი იწერება.

1. ფოსტის მიღება POP3 სერვერისგან

შეტყობინებების მისაღებად, ჩვენ ვიყენებთ POP სერვერს:

იმპორტის მიღება, poplib
pop_serv = poplib.POP3 ('192.168.1.5')
pop_serv.user ("myuser")
pop_serv.pass_ (getpass.getpass ())

შემოვლითი მოდული საშუალებას გაძლევთ შეინახოთ მომხმარებლის პაროლი უსაფრთხო რეჟიმში, ისე რომ იგი არ გამოჩნდეს ეკრანზე. თუ POP სერვერი იყენებს უსაფრთხო კავშირს, საჭიროა გამოიყენოთ POP3_SSL კლასი. თუ კავშირი წარმატებულია, შეგიძლიათ შეხვიდეთ სერვერთან:

msg_list = pop_serv.list () # შეტყობინებების ჩამოთვლა
msg_count = pop_serv.msg_count ()

სამუშაოს დასასრულებლად გამოიყენეთ:

2. ფოსტის მიღება IMAP სერვერიდან

IMAP სერვერთან დასაკავშირებლად და მუშაობისთვის, imaplib მოდული გამოიყენება:

იმპორტის იმპორტის მიღება, შემოვლა
my_imap = imaplib.IMAP4 ('imap.server.com')
my_imap.login ("myuser", getpass.getpass ())

თუ თქვენი IMAP სერვერი იყენებს უსაფრთხო კავშირს, უნდა გამოიყენოთ IMAP4_SSL კლასი. შეტყობინებების ჩამონათვალისთვის გამოიყენეთ:

მონაცემები = my_imap.search (არცერთი, 'ALL')

ამის შემდეგ შეგიძლიათ ციკლურად აირჩიოთ შერჩეული სიის საშუალებით და წაიკითხოთ თითოეული მესიჯი:

msg = my_imap.fetch (email_id, '(RFC822)')

მაგრამ, არ დაგავიწყდეთ კავშირის დახურვა:

3. ფოსტის გაგზავნა

ფოსტის გაგზავნისთვის გამოიყენება SMTP პროტოკოლი და smtplib მოდული:

იმპორტი smtplib, შემოვლითი
my_smtp = smtplib.SMTP (smtp.server.com ')
my_smtp.login ("myuser", getpass.getpass ())

როგორც ადრე, გამოიყენეთ SMTP_SSL უსაფრთხო კავშირისთვის. როდესაც კავშირი დამყარდა, შეგიძლიათ გაგზავნოთ შეტყობინება:

from_addr = '[email protected]'
to_addr = '[email protected]'
msg = 'From: [email protected] r nTo: [email protected] r n r n გამარჯობა, ეს არის საცდელი შეტყობინება'
my_smtp.

1. ვებ მცოცავი

Urllib მოდული საშუალებას გაძლევთ შეკითხვის ვებ – გვერდები სხვადასხვა გზით. რეგულარული მოთხოვნის გასაგზავნად გამოიყენება მოთხოვნის კლასი. მაგალითად, ჩვენ ვასრულებთ რეგულარულ გვერდს:

იმპორტის urllib. გთხოვთ
my_web = urllib.quest.urlopen ('https://www.google.com')
ბეჭდვა (my_web.read ())

2. POST მეთოდის გამოყენებით

თუ საჭიროა ვებ – ფორმის ფორმატის წარდგენა, თქვენ უნდა გამოიყენოთ არა GET მოთხოვნა, არამედ ანგარიში:

იმპორტის urllib. გთხოვთ
mydata = b 'თქვენი მონაცემები აქ მიდის'
my_req = urllib.quest.Request ('http: // localhost', data = mydata, მეთოდი = 'POST')
my_form = urllib.quest.urlopen (my_req)
ბეჭდვა (my_form.status)

3. ვებ სერვერის შექმნა

Socket კლასის გამოყენებით, შეგიძლიათ მიიღოთ შემომავალი კავშირები, რაც ნიშნავს რომ შეგიძლიათ შექმნათ ვებ სერვერი მინიმალური მახასიათებლებით:

იმპორტის სოკეტი
მასპინძელი = ''
პორტი = 4242
my_server = socket.socket (სოკეტი.AF_INET, სოკეტი.SOCK_STREAM)
my_server.bind ((მასპინძელი, პორტი))
my_server.listen (1)

როდესაც შეიქმნა სერვერი. შეგიძლიათ დაიწყოთ კავშირების მიღება:

addr = my_server.accept ()
ბეჭდვა ("დაკავშირებულია მასპინძელთან", დამატება)
მონაცემები = conn.recv (1024)

და არ დაგავიწყდეთ კავშირის დახურვა:

მრავალწახნაგა

პითონი თანამედროვე ენების მსგავსად, საშუალებას გაძლევთ გაუშვათ რამდენიმე პარალელური ძაფი, რომელთა გამოყენებაც სასარგებლო იქნება, თუკი რთული გამოთვლების ჩატარება გჭირდებათ. სტანდარტულ ბიბლიოთეკას აქვს ძაფების მოდული, რომელიც შეიცავს Therad კლასს:

იმპორტის ძაფები
def print_message ():
ბეჭდვა ("გაგზავნა მიღებული იქნა სხვა თემადან")
my_thread = ძაფი. თემა (სამიზნე = print_message)
my_thread.start ()

თუ ფუნქცია ძალიან დიდხანს მუშაობს, შეგიძლიათ შეამოწმოთ არის თუ არა ყველაფერი იმისათვის, რომ გამოიყენოთ is_alive () ფუნქცია. ზოგჯერ თქვენს ძაფებს გლობალური რესურსების წვდომა სჭირდებათ. ამისათვის გამოიყენება საკეტები:

იმპორტის ძაფები
num = 1
my_lock = ძაფი. დაბლოკვა ()
def my_func ():
global num, my_lock
my_lock.acquire ()
ჯამი = num + 1
ბეჭდვა (თანხა)
my_lock.release ()
my_thread = ძაფი. თემა (მიზანი = my_func)
my_thread.start ()

დასკვნები

ამ სტატიაში ჩვენ გავაფორმეთ პითონის პროგრამირების საფუძვლები. ახლა თქვენ იცით, რომ ხშირად იყენებენ ფუნქციებს და მათი მცირე პროგრამებში გამოყენება შეგიძლიათ. გიყვართ პროგრამირება Python 3-ში, ეს ძალიან მარტივია! თუ თქვენ გაქვთ რაიმე შეკითხვები, დასვით კომენტარებში!

სტატიის დასასრულ, შესანიშნავი ლექცია პითონის შესახებ:

გარეგნობა და მახასიათებლები

ფოტო: Big Mesh Python

რეკულტირებული პითონი გიგანტური გველია, რომელიც აზიაში ცხოვრობს. სხეულის საშუალო სიგრძე და სხეულის საშუალო წონა, შესაბამისად, 4.78 მ და 170 კგ. ზოგიერთი ადამიანი აღწევს სიგრძეს 9.0 მ და წონას 270 კგ. მიუხედავად იმისა, რომ რეციკლირებული პითონები 6 მეტრზე მეტი სიგრძით იშვიათია, თუმცა გინესის რეკორდების წიგნის თანახმად, ეს ერთადერთი არსებული გველია, რომელიც რეგულარულად აღემატება ამ სიგრძეს.

რექტულაციულ პითონს აქვს სხეულის ფერი ღია ყვითელიდან ყავისფერიდან, შავი ხაზებით, რომელიც ვრცელდება თვალების ვენტრალური რეგიონიდან, დიაგონალურად ქვევით, თავთან. ზოგჯერ სხვა შავი ხაზი ზოგჯერ გვხვდება გველის თავზე, რომელიც ვრცელდება გველგესკის ბოლოდან თავის ქალას ან ნაპლის ფუძემდე. Mesh პითონის ფერის ნიმუში არის რთული გეომეტრიული ნიმუში, რომელიც მოიცავს სხვადასხვა ფერებს. ჩვეულებრივ, უკანა ნაწილს აქვს არაჩვეულებრივი ალმასის ფორმის მრავალი ფორმა, რომელიც გარშემორტყმულია მცირე ზომის ნიშნით, მსუბუქი ცენტრებით.

საინტერესო ფაქტი: ამ სახეობის ფართო გეოგრაფიულ მხარეში ხშირად გვხვდება ზომების, ფერის და აღნიშვნის დიდი განსხვავებები.

ზოოპარკში, ფერის ნიმუში შეიძლება მკაცრად გამოიყურებოდეს, მაგრამ ჯუნგლების დაბინდულ გარემოში, დაცემულ ფოთლებსა და ნამსხვრევებს შორის, ეს საშუალებას აძლევს პითონს თითქმის გაქრეს.როგორც წესი, ამ სახეობამ აჩვენა, რომ ქალი იზრდება ბევრად უფრო დიდი ვიდრე მამაკაცი ზომისა და წონის მიხედვით. საშუალო ქალი შეიძლება გაიზარდოს 6.09 მ და 90 კგ-მდე, მამრისგან განსხვავებით, რაც საშუალოდ დაახლოებით 4.5 მ სიგრძისა და 45 კგ-მდეა.

ახლა თქვენ იცით, არის თუ არა რეციდირებული პითონი შხამიანი. მოდით გავარკვიოთ, სად ცხოვრობს გიგანტური გველი.

სად ცხოვრობს რეტიკული პითონი?

ფოტო: გველი რეტიკულაცია პითონი

პითონი უპირატესობას ანიჭებს ტროპიკულ და სუბტროპიკულ კლიმატს და მოსწონს წყლის სიახლოვე. იგი თავდაპირველად ცხოვრობდა წვიმების ტყეებში და ჭაობებში. ამ ტერიტორიების დასუფთავება კიდევ უფრო მცირე ხდება, წმინდა პითონი იწყებს მეორად ტყეებსა და სასოფლო-სამეურნეო მინდვრებთან ადაპტაციას და ცხოვრობს ძალიან მჭიდროდ. უფრო და უფრო მეტიც, დიდი გველები გვხვდება პატარა ქალაქებში, სადაც მათი გადაადგილებაა საჭირო.

გარდა ამისა, წმინდა პითონი შეიძლება მდინარეების მახლობლად ბინადრობდეს და შეგიძლიათ იხილოთ მიმდებარე ნაკადებსა და ტბების მიდამოებში. ის შესანიშნავი მოცურავეა, რომელსაც ზღვაზე შორს ცურვა შეუძლია, ამიტომ გველმა თავისი მასშტაბით მრავალი პატარა კუნძული შეძლო კოლონიზაცია. ამბობენ, რომ XX საუკუნის დასაწყისში წმინდა პითონი რეგულარული სტუმარი იყო, თუნდაც დაკავებული ბანგკოკის დროს.

რეციკლირებული პითონის დიაპაზონი ვრცელდება სამხრეთ აზიაში:

გარდა ამისა, სახეობა გავრცელებულია ნიკობარის კუნძულებზე, აგრეთვე: სუმატრა, მენტაუის კუნძულების ჯგუფი, 272 კუნძული ნატუნა, ბორნეო, სულავესი, ჯავა, ლომბოკი, სუმბავა, ტიმორი, მალუკუ, სუმბა, ფლორესი, ბოჰოლი, სებუ, ლეიტე, მინდაოო, მინდორა, და ა.შ. ლუზონი, პალავანი, პანეი, პოლილო, სამარი, ტავი-ტავი.

რეკულტირებული პითონი დომინირებს ტენიან ტროპიკულ ტყეებში, ჭაობებსა და მდელოს ტყეებში, 1200–2500 მ სიმაღლეზე. რეპროდუქციისა და გადარჩენისთვის საჭირო ტემპერატურა უნდა იყოს be24ºC– დან ≈34ºC ტემპერატურაზე, დიდი რაოდენობით ტენიანობის თანდასწრებით.

რას ჭამს mesh პითონი?

ფოტო: ყვითელი წმინდა პითონი

ყველა პითონის მსგავსად, ბადეები ერთი ნადირობენ ჩასაფრებისგან და ელოდება სანამ მსხვერპლს გაფიცვის მანძილზე მიაღწევს, სანამ მტაცებლური სხეული მოიჭრა და შეკუმშვით მოკლა. ცნობილია, რომ ის იკვებება ძუძუმწოვრებითა და ფრინველების სხვადასხვა სახეობებით, რომლებიც მის გეოგრაფიულ მხარეში ცხოვრობენ.

მისი ბუნებრივი დიეტა მოიცავს:

ხშირად ნადირობს შინაური ცხოველებისთვის: ღორები, თხა, ძაღლი და ფრინველი. გოჭები და 10-15 კილოგრამიანი წონა ბავშვებში შედის ჩვეულებრივი დიეტა. ამასთან, ცნობილია შემთხვევა, როდესაც მე ვწერ mesh mesh python- ს, რომლის წონაც 60 კგ-ს აღემატებოდა. ის ნადირობს ღამურებს, იჭერს მათ ფრენის დროს, გამოასწორებს კუდის გამოქვაბულში არსებულ დარღვევებს. მცირე ზომის პირები 3-4 მეტრ სიგრძეზე იკვებებიან ძირითადად მღრღნელებით, მაგალითად, ვირთხები და უფრო დიდი პირები გადადიან უფრო დიდ მტაცებელზე.

საინტერესო ფაქტი: რეტიკულარულ პითონს შეუძლია მტაცებელი გადაყლაპოს მისი სიგრძისა და წონის ერთ მეოთხედზე. მტაცებლის ყველაზე მსხვილ დოკუმენტურ ნივთებს შორისაა ნახევრად შიმშილი მალაიური დათვი, რომლის წონაა 23 კგ, რომელიც გველმა გველმა 6.95 მეტრის ზომით შეჭამა და მის შესანარჩუნებლად დაახლოებით ათი კვირა დასჭირდა.

ითვლება, რომ რეციკლირებული პითონები შეიძლება მტაცებდეს ადამიანებზე, ველურზე ადამიანებზე მრავალრიცხოვანი თავდასხმების გამო და რეციკლირებული პითონების სახლის მფლობელებზე. ცნობილია მინიმუმ ერთი შემთხვევა, როდესაც Python reticulatus შევიდა ტყეში მყოფი ადამიანის საცხოვრებლად და შვილი გამოჰყო. მტაცებლის გამოსავლენად, reticulated Python იყენებს მგრძნობიარე ორმოებს (სპეციალურ ორგანოებს გველის ზოგი სახეობაში), რომლებიც ამოიცნობენ ძუძუმწოვრების სიცხეს. ეს საშუალებას გაძლევთ განსაზღვროთ წარმოების ადგილმდებარეობა გარემოსთან მის ტემპერატურასთან მიმართებაში. ამ მახასიათებლის გამო, რეციკლირებული პითონი ახდენს მტაცებლებისა და მტაცებლების აღმოჩენას მათი დანახვის გარეშე.

ხასიათისა და ცხოვრების სტილის თვისებები

ფოტო: Mesh Python

ადამიანებთან ახლოს ყოფნის მიუხედავად, ამ ცხოველების ქცევის შესახებ ცოტა რამ არის ცნობილი. რეკულტირებული პითონი ღამისთევის წესს უტარებს და დღის უმეტეს ნაწილს თავშესაფარში ხარჯავს. მანძილები, რომლებიც ცხოველებს ფარავს მათი ცხოვრების განმავლობაში, ან აქვთ თუ არა მათ ტერიტორიები, საფუძვლიანად არ არის შესწავლილი. Reticulated python არის მარტოხელა, რომელიც კონტაქტში შემოდის მხოლოდ შეჯვარების პერიოდში.

ეს გველები იკავებენ ტერიტორიებს წყლის წყაროსთან. გადაადგილების პროცესში, მათ შეუძლიათ კუნთების შეკუმშვა და ერთდროულად გაათავისუფლონ ისინი, ქმნიან გველის მოძრაობის ნიმუშს. მართკუთხა მოძრაობის და რეციკლირებული პითონების დიდი ზომის ზომების გამო, გველის მოძრაობის ტიპი, რომელშიც იგი შეკუმშავს თავის სხეულს და შემდეგ ვითარდება ხაზოვანი მოძრაობით, უფრო ხშირად შეინიშნება, რადგან ეს საშუალებას აძლევს უფრო დიდ ინდივიდებს უფრო სწრაფად გადაადგილდნენ. შეკუმშვისა და გასწორების ტექნიკის გამოყენებით, პითონს შეუძლია ხეებზე ასვლა.

საინტერესო ფაქტი: სხეულის მსგავსი მოძრაობების გამოყენებით, რეციკლირებული პითონები, როგორც ყველა გველი, აანთეთ კანი ჭრილობების გამოსწორების მიზნით ან უბრალოდ ცხოვრების განვითარების ეტაპზე. კანის ცვენა ან პილინგი აუცილებელია მუდმივი მზარდი სხეულის გასათავისუფლებლად.

მაგისტრალური პითონი პრაქტიკულად არ ისმის ხმაურს და ვიზუალურად შეზღუდულია უსიტყვო ქუთუთოების გამო. ამიტომ, ის ეყრდნობა მის სურნელს და შეხებას, რომ მტაცებელი იპოვნოს და მტაცებლების თავიდან აცილება. გველს ყურები არ აქვს, სამაგიეროდ მას აქვს სპეციალური ორგანო, რომელიც საშუალებას გაძლევთ იგრძნოთ ვიბრაცია მიწაში. ყურის სიმცირის გამო, გველებმა და სხვა პითონებმა უნდა გამოიყენონ ფიზიკური მოძრაობები ვიბრაციების შესაქმნელად, რომლის მეშვეობითაც ისინი ერთმანეთთან ურთიერთობენ.

სოციალური სტრუქტურა და რეპროდუქცია

ფოტო: Big Mesh Python

რეციკლირებული პითონის გამრავლების სეზონი გრძელდება თებერვლიდან აპრილამდე. ზამთრის შემდეგ ცოტა ხნის შემდეგ, პითონები ზაფხულის დაპირებული სითბოს გამო მეცხოველეობისთვის მზადებას იწყებენ. უმეტეს რაიონში სეზონის დაწყებას გავლენას ახდენს გეოგრაფიული ადგილი. ამრიგად, პითონების ჯიში დამოკიდებულია კონკრეტულ ჰაბიტატურ რეგიონში კლიმატურ ცვლილებებზე.

მეცხოველეობის ზონა უნდა იყოს მდიდარი მტაცებლობით, რათა ქალს შეეძლოს შთამომავლობა. მაღალი რეპროდუქციის შესანარჩუნებლად რეკულტირებულ პითონებს დაუსახლებული ტერიტორიები სჭირდებათ. კვერცხის სიცოცხლისუნარიანობა დამოკიდებულია დედის უნარზე მათი დაცვა და ინკუბაცია, ასევე ტენიანობის მაღალ დონეზე. მოზრდილთა პითონები ჩვეულებრივ მზად არიან მეცხოველეობისთვის, როდესაც მამაკაცი აღწევს სიგრძით 2.5 მეტრს, ხოლო მდედრებში დაახლოებით 3.0 მეტრს. ისინი ასეთ სქემას 3-5 წლის განმავლობაში მიაღწევენ ორივე სქესისთვის.

საინტერესო ფაქტი: თუ ბევრი საკვებია, ქალი ყოველწლიურად შთამომავლობას აწარმოებს. იმ ადგილებში, სადაც ბევრი საკვები არ არის, შემცირდება კლანჭების ზომა და სიხშირე (2-3 წელიწადში ერთხელ). მოშენების წელიწადში ერთ ქალს შეუძლია 8-107 კვერცხის წარმოება, მაგრამ, ჩვეულებრივ, 25-50 კვერცხს. ჩვილების საშუალო სხეულის წონა მშობიარობის დროს არის 0,15 გ.

სახეობების უმეტესობისგან განსხვავებით, რეციკლირებული ქალი პითონი კვერცხუჯრედის კვერცხუჯრედებად რჩება, რათა მათ სითბო უზრუნველყონ. კუნთების შეკუმშვის პროცესის შედეგად ქალი ათბობს კვერცხებს, რაც იწვევს ინკუბაციური მაჩვენებლის ზრდას და შთამომავლობის გადარჩენის შანსს. დაბადების შემდეგ, პატარა რეციკლირებულმა პითონებმა თითქმის არ იციან მშობლის მოვლა და იძულებულნი არიან დაიცვან თავი და ეძებონ საკვები.

რეციკლირებული პითონების ბუნებრივი მტრები

ფოტო: წმინდა პითონი ბუნებაში

რეკულტირებულ პითონებს პრაქტიკულად არ აქვთ ბუნებრივი მტრები მათი ზომისა და ძალის გამო. გველის კვერცხები და ახლახანს გამოყვანილი პითონები თავს დაესხნენ მტაცებლებს, როგორიცაა ფრინველები (ქოხები, არწივები, ჰერონები) და პატარა ძუძუმწოვრები. ზრდასრულთა რეციკლირებულ პითონებზე ნადირობა შემოიფარგლება მხოლოდ ნიანგებითა და სხვა დიდი მტაცებლებით. პითონები თავდასხმის მაღალი რისკის ქვეშ იმყოფებიან მხოლოდ აუზების კიდეზე, სადაც ნიანგისგან შეტევების მოლოდინი შეგიძლიათ. მტაცებლებისგან ერთადერთი დაცვა, ზომის გარდა, გველის მიერ სხეულის ძლიერი შეკუმშვაა, რომელსაც 3-4 წუთში შეუძლია მტრისგან სიცოცხლის შესუსტება.

ადამიანი არის ქსელის პითონის მთავარი მტერი. ეს ცხოველები მოკლეს და ტყავის ნაწარმის წარმოებას ქმნიან. დადგენილია, რომ ამ მიზნით ყოველწლიურად ნახევარი მილიონი ცხოველი კლავენ. ინდონეზიაში, რეციდირებულ პითონებსაც იყენებენ. ნადირობის ცხოველები გამართლებულია იმით, რომ მოსახლეობას სურს დაიცვას საკუთარი პირუტყვი და ბავშვები გველებისგან.

რეკულტირებული პითონი არის იმ რამდენიმე გველიდან, რომელიც მტაცებელია ადამიანისთვის.ეს შეტევები არც თუ ისე იშვიათად ხდება, მაგრამ ამ სახეობამ რამდენიმე ადამიანი გამოიწვია, როგორც ველურ, ასევე ტყვეობაში.

საიმედოდ არის ცნობილი რამდენიმე შემთხვევის შესახებ:

  • 1932 წელს, ფილიპინებში თინეიჯერმა ბიჭმა შეჭამა პითონი, რომლის ზომაა 7,6 მ. პითონი სახლიდან გაიქცა, და როდესაც ის იპოვნეს, მათ აღმოაჩინეს გველის მფლობელის ვაჟი,
  • 1995 წელს დიდი ქსელის პითონმა მოკლეს 29 წლის ეე ჰიუნ ჩუანი სამხრეთ მალაიზიის შტატის იოჰორიდან. გველი უსიცოცხლო სხეულზე იყო გახვეული, თავით თავის არეში დაჭერილი, როდესაც მასზე დაზარალებულის ძმა წამოხტა,
  • 2009 წელს, ლას – ვეგასიდან 3 წლის ბიჭი 5,5 მეტრი სიგრძის ქსელიანი პითონის სპირტით იყო გახვეული. დედამ გადაარჩინა ბავშვი, რომელმაც დანით დაარტყა პითონი,
  • 2017 წელს ინდონეზიიდან 25 წლის ფერმერის ცხედარი იპოვნეს 7-მეტრიანი წმინდა პითონის მუცელში. გველი მოკლეს და ცხედარი ამოიღეს. ეს პირველი პირველი დადასტურებული შემთხვევა იყო, როდესაც პითონი ადამიანებზე იკვებებოდა. სხეულის მოპოვების პროცესი დოკუმენტირებულია ფოტოების და ვიდეოების გამოყენებით,
  • 2018 წლის ივნისში 54 წლის ინდონეზიელს 7 მეტრიანი პითონი ჭამეს. იგი თავის ბაღში მუშაობის დროს გაუჩინარდა, მეორე დღეს კი სამძებრო ჯგუფმა იპოვნეს პითონი ბაღის მახლობლად სხეულზე. ნახარში გველთან ერთად ვიდეო გამოქვეყნდა ქსელში.

მოსახლეობის და სახეობების სტატუსი

ფოტო: გველი რეტიკულაცია პითონი

რეციკლირებული პითონის მოსახლეობის სტატუსი ძალიან განსხვავდება გეოგრაფიული დიაპაზონის სხვადასხვა ადგილებში. ტაილანდში ბევრი ეს გველია, სადაც ისინი წვიმების დროს ადამიანთა სახლებში ირევა. ფილიპინებში, ეს არის გავრცელებული სახეობა, თუნდაც საცხოვრებელ ადგილებში. ფილიპინების სუბპოპულაცია განიხილება სტაბილური და კიდევ უფრო მზარდი. მიტიმარში იშვიათია პითონირებული პითონები. კამბოჯაში, მოსახლეობა ასევე შემცირდა და ათ წელიწადში 30-50% -ით შემცირდა. გვარის წარმომადგენლები ძალიან იშვიათია ვიეტნამში ველურ ბუნებაში, მაგრამ მრავალი ადამიანი იპოვეს ქვეყნის სამხრეთ ნაწილში.

საინტერესო ფაქტი: რეციკლირებული პითონი საშიშროება არ არის, თუმცა, CITES დანართი II- ის თანახმად, მისი კანის ყიდვა-გაყიდვა რეგულირდება გადარჩენის უზრუნველსაყოფად. ეს სახეობა არ არის ჩამოთვლილი IUCN წითელ ნუსხაში.

ითვლება, რომ პითონი რჩება საერთო ამ ქვეყნის სამხრეთ ნაწილებში, სადაც არის შესაფერისი ჰაბიტატი, დაცული ტერიტორიების ჩათვლით. ალბათ კლება ლაოსში. ინდოჩინას მასშტაბით შემცირებამ მიწის კონვერტირება გამოიწვია. რეტიკული პითონი ჯერ კიდევ შედარებით გავრცელებული სახეობაა კალიმანტანის მრავალ მხარეში. ინტენსიური თევზაობის მიუხედავად, მალაიზიასა და ინდონეზიაში სუბპოპულაციები სტაბილურია.

Mesh python რჩება საერთო სინგაპურში, მიუხედავად ურბანიზაციისა, სადაც ამ სახეობის თევზაობა აკრძალულია. Sarawak- სა და Sabah- ში ეს სახეობა გავრცელებულია როგორც საცხოვრებელ, ისე ბუნებრივ ადგილებში, და არ არის მითითებული მოსახლეობის შემცირების შესახებ. ჰაბიტატების გაწმენდისა და ექსპლუატაციის შედეგად გამოწვეული პრობლემები შეიძლება ანაზღაურდეს ზეთის პალმის პლანტაციების გაზრდით, რადგან ამ ჰაბიტატებში გველი პითონი კარგად გველის.

Pin
Send
Share
Send