Python - python basics | Cyber Community | Hi-Tech World - CYBSECGROUP
Welcome to the CYBSECGROUP Forum
You have the opportunity to get acquainted with interesting projects in an interesting environment
Registration

Python python basics

ვაკო ბატიაშვილი

I am Groot!!!
Founder CEO
Alien 👽
Jun 27, 2018
999
1,743
#1
გამარჯობა თანაფორუმელებო. დაგიბრუნდით პითონის მეორე ტუტორიალით მარა თუ გავითვალისწინებთ იმას რომ პირველ იგარემოს მოწყობა იყო ეს პირველი გამოდის. პროგრამისტები ვართ ამიტომ ის 0 იყოს ეს პირველი. :დ ვსო მოვგვარდით. დღეს განვიხლიოთ ბეზიქ სინტაქსი, მონაცემთა ტიპები და სთრინგის(ერთერთი ტიპია მონაცემის) ფუნქციები. დავიწყოთ მოქმედებებით. გვაქვს რამდენიმე მოქმედება პითონში.
+ მიამტება 15+3 დააბრუნებს 18-ს
- გამოკლება 15-3 დააბრუნებს 12-ს
* გამრავლება 15 * 3 დააბრუნებს 45-ს
/ გაყოფა. არსებობს //. ისიც გაყოფაა თუმცა 14/3 დააბრუნებს 4,666666667 ხოლო 14//3 დააბრუნებს 4. ალბათ როგროც მიხვდით // ამრგვალებს უმცირეს ერთეულამდე. ანუ 4.6 დაამრგვალა 4 ად. ნაკებობით დამრგვალება ეწოდება როგროც ვიცი ამას ამთემატიკაში.
% ნაშთი ანუ 14%3 დააბრუნებს 2-ს.
** ახარისხება. ანუ 2**3 დააბრუნებს 8-ს. ვინაიდან ჩანაწერი ნიშნავს რომ 2 აგვყავს მესამე ხარისხში(ორის კუბი)
არსებობს კიდევ ბიტური ოპერატორები AND, OR, XOR, ONES COMPLEMENT და ა.შ. თუმცა ამაზე და ლოგიკურ ოპერატორებზე მოგვიანებით ვისაუბრებთ ახლა კი ზემოთ მოყვანილი მაგალითისთვის განკუთვნილი სქრინ შოთი. 1.PNG
ერთი პითონის იდელშია დაწერილი ხოლო მეორე command prompt -ში ანუ cmd-ში. დღეს ვინდოუსით ვარ ამიტომ მხოლოდ ამ სქრინებით შევჯერდეთ თუმცა შედეგი სხვა ოპერაციულ სისტემებზეც ისეტივე იქნება. გავაგრძელოთ. და გადავიდეთ მონაცემთა ტიპებზე. პირველი ასეთი მონაცემია ინტეგერი. ანუ მთელი რიცხვები. მაგალითად ზემოთ რომ შევიყვანეთ 15 14 და ა.შ მთელი რიცხვი იყო. ანუ ინტეჯერის ტიპის რიცხვები. მოკლედ ინტეჯერი არის უარყოფითი, დადებითი მთელი რიცხვები და ნული. მათზე მოქმედებს ის მოქმედებები რომელიც ზემოთ განვიხილეთ. ასევე არსებობს float ანუ არა მთელი რიცხვები. მაგალითად 14/3 მივიღეთ ფლოატის ტიპის რიცხვი. იდეაში სხვა პროგრამირების ენებში არის დაბლიც, ანუ 15,25 არის დაბლი და 15,252 არის ფლოატი. თუმცა პითონში დაბლი მხოლოდ ფორმატირებისას გვხვდება ამიტომ 14,25 იც ფლოატია და 15,252. ფლოატის ტიპის რიცხვებზეც ვრცელდება ზემოთ მოყვანილი მაგალითები. ანუ 15.4/3 არ დააბრუნებს შეცდომას. ხო მართლა არ დამავიწყდეს. ფლოატის ტიპის რიცხვები ჩაიწერება წერტილით და არა მძიმით. 15.2 და არა 15,2. ეს რაც შეეხებოდა რიცხვებს, ხოლო რაც შეეხება დანარჩენ სიმბოლოებს, არსებობს სტრინგი. ანუ ის არის სიმბოლები. მათზე დაშვებულია მიმატება გამრავლება და განანხებთ რა და როგორ. სტრინგს ტიპის სიმბოლო შეიძლება იყოს ნებისმიერ რამ(რიცხვი ციფრი, ასო, პუნქტუაციის ნიშანი, ვაითსპეისი) ყველაფერი რაც აღქმადია ენცოდირების სისტემისთვის. ამ შემთხვევასი ჩემი იდლე იყენებს iso ენკოდირების სისტემას და ქართულად რომ ვწერ ვერ ხედაავს. ქართულად ჩაწერა ამ ედიტორში მხოლოდ ბიტების გამოყენებითაა შესაძლებელი, ამაზეც მოგვიანებით ვისაუბრებთ. სტრინგი არის ნებისმიერი სიმბოლო რომელიც მოთავსებულია ' ' ან " " ამ ნიშნების (ბრჭყალების/ აპოსტროფების) შიგნით. ანუ "1" ესაც სტრინგია და მსზე არ ვრცელდება მიმატება გამოკლების წესები ისევე როგორც ვრცელდებოდა ინტეგერის შემთხვევაში. მოდი განვიხილოთ დეტალურად "asd" + "dsa" დააბრუნებს "asddsa"-ს ანუ აღივა სიტყვად/ასოდ და უბრალოდ ერთამნეთს მიაწება. ანალოგიურად მოიქცევა "1"+"1" ზეც. დააბრუნებს "11"-ს და არა 2-ს. იმედია მიხვდით რატომაც.
1+1 აბრუნებს 2-ს
"1"+"1" აბრუნებს "11"-ს

ესაც მაგალით
2.PNG

ლამის დამავიწყდა რომ სტრინგებს აქვს გამრავლებაც. ანუ "asdd"*3 დააბრუნებს "asddasddasdd"-ს. გაითვალისწინეთ რომ როცა სტრინგს ამრავლებთ ერთი მხარე აუციებლად უნდა იყოს სტრნგი, მეორე კი აუცილებლად ინტეგერი, ხოლო როცა სტრინგს რამე გინდათ რომ მიაკრიბოთ, შეკრების ყველა წევრი სტრინგი უნდა იყოს. წინააღმდეგ შემთხვევაში დააბრუნებს შეცდომას
არსებობს კიდევ ერთი მონაცემთა ტიპი boolen რომელიც შეიძლება იყოს True ან False. ისინი გაოიყენება პირობებში (if) ლუპებში/ციკლებში( while for) და ასე შემდეგ. ა ყველაფერსაც შემდეგში უფრო დეტალურად შევეხები.

რაც შეეხება სთრინგის ფუნქციებს და სხვა დანრჩენ სთრინგის მაგიურ მხარეებს განვიხილავთ ახლა. უკვე ვთქვით მიმატებასა და გამრავლებაზე ახლა დრო მოვიდა ვისაუბროთ სთრინგის დაჭრაზე. ავღოთ საცდელი სთრინგი და გავუტოლოთ ცვლადს. როგორ ხდება ეს? ზოგი ენისგან განსხვავებით უბრალოდ ვწერთ a="CyberSec" ანდა a-ს შევცვლთ ნებისმიერი სხვა სიმბოლოთი გაითვალისწინეთ რომ არ უდნა იწყებოდეს რიცხვით _ და __ (ერთი ქვედა ტირე და ორი ქვედა ტირე) სხვა რაღაცებს ნიშნავს რასაც შემდეგ ობიექტზე ორიენნტირებულ დაპროგრამებაზე რომ მივალთ მერე განვიხილავთ ასე რომ ჯობია დაიწყოს ჩვეულებრივი ლათინური ასოთი. გინდ დიდი გინდ პატარა. არ სჭირდება წინასწარ დაკონკრეტება სტრინგია ინტეჯერი ბულენი ფლოატი თუ კიდევ ათასი სისულელე. თვითნ ხვდება ყველაფერს. თუ " ან ' ურევია ზნაჩეტ სტრინგია თუ წერტილი ურევია ერთი და აპოსტროფები არა ესეიგი ფლოატია. თუ არცერტი ურევია ე.ი ან ბულენია ან ინტეჯერი. თუ თრუ არის ან ფოლსი ესეიგი ბულენია თუ არადა ინტეგერიღა დარჩა რა. მოკლედ თვითონ ხვდება. ამ შემთხვევაში მიხვდება რომ სტრინგია და შემდეგში სადაც a-ს დავწერთ პროგრამა ავტომატურად ჩაანაცვლებს ამ ა-ს მითითებული "CyberSec"-ით. იდეაში ანავლებს მხოლოდ იდეურად თრე კოდს არ ცვლის. ანუ უკეთ რომ გავიგოთ წინაზე გამოყენებული გამოტანის ფუნქცია print(a)-ასე რომ გამოვიყენოთ დაბეჭდავს "CyberSec"-ს. გაითვალისწინეთ რომ ა არის ცვლადი შესაბამისად არ სჭრდება ბრჭყალები ამ შემთხვევაში. ის არაა სტრინგი. სანამ გამოვიტანთ, დავპრინტავთ კდიევ მანამ აუცილებლად უნდა გავუტოლოთ ა ანდა გამოტანისას მითითბული/ გაოყენებული ცვლადი რამეს, ანუ განვსაზღვროთ.
გავაფღზელოთ. ესეიგი a-ს მნიშვნელობა არის "CyberSec" ანუ მათემატიკაში რომაა ხოლმე იქს ცვლადი მასეთ პონტია რა. სტრინგს აქვს ასეთი "ფუნქცია" a[0] დაბეჭდავს პირველ ასოს ანუ C-ს a[1]-დაბეჭდავს მეორეს a[2]-მესამეს და ა.შ. რატომ? ვინაიდან ათვლა იწყება 0 დან ის ნულოვან წევრად აღიქვამს პირველ ასოს.

C y b e r S e c
0 1 2 3 4 5 6 7


3.PNG
კიდევ აქვს ასეთი რამ a[1:5] დაბეჭდავს მეორე წევრიდან მეხუთემდე. მდე და არა ჩათვლით მეორე ჩვენი სათვალავით თორე პითნისთვის ეს პირველია წევრია :D ანუ გამოიტანს 'yber'
კიდევ შეგვიძლია გამოვიძახოთ ბოლო წევრი ასე ან ბოლოდან მეორე მკლედ ასეჩ შეიძ₾ება ასოების გამოძახება რა a[-1] და დააბრუნებს ბოლოდან პირველ ასოს(ჩვენთვის პირველს) ანუ c-ს ვინაიდნა -0 არ არსებობს -1 ნულოვან წევრად ითვლება ბოლოდან თუ მოვყვებით. ასევე შეგვიძლია გამოვიძახოთ a[-2] a[-3] a[-4] a[-5] და ასე შემდეგ. მაგრამ არ უნდა გავცდეთ იმ ასოების რაოდენობას რასაც შეადგენს სტრინგი. ანუ ამ სტრინგში არის რვა ასო. თუ გამოვიძახებთ a[8]-ს ანდა a[-9] -ს და ა.შ

დააბრუნებას შემდეგ შეცდომას:

Code:
Traceback (most recent call last):
  File "<pyshell#21>", line 1, in <module>
    a[-9]
IndexError: string index out of range
კიდევ არსებობს ასეთი რამე a[:6] ეს დააბრუნებს ნულოვანი წევირდან მეექვსემდე ან ასეთიც შეიძლება გამოიყენოთ a[2:] რაც ნიშნავს მეორედან ბოლომდე კიდევ არის ასეთი a[1::2] ან a[:7:2] რაც პირველ შმემთხვევაში ნიშნავს ჩვენი თვლით მეორე წევრიდან ბოლომდე ოღონდ ყოველი მეორე. ანუ დააბრუნებს yeSc-ს ასევე შეგიძლია გამოიყენოთ ასეც a[::2] რაც ნიშნავს თავიდან ბოლომდე, ყოველი მეორე.
b="asd"
capitalize() -ადიდებს პირველ ასოს b.capitalize() # Asd-ს დააბრუნებს
count()- ითვლის რამდენჯერ მეორდება ესა თუ ის სიმბოლო ამ სტრინგში a.count("s") #დააბრუნებს 1-ს ხოლო a.count("c") # დააბრუნებს ორის. # აირს კომენტარი და პროგრამა არ აქცევს ყურადღებას. ასე რომ თქვენც ნუ მიაქცევთ არ გადაწეროთხოლმე ეგ არაა საჭირო. :D მხოლოდ ადამიანებისთისაა განკუთვნილი მაგის შემდეგ დაწერილი ხაზი, მთლიანად.
კიდევ აქვს encode() decode() a.encode("UTF-8",errors="strict") decode-საც მსგავსი სინტაქსი აქვს. endswith() თუ ფრჩხილებში მითითებული სტრინგით მთავრდება ჩვენისამოქმედო სტრინგი მაშნ დაააბრუნებს True-ს თუ არადა False-ს. ახლა გეტყვით ზემოთ ნახსენები სამოქმედო სტრინგი რა იყო. მოკლედ პითონში არის რამდენიმე ჩაშენებული ფუქნცია მაგალტიად print len რომლებიც მოქმედებს ისევე როგროც სტრინგზე ასევე სხვა ტიპის მონაცემებზეც boolens-ს არ ვგულისხმობ :d ხოლო ზემოთ მოყვანილი ფუნქციები ეკუთვნის მხოლოდ სტრინგს. ამიტომ არის ორნაირი სინტქასი ერთი სისტემურად განსაზღვრული ფუქნციებისა და შემდეგში ჩვენ რომ განვსაზღვრავთ მაგ ფუქნცების სინტაქსი რომელიც გულისხმობს, ჯერ ფუნქციის დაწერას და შემდეგ კი ფრჩხილებში სამოქმედო ობიექტის მიწვდას. ანუ პრინტის შემთხვევაში რომ მივაწოდეთ წეღან ა გამოვიძახეთ პრინტი და მივაწოდეთ ა რომ დაებეჭდა. ხოლო capitalize() count -ის შემთხვევაში ჯერ ობიექტი მივაწოდეთ, ა და ბ ანუ რაზეც უნდა ემოქმედა და მერე ის მივაწოდეთ თუ როგორ უნდა ემოქმედა. ხოლო ქაუნტს, ანუ თვლის ფუნქციას დაჭირდა დამატებითი პარამეტრის მიწვდა რა უნდა დაეთვალა. თემა ძალიან რომ არ გაიწელოს აგერ არის სტრინგის ის ძირითად იფუნქციები რაც გჭირდებათ და ყვლეას დეტალურად არ ავხსნი. მეე ჭვება რომ ვინმემ 40 ვე დაიმახსოვროს მაინც :D ამიტომ გადადით ნახეთ და თუ რამე ვერ გაიგეთ დაწერთ და აუცილებლად გიპასუხებთ დიდი სიამოვნებით. ლინკი
 

Attachments

Last edited: