Задачи на Python

Содержание
Введение
Написать часть слов в предложении наоборот
Похожие статьи

Введение

Написать слова длиннее четырёх символов наоборот

Написать функцию, которая принимает строку - обычное предложение, а возвращает то же предложение, но все слова длиной от пяти букв написаны наоборот

Решение

С помощью абстракции списка

def spin_words(sentence): ns = sentence.split(" ") return " ".join([word[::-1] if len(word) > 4 else word for word in ns])

Без абстракции списка

def spin_words2(sentence): ns = sentence.split(" ") new_list = [] for word in ns: if len(word) > 4: new_list.append(word[::-1]) else: new_list.append(word) return " ".join(new_list)

С помощью лямбда функции и функции map()

def spin_words3(sentence): ns = sentence.split(" ") return " ".join(map(lambda w: w[::-1] if (len(w) > 4) else w, ns))

Сумма нечётных чисел в строке

Вычислить сумму нечётных чисел в строке треугольника.

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29

Пример: сумма во второй строке = 3 + 5 = 8.

Решение

Сперва можно решить задачу "в лоб"

def row_sum_odd_numbers(n): solved = False i = 0 value = 1 s = 0 while not solved: i += 1 l = [] for j in range(i): l.append(value) value +=2 print(l) if i == n: for num in l: s += num print("sum is: ", s) return s solved = True if __name__ == "__main__": row_sum_odd_numbers(3)

Если внимательно присмотреться к треугольнику, видно, что сумма чисел в строке это номер строки в кубе

def row_sum_odd_numbers(n): return n**3

Следующий полный квадрат

Вычислить следующий полный квадрат. Функция получает число, если оно является полным квадратом - нужно вернуть следующий. Если нет, вернуть -1

Пример: 9 -> 16, 121 -> 144

Решение

import math def find_next_square(sq): root = math.sqrt(sq) if root.is_integer(): return (root + 1)**2 else: return -1

Рост населения города

Задаётся начальное население, естественный прирост в год в процентах, прирост за счёт переехавших, желаемое население.

Вычислить, за сколько лет население достигнет желаемого.

Пример: 1000, 0, 50, 1100 -> 2 года

Решение

Главное не забывать округлять вниз при вычислении процентов.

import math def nb_year(p0, percent, aug, p): n = 0 while p0 < p: n += 1 p0 = math.floor(p0 * (1 + percent/100)) + aug print("p0: ",p0) print(p) print(n) return n if __name__ == "__main__": # nb_year(100, 3, 20, 1500) nb_year(1000, 2, 50, 1214)

Article author: Andrei Olegovich

Похожие статьи
Интерактивный режим
dict, list, str …
\: перенос строки
if, elif, else
Циклы
Функции
try except
Пакеты
ООП
Опеределить тип переменной Python
Работа с REST API на Python
Файлы: записать, прочитать…
Работа с базами данных
datetime: Дата и время в Python
json.dumps
Сложности при работе с Python
Фреймворки: Django, Flask
socket: Python Sockets
Виртуальное окружение
subprocess: bash команды из Python
multiprocessing: несколько процессов одновременно
psutil: cистемные ресурсы
sys.argv: аргументы командной строки
PyCharm: IDE
pydantic: валидация данных
paramiko: SSH из Python
logging: запись в лог
Обучение Python
Banner image

Search this site

Subscribe to Telegram channel @aofeed to follow new articles and updates to old ones

Go to channel

@aofeed

Ask a question in the Telegram group

@aofeedchat

Contacts and cooperation:
I recommend our hosting beget.ru
Write to info@urn.su, info@aredel.com if you:
1. Want to write an article for our site or translate an article into your native language.
2. Want to place thematically relevant ads on the site.
3. Ads on my site pass maximum censorship. If you see an ad block unsuitable for school-age children, shocking or misleading - please contact us by e-mail
4. Found a mistake, inaccuracy, bug, etc. on the site. ... .......
5. Articles can be shared on social media by clicking a network icon: