- •1.2 Форматування виведення інформації
- •1.3 Конвертування між стрічками і списками.
- •Модуль string
- •2. Засоби керування логікою.
- •2.1 Умовні вирази
- •Корпус nltk.Book
- •2.2 Конструкція list comprehension
- •Виконати самостійно:
- •2.3. Обробка кожного елемента:
- •3. Умовна інструкція
- •3.1. Структура умовної інструкції
- •3.2 Умови
- •3.3. Неповна інструкція галуження
- •3.4. Інструкція множинного галуження
- •3.5. Вкладені умовні інструкції
- •4. Цикл з умовою
- •4.2. Ітерації і If твердження.
- •Модуль random
- •Додаток а
- •Функції для роботи зі списками
- •Порядок виконання роботи
- •Варіанти завдань
- •Література
- •Інтернет посилання
- •Методичні вказівки
4.2. Ітерації і If твердження.
Нехай маємо стрічку і необхідно написати програму, яка виведе на екран всі слова, які мають закінчення «ow». Програма буде складатися з наступних частин. Спочатку розділимо стрічку на список слів.
>>> sentence='how now brown cow'
>>> words=sentence.split()
>>> words
['how', 'now', 'brown', 'cow']
>>>
Тепер потрібно послідовно перебрати всі слова у списку . Напишемо такий цикл , за допомогою якого виводимо на екран всі слова .
>>> for word in words:
print word
how
now
brown
cow
>>>
Далі треба вивести на екран тільки необхідні нам слова із закінченням «ow». Попередньо можна перевірити, які саме слова необхідно вивести на екран.
>>> 'how'.endswith('ow')
True
>>> 'brown'.endswith('ow')
False
>>>
Тепер все готове для написання If твердження у For циклі.
>>> sentence='how now brown cow'
>>> words=sentence.split()
>>> for word in words:
if word.endswith('ow'):
print word
how
now
cow
>>>
На завершення розглянемо наступний приклад:
>>> tricky = sorted([w for w in set(text2) if 'cie' in w or 'cei' in w])
>>> for word in tricky:
... print word,
ancient ceiling conceit conceited conceive conscience
conscientious conscientiously deceitful deceive ...
>>>
Спочатку був створений список куди увійшли слова з буквосполученнями «cie» та «cei». Елементи цього списку оброблялися в циклі і роздруковувалися. Зауважимо, що кома в кінці оператора print вказує на те щоб результати виводилися в стрічку.
Модуль random
В Пітоні існує вбудований модуль, який дозволяє генерувати псевдовипадкові числа. З математичної точки зору вони не є істинно випадковими, але для наших цілей цілком підійдуть.
Модуль random містить функцію random, яка повертає дійсне число в діапазоні від 0.0 до 1.0. Кожного разу при виклику функції random отримуємо число з довгого ряду. Щоб подивитися, як вона працює, запустимо наступну програму:
>>> import random
>>> for i in range(10):
x = random.random()
print x,
0.229251402651 0.682351257761 0.294930909369 0.373334992539 0.441086385331 0.369412011226 0.210202876242 0.646238551283 0.662405582996 0.69126828748
>>>
Щоб отримати випадкове число між 0.0 і верхньою межею high, просто помножте x на high.
>>> V=5
>>> for i in range(10):
x = random.random()
print V*x,
4.69129913244 0.208588299515 0.362363052128 0.400794515189 1.85098407649 3.33756302701 4.63164988677 4.01174854489 2.56470115549 3.65997263093
>>>
Додаток а
Сьогодні ми вивчили:
Використання операторів if та for.
Побудову контрольних структур та умовних виразів.
Функції для роботи зі списками
s.lower() |
Перетворення всіх символів в s на малі |
s.upper() |
Перетворення всіх символів в s на великі |
s.title() |
Перетворення всіх перших символів в s на великі |
Порядок виконання роботи
1. Ознайомитися з теоретичними відомостями.
2. Виконати приклади, які використовуються в теоретичних відомостях.
3. Виконати наступні вправи.
Створіть змінну sentence і присвойте їй значення ‘she sells sea shells by the sea shore’ та напишіть фрагмент програми для виведення на екран всіх слів які починаються з ‘sh’.
Створіть змінну sentence і присвойте їй значення ‘she sells sea shells by the sea shore’ та напишіть фрагмент програми для виведення на екран всіх сліва, довжина яких більша ніж 4 символи.
Створіть змінну sentence і присвойте їй значення ‘she sells sea shells by the sea shore’ та напишіть фрагмент програми, яка генерує нову стрічку додаючи ‘like’ перед кожним зі слів , яке починається з ‘se’.
Напишіть програму, яка видаляє всі голосні зі стрічки, яка відповідає імені, по батькові та прізвищу студента. Програма повинна здійснювати наступну послідовність дій: створення початкової стрічки; створення стрічки, у якій буде зберігатися результат; for цикл для обробки стрічки символ за символом і запису неголосних символів в результуючу стрічку.
Пуста стрічка і пустий список в частині умов if виразу призводить до помилки. Напишіть програму для демонстрації таких випадків при використанні if тверджень.
Перегляньте результати виконання умовних виразів: ’row’ in ’brown’ та ’row’ in [’ brown’, ’cow’]. Напишіть програму для перевірки наявності в стрічці sent=’ ’colorless green ideas sleep furiously’ окремих слів та підстрічок.
Виконати наступні приклади і пояснити чому отримані різні результати (різні значення змінних)
sorted(set([w.lower() for w in text1]))
sorted([w.lower() for w in set(text1)])
Виконати наступні приклади і пояснити різницю між ними
w.isupper()
not w.islower()
Знайдіть в тексті № 5 всі слова довжина яких дорівнює 4 і побудуйте для них частотний розподіл.
Використовуючи оператори if та for виведіть на екран всі слова з тексту № 6 які написані з великої літери.
Напишіть вираз для знаходження в тексті №6 всіх слів які відповідають наступним вимогам: закінчуються на ize; містять літеру z; містять послідовність літер pt; написані з великої літери . Результат представити, як список слів.
Використайте вираз sum([len(w) for w in text1]) для знаходження середньої довжини слів в тексті.
Перевірте виконання виразу set(sent3) < set(text1). Змініть аргументи функції. Результати поясніть.
14-18. Написати програму використовуючи list comprehension та ту саму програму не використовуючи list comprehension. Програма повинна виконувати:
Знайти в тексті1 всі слова які складаються з 5 літер, і починаються з букви "t".
Знайти в тексті 2 всі слова які складаються з більше ніж 5 літер, і менше ніж з 10 літер починаються з букви "t".
Знайти в тексті 3 всі слова які починаються з великої літери і складаються з 7 літер.
Знайти в тексті 4 всі слова які починаються з літери яка відповідає першій літері імені студента і завершуються літерою яка відповідає останній літері імені студента.
Знайти в тексті 5 всі слова які складаються виключно з літер та, і містять буквосполучення "to" .
19-24. В стрічці "Love me tender, love me sweet, never let me go." Написати програму для знаходження:
Слова з першої літери слова, з якого починається речення.
Розділові знаки.
Кількості вживання слова "love".
Слова, що мають довжину більшу за 4 букви.
Кількості вживання слова "me".
Слів які мають довжину більше ніж 3 букви починаються на "l" та закінчуються на "e".
4. Підготувати і оформити звіт.