Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2011-kl-lab3.doc
Скачиваний:
5
Добавлен:
12.11.2019
Размер:
691.71 Кб
Скачать

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»

іНСТИТУТ КОМП’ютерних НАУК та ІНФОРМАЦІЙНИХ ТЕХНОЛОГІЙ

Кафедра систем автоматизованого проектування

ВИВЧЕННЯ БІБЛІОТЕКИ ПРИКЛАДНИХ ПРОГРАМ NLTK, ДЛЯ ОПРАЦЮВАННЯ ТЕКСТІВ ПРИРОДНОЮ МОВОЮ

ОСНОВИ ПРОГРАМУВАННЯ НА МОВІ PYTHON. КОНТРОЛЬНІ СТРУКТУРИ.

Методичні вказівки до лабораторної роботи № 3

з дисципліни «Комп’ютерна лінгвістика»

для студентів спеціальності 7.02030303 «Прикладна лінгвістика»

денної та заочної форм навчання

Затверджено на засіданні кафедри

«Системи автоматизованого проектування»

Протокол № 16 від 17.05.2011 р.

Затверджено на засіданні методичної ради ІКНІ

Протокол № 9-10/11 від 18.05.2011 р.

Зареєстровано в НМУ НУ «ЛП»

№ 3519 від 2.06.2011

Львів-2011

ОСНОВИ ПРОГРАМУВАННЯ НА МОВІ PYTHON. КОНТРОЛЬНІ СТРУКТУРИ. Методичні вказівки до лабораторної роботи № 3 з дисципліни «Комп’ютерна лінгвістика» для студентів спеціальності 7.02030303 денної та заочної форм навчання/Укл. А.Б.Романюк, І.Ю Юрчак. - Львів: Національний університет «Львівська політехніка», 2011. – 24 с.

Укладачі:

Романюк А. Б., канд. техн. наук, доцент

Юрчак І.Ю., канд. техн. наук, доцент

Відповідальна за випуск:

Юрчак І.Ю., канд. техн. наук, доцент

Рецензент:

Теслюк В.М., д.т.н., професор кафедри САПР

Мета робота

Вивчення основ програмування на мові Python.

Короткі теоретичні відомості

1. Обробка послідовностей

1.1. Оператор for

Оператор for в Python трохи відрізняється від аналогічного оператора в C або Pascal. Замість незмінного проходження по арифметичній прогресії з чисел (як в Pascal) або надання користувачеві можливості вказати крок ітерації та умову останову (як в С), оператор for в Python проходить по всіх елементах будь-якої послідовності (списку або стрічки) в тому порядку, в якому вони в ній розташовуються.

Оператор for в Пітоні має вигляд:

for певна_змінна in певний_діапазон

Блок коду після заголовка виконується, поки певна_змінна належить до певного_діапазону. Цей діапазон може бути списком, числовою послідовністю, масивом любих значень:

>>> phrase=['red', 'green', 'blue', 'yellow', 'black', 'white']

>>> for word in phrase:

print len(word),word

3 red

5 green

4 blue

6 yellow

5 black

5 white

>>>

Ця програма виконує оператор print len(word), word для кожного елемента зі списку. Цей процес називається ітераціями. Наведемо інший приклад for циклу.

>>> total=0

>>> for w in phrase:

total+=len(w)

>>> total/len(phrase)

4

>>>

В цій програмі визначається відношення між загальною кількість символів в елементах списку та кількістю елементів списку. Для збільшення значення змінної або додавання до  рядка використовується +=, а  для зменшення -=.

Можна написати for цикл і для роботи з символами стрічки

>>> sent='red green blue yellow black white'

>>> for char in sent:

print char,

r e d g r e e n b l u e y e l l o w b l a c k w h i t e

>>>

Для виведення результату в один рядок, наприкінці оператора print змінна слід додати кому «,».

1.2 Форматування виведення інформації

При використанні оператора print можна передбачати певне форматування. Без форматування одержуємо наступне:

>>> for word in phrase:

print word, '(', len(word),'),',

red ( 3 ), green ( 5 ), blue ( 4 ), yellow ( 6 ), black ( 5 ), white ( 5 ),

>>>

При виводі з форматуванням одержимо.

>>> for word in phrase:

print "%s (%d)," % (word,len(word)),

red (3), green (5), blue (4), yellow (6), black (5), white (5),

>>>

В цьому прикладі команда print має наступний синтаксис: format % values.

Format це частина яка містить специфікатори формату такі як:

%d

Відповідна змінна може бути десятковим числом або конвертована в десяткове число

%f

Відповідна змінна може бути числом з точкою або конвертована у Число з точкою

%s

Відповідна змінна є стрічкою або може бути конвертована в стрічку

%c

Відповідна змінна є символом

Values це частина де записаний кортеж значень для якого визначені специфікатори формату.

Наступний приклад демонструє складніший випадок форматування.

>>> for word in phrase:

print "Word=%s\nIndex = %s\n******" % (word,phrase.index(word))

Word=red

Index = 0

******

Word=green

Index = 1

******

Word=blue

Index = 2

******

Word=yellow

Index = 3

******

Word=black

Index = 4

******

Word=white

Index = 5

******

>>>

Символ '\n' – це початок нового рядка. Символ '\t' – табуляція.

1.3 Конвертування між стрічками і списками.

Часто виникає потреба конвертації стрічки, яка містить послідовність слів записаних через побіл в список та списку в стрічку. Наступний цикл перетворить список в стрічку, а пробіл додаємо в циклі перед кожним зі слів.

>>> str=''

>>> for word in phrase:

str+=' '+word

>>> str

' red green blue yellow black white'

>>>

Зворотну операцію для перетворення стрічки в список можна звичайно здійснити побудувавши цикл, але доцільніше використати метод split() який розділить стрічку за символами пробілу, або можна ввести інший символ за яким буде здійснюватися розділення.

>>> str.split(' ')

['', 'red', 'green', 'blue', 'yellow', 'black', 'white']

>>> str.split('e')

[' r', 'd gr', '', 'n blu', ' y', 'llow black whit', '']

>>>

Модуль string

Модуль string є корисним модулем стандартних дистрибутивів мови Python. Щоб скористатися функціями модуля його потрібно імпортувати:

>>> import string

Тут зібрані функції для пошуку підстрічки у стрічці, заміни і тому подібне. Наприклад:

>>> s = "mary had a little lamb" >>> string.capwords(s) 'Mary Had A Little Lamb' >>> string.replace(s, 'little', 'fercious') 'mary had а ferocious lamb'

Існує багато інших функції, ви можете знайти подробиці в керівництві по мові Python.

>>> help(string)

Help on module string:

NAME

string - A collection of string operations (most are no longer used).

FILE

c:\python26\lib\string.py

DESCRIPTION

Warning: most of the code you see here isn't normally used nowadays.

Beginning with Python 1.6, many of these functions are implemented as

methods on the standard string object. They used to be implemented by

a built-in module called strop, but strop is now obsolete itself.

Крім того, ви можете користуватися функціями string для отримання інформації про такі атрибути рядка, як довжина або позиції підстрічки, наприклад:

>>> import string >>> s = "mary had а little lamb" >>> string.find(s, 'had') 5 >>> string.count(s, 'a') 4

І нарешті, string надає дуже характерну для мови Python особливість. Пара .split() і .join() забезпечує швидкий спосіб перетворення стрічок в списки і навпаки, що ви знайдете вельми корисним. Реалізується це просто:

>>> import string >>> s = "mary had а little lamb" >>> L = string.split(s) >>> L ['mary', 'had', 'a', 'little', 'lamb']

>>> string.join(L, "-") 'mary-had-a-little-lamb'

Еквівалентним є також і наступний запис

>>> from string import join

>>> join(L)

'mary had a little lamb'

>>>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]