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

Виконати самостійно:

Виконайте наступні приклади і спробуйте пояснити, що відбувається в кожному з них:

>>> sorted([w for w in set(text7) if '-' in w and 'index' in w])

>>> sorted([wd for wd in set(text3) if wd.istitle() and len(wd) > 10])

>>> sorted([w for w in set(sent7) if not w.islower()])

>>> sorted([t for t in set(text2) if 'cie' in t or 'cei' in t])

2.3. Обробка кожного елемента:

Розглянемо наступні приклади:

>>> [len(w) for w in text1]

[1, 4, 4, 2, 6, 8, 4, 1, 9, 1, 1, 8, 2, 1, 4, 11, 5, 2, 1, 7, 6, 1, 3, 4, 5, 2, ...]

>>> [w.upper() for w in text1]

['[', 'MOBY', 'DICK', 'BY', 'HERMAN', 'MELVILLE', '1851', ']', 'ETYMOLOGY', '.', ...]

>>>

В даних прикладах застосовані наступні вирази: [f(w) for ...] or [w.f() for ...], де f це функція, яка або визначає довжину слова або перетворює малі літери на великі. В кожному з цих прикладів здійснюється обробка кожного елемента списку. Змінній W послідовно присвоююся значення слів з тексту і над цією змінною виконуються передбачені програмою дії.

Такий запис [f(w) for ...] називається "list comprehension" (включення списків або спискові висловлювання) і є важливим для написання та розуміння програм на Python.

Застосуємо включення списків для підрахунку слів в тексті:

>>> len(text1)

260819

>>> len(set(text1))

19317

>>> len(set([word.lower() for word in text1]))

17231

>>>

В даному прикладі ми уникнули подвійного підрахунку слів з великої літери (This and this), що зменшило кількість приблизно на 2000 слів. Подібним способом можна уникнути підрахунку розділових знаків та чисел.

>>> len(set([word.lower() for word in text1 if word.isalpha()]))

16948

>>>

3. Умовна інструкція

Умовна інструкція (інструкція розгалуження) — це розвилка на шляху виконання програми. Програма може піти по одному шляху, а може і по іншому. Шлях вибирається в залежності від значення змінних в момент перевірки умови.

Наприклад, наступна програма друкує на екран найбільше з двох введених чисел:

>>> x=2

>>> y=5

>>> if x>y: # Галуження залежно від умови x>y

print x # Надрукуємо x якщо умова істинне

else:

print y # Надрукуємо у якщо умова помилкова

5

>>>

Ця програма перевіряє, яке з двох введених чисел більше (x>y). Якщо ця умова істинна, то друкується значення x, інакше значення у. Таким чином, дана програма надрукує найбільше з двох чисел.

У загальному випадку синтаксис інструкції галуження такий:

if умова:

інструкція11

...

інструкція1n

else:

інструкція21

...

инструкция2n

Працює інструкція галуження так. Спочатку перевіряється умова. Якщо вона істинне, то виконується та послідовність інструкцій, яка знаходиться між ключовими словами if і else (називатимемо цю послідовність інструкцій if-блоком). Якщо ж умова помилкова, то замість цього блоку інструкцій виконується та послідовність, яка слідує після ключового слова else (else-блок). Після завершення виконання if-блоку або else-блоку, тобто незалежно від умови, починають виконуватися інструкції, наступні після else-блоку (у розглянутому прикладі це остання інструкція print).

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