PythonBoost - сообщество питонистов
12.4K subscribers
292 photos
6 videos
542 links
Лучший Python телеграм канал для новичков.

Цель: подготовка студентов, начинающих питонистов к нахождению первой работы.

@anothertechrock

РКН: https://kurl.ru/Jhcwp
加入频道
Задача для новичков.

Напишите функцию isPerfectSquare(), которая определяет, является ли число поданное в качестве аргумента, полным квадратом другого числа. В это случае функция должна возвращать True, в противном случае False. Пользоваться встроенными функциями типа sqrt(), pow(), **0.5 запрещается.

Примры работы данной функции:

isPerfectSquare(16) --> True
isPerfectSquare(20) --> False
isPerfectSquare(121) --> True

Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.

#pythonзадача #coбес
Ответ к предыдущей задаче для новичков.

def isPerfectSquare(num):
if num < 1:
return False
left, right = 1, num
while left <= right:
mid = left + (right - left) // 2
square = mid * mid
if square == num:
return True
elif square < num:
left = mid + 1
else:
right = mid - 1
return False

#pythonзадача #coбес
Задача для новичков.

Напишите функцию getSum(), которая принимает два целых неотрицательных числа a и b, а возвращает их сумму. При этом пользоваться операторами + и - запрещается.

Примеры работы данной функции:

getSum(42, 5) --> 47
getSum(3, 7) --> 10
getSum(4, 0) --> 4

Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.

#pythonзадача #coбес
Ответ к предыдущей задаче для новичков.

def getSum(a, b):
while b != 0:
carry = a & b
a = a ^ b
b = carry << 1
return a

Данное решение не работает с отрицательными числами (по условиям задачи этого и не требовалось). Подумайте, как это можно исправить.

#pythonзадача #coбес
Статья дня. Тернарный оператор в Python

Из этого полного руководства вы узнаете, что собой представляют тернарные операторы в Python. Также мы на примерах разберем, когда и зачем их использовать.

Читать статью

#читать
Видео дня. Делаем безопасную перезапись файла с использованием contextlib

Безопасную перезапись файла можно реализовать при помощи менеджера контекста на базе класса. В этом видео мы решим ту же задачу, используя декоратор contextmanager из модуля contextlib стандартной библиотеки.

Ссылка на YouTube

#видео
Тест. Работа с функциями в Python

Функции — очень удобная конструкция, которая существует почти во всех языках программирования, включая Python. Но, используя функции, можно запутаться или допустить ошибку.

Проверьте, насколько хорошо вы умеете писать (и читать!) функции: пройдите тест из 10 вопросов!
Если вы хотели попробовать попасть в айти, но не знаете, как подступиться — попробуйте начать с тестирования.

🐞 Собеседование тестировщика — канал для тех, кто готовится к собеседования по тестированию.

Что там публикуется:
— вопросы с собесов и ответы на них;
— тесты для проверки ваших знаний;
— обучающие книги;

Канал рассчитан на начинающих и поможет разобраться в основах и лучших практиках QA, подготовит вас к прохождению собеседований.

Подписывайтесь: @qasobes
Статья дня. Поиск текста в нескольких файлах на Python

В этой статье мы будем искать текст или строку в нескольких файлах. План действий следующий: определяем директорию, в которой нужно искать, получаем список всех файлов в этой директории (в том числе во вложенных папках), а затем открываем каждый файл и ищем в нем нужный текст.

Читать статью

#читать
Задача для новичков.

Напишите функцию canConstruct(), которая принимает две строки, s и t. Данная функция должна возвращать True, если первую строку s можно составить из букв, которые входят во вторую строку t. Причем каждую букву из строки t можно использовать только один раз.

Примеры работы данной функции:

canConstruct("aa", "ab") --> False
canConstruct("aa", "aab") --> True

Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.

#pythonзадача #coбес
Ответ к предыдущей задаче для новичков.

from collections import Counter

def canConstruct(s, t):
char_count_s = Counter(s)
char_count_t = Counter(t)

for char, count in char_count_s.items():
if count > char_count_t[char]:
return False

return True

Подумайте, как эту задачу можно решить без использования библиотеки collections.

#pythonзадача #coбес
Задача для новичков.

Напишите функцию lexicalOrder(), которая принимает на вход целое число n, а возвращает список чисел в диапазоне от 1 до n, отсортированный в лексикографическом порядке. Программа должна работать за линейное время (O(n)), а расход пямяти O(1).

Приверы работы данной функции:

lexicalOrder(13) --> [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9]
lexicalOrder(2) --> [1, 2]

Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.

#pythonзадача #coбес
Ответ к предыдущей задаче для новичков.

def lexicalOrder(n: int) -> list[int]:
return [int(i) for i in sorted(str(i) for i in range(1, n + 1))]

#pythonзадача #coбес
Статья дня. Ключевое слово yield в Python

Функция, использующая ключевое слово yield, является функцией-генератором. Генераторы полезны, когда вам нужно итерировать значения, не сохраняя их в памяти. В этом руководстве мы разберем работу ключевого слова yield на высоком уровне, без технических подробностей.

Читать статью

#читать
Тест. Множества (уровень Junior)

Множество в Python — «контейнер», содержащий не повторяющиеся элементы в случайном порядке.

Проверьте, насколько хорошо вы знаете эту тему: пройдите тест по множествам из 10 вопросов!
Задача для новичков.

Напишите функцию countSegments(), которая принимает на вход строку, а возвращает количество сегментов в данной строке. Под сегментами подразумеваются последовательности символов без пробела.

Пример работы данной функции:

countSegments('Напишите функцию countSegments()') --> 3
countSegments('Под сегментами подразумеваются последовательности') --> 4

Присылайте ваше решения в комментарии к этому посту. Решение - сегодня вечером.

#pythonзадача #coбес
Ответ к предыдущей задаче для новичков.

def countSegments(s: str) -> int:
return len(s.split())

#pythonзадача #coбес