Завдання на Python: "Розділення рядка"
Пропонуємо поринути у вирішення невеликого завдання з мови Python. Завдання нескладне та призначене щоб допомогти розвинути навички роботи з текстом та покращити логічне мислення.
У вас є рядок, що складається з слів, розділених пробілами. Завдання полягає в тому, щоб розділити цей рядок на слова і визначити, скільки слів містять хоча б одну велику літеру.
Умови:
- Вхідний рядок містить тільки літери латинського алфавіту (як великі, так і малі) і пробіли.
- Пробіли можуть бути тільки між словами, на початку і в кінці рядка пробілів немає.
- Якщо в рядку немає слів з великими літерами, повернути 0.
Приклад:
# Вхідний рядок
s = "Hello world this Is a Test"
# Очікуваний результат
3Пояснення:
- У рядку "Hello world this Is a Test" слова "Hello", "Is" і "Test" містять великі літери, відповідно, результат буде 3.
Додаткове завдання (за бажанням):
Реалізуйте функцію, яка приймає рядок і повертає кількість слів, що містять хоча б одну велику літеру.
def count_uppercase_words(s: str) -> int:
# Ваш код тутРішення завдання
Рішення цієї задачі можна описати наступним чином:
- Спочатку необхідно розділити вхідний рядок на окремі слова. Для цього можна використовувати метод
split(), який за замовчуванням розділяє рядок по пробілах і повертає список слів. - Створіть змінну-лічильник, яка буде відслідковувати кількість слів, що містять хоча б одну велику літеру.
- Для кожного слова перевірте, чи є в ньому хоча б одна велика літера. Це можна зробити, перевіряючи, чи відповідає хоча б один символ у слові умові
isupper(), що означає "велика літера". - Пройдіться по кожному слову зі списку, використовуючи цикл.
- Якщо в слові знайдена велика літера, збільшіть лічильник на 1.
- Після завершення циклу поверніть значення лічильника — це і буде кількість слів з великими літерами.
Приклад рішення з кодом:
def count_uppercase_words(s: str) -> int:
# Розділяємо рядок на слова
words = s.split()
# Ініціалізуємо лічильник
count = 0
# Перевіряємо кожне слово на наявність великої літери
for word in words:
if any(char.isupper() for char in word):
count += 1
# Повертаємо результат
return countБільше цікавих новин
Як вибрати найменшу кількість монет для здавання?
Задача с колодой карт в темноте
Задача с двумя веревками
Как угадать число от 0 до 100 или математический фокус