Saturday, July 25, 2015

თავი 10 (10,7 - 10,9)

11.7 გამართვა


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

>>> help()
Welcome to Python 2.6! This is the online help utility.
If this is your first time using Python, you should definitely check out
the tutorial on the Internet at http://docs.python.org/tutorial/.

Enter the name of any module, keyword, or topic to get help on writing
Python programs and using Python modules. To quit this help utility and
return to the interpreter, just type "quit".

To get a list of available modules, keywords, or topics, type "modules",
"keywords", or "topics". Each module also comes with a one-line summary
of what it does; to list the modules whose summaries contain a given word
such as "spam", type "modules spam".

help> modules


თუ იცი რომელი მოდულის გამოყენება გინდა, შეგიძლია dir() ბრძანებით მოძებნო ამ მოდულის მეთოდები:

>>> import re
>>> dir(re)
[.. 'compile', 'copy_reg', 'error', 'escape', 'findall',
'finditer', 'match', 'purge', 'search', 'split', 'sre_compile',
'sre_parse', 'sub', 'subn', 'sys', 'template']

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

>>> help (re.search)
Help on function search in module re:

search(pattern, string, flags=0)
Scan through string looking for a match to the pattern, returning
a match object, or None if no match was found.
>>> 

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


11.8 ლექსიკონი

brittle code: კოდი, რომელიც მუშაობს მაშინ, როცა შეტანილი მონაცემები არის კონკრეტულ ფორმატში და მიდრეკილება აქვს გაფუჭებისკენ იმ შემთხვევაში თუ კონკრეტული ფორმატიდან რამე არის გადახრილი. ამას ვეძახით „მყიფე კოდს“ იმიტომ რომ ადვილად ტყდება.
greedy matching: The notion რომ+და*სიმბოლოები რეგულარულ გამოსახულებაში ამთხვევს რაც შეიძლება დიდ სტრინგს..
grep: ბრძანება ხელმისაწვდომია უმეტესობა Unix - ის სისტემებში, რომელიც იკვლევს ტექსტურ ფაილებს და ეძებს ხაზებს, რომელიც ემთხვევა რეგულარულ გამოსახულებებს.
ბრძანების სახელი მოდის ”Generalized Regular Expression Parser” - დან.
regular expression: ძებნის რთული სტრინგების გამოსასახი ენა.რეგულარული გამოსახულება შეიძლება შეიცავდეს სპეციალურ სიმბოლოებს, რომელიც აჩვენებს, რომ ეძებს დამთხვევებს მხოლოდ  ხაზის დასაწყისში ან ბოლოში (ან ბევრი სხვა მსგავსი შესაძლებლობები )
wild card: სპეციალური სიმბოლო, რომელიც ემთხვევა ნებისმიერ სიმბოლოს. რეგულარულ გამოსახულებაში wild card - ის სიმბოლოა წეტილის სიმბოლო.


11.9 სავარჯიშოები

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

$ python grep.py
Enter a regular expression: ˆAuthor
mbox.txt had 1798 lines that matched ˆAuthor

$ python grep.py
Enter a regular expression: ˆXmbox.
txt had 14368 lines that matched ˆX-

$ python grep.py
Enter a regular expression: java$
mbox.txt had 4218 lines that matched java$

სავარჯიშო 11.2 დაწერე პროგრამა შემდეგი ფორმის ხაზების მოსაძებნად:

New Revision: 39772

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

Enter file:mbox.txt
38549.7949721

Enter file:mbox-short.txt
39756.9259259