Python_na_Prostom
Open in Telegram
Python_na_Prostom - канал для Python-разработчиков 🐍. Получайте полезные советы и рекомендации по передовым методам программирования на Python Пригласить друга: @Python_na_Prostom
Show more808
Subscribers
-224 hours
-307 days
-9830 days
Posts Archive
Трансляция в сообществе “Блог жизни студента ФЦТИКБ РГУ СОЦТЕХ” -
Первый день в университете: https://vk.com/club224284507
Сегодня у меня для вас особенный пост. Я планирую провести прямую трансляцию своего первого дня в университете! Да-да, вы не ослышались. В этом блоге я поделюсь с вами всеми эмоциями и впечатлениями от моего старта обучения в РГУ СОЦТЕХ на факультете цифровых технологий и кибербезопасности.Утро: Начало нового пути!
Мой день начнется рано утром, когда я отправлюсь из дома на такси. Расскажу вам обо всех своих переживаниях и волнениях по дороге к университету. Как говорится, первый блин комом, но надеюсь, что это не про мой первый день!Встреча с однокурсниками!
По приезду на кампус предстоит знакомство с новыми однокурсниками. Мы все соберемся перед главным зданием университета и будем ждать нашего куратора. Обязательно поделюсь своими первыми впечатлениями о людях, которых мне предстоит видеть каждый день на протяжении следующих нескольких лет.Первые лекции!
Первая пара — момент истины! Нас познакомят с преподавателями и расскажут о программе курса. Я буду вести прямую трансляцию прямо из аудитории (если разрешат) или запишу видео после занятий, чтобы вы могли почувствовать атмосферу учебного процесса вместе со мной.Ориентировочная прогулка по кампусу.
После лекций нас ожидает экскурсия по университетскому городку — покажу вам всё самое интересное: лаборатории, библиотеку и места для отдыха студентов.Конец дня: Первые итоги
В конце дня подведем итоги: мои мысли и ощущения после первого учебного дня. Как справиться с волнением? Что ожидает меня впереди? На эти вопросы попытаемся найти ответы вместе.Не забудьте подключаться к моей трансляции в нашем сообществе “Блог жизни студента ФЦТИКБ РГУ СОЦТЕХ” https://vk.com/club224284507 Будет интересно! #новостиизжизни
Ещё 3 полезных алгоритма!
1. Алгоритм Дейкстры: найди путь к успеху 🚀
Представьте себе лабиринт, и вам нужно найти самый короткий путь к выходу. Ваше приложение запуталось в графах? Не беда! Алгоритм Дейкстры – это ваш GPS в мире кодинга. Он поможет найти кратчайший путь в графе, будь то карта, маршрутизация сети или даже ваша жизненная цель (хотя, может, с этим всё-таки лучше к коучу?).
import heapq
def dijkstra(graph, start):
queue = [(0, start)]
distances = {vertex: float('infinity') for vertex in graph}
distances[start] = 0
while queue:
current_distance, current_vertex = heapq.heappop(queue)
if current_distance > distances[current_vertex]:
continue
for neighbor, weight in graph[current_vertex].items():
distance = current_distance + weight
if distance < distances[neighbor]:
distances[neighbor] = distance
heapq.heappush(queue, (distance, neighbor))
return distances
# Пример использования:
graph = {
'A': {'B': 1, 'C': 4},
'B': {'A': 1, 'C': 2, 'D': 5},
'C': {'A': 4, 'B': 2, 'D': 1},
'D': {'B': 5, 'C': 1}
}
print(dijkstra(graph, 'A')) # {'A': 0, 'B': 1, 'C': 3, 'D': 4}
Теперь у вас есть карта на пути к успеху! Главное – не забудьте свернуть туда, куда нужно. 😅
2. KMP: когда простое совпадение – это не просто! 🔍
Когда вам нужно найти подстроку в строке, и сделать это так, чтобы ваш код не знал усталости, на помощь приходит алгоритм Кнута-Морриса-Пратта (KMP). Он работает быстро, умно и никогда не пропускает совпадения – идеальный помощник для поиска текста. Если бы он был человеком, его звали бы Шерлок!🕵️♂️
def kmp_search(text, pattern):
def compute_lps(pattern):
lps = [0] * len(pattern)
length = 0
i = 1
while i < len(pattern):
if pattern[i] == pattern[length]:
length += 1
lps[i] = length
i += 1
else:
if length != 0:
length = lps[length - 1]
else:
lps[i] = 0
i += 1
return lps
lps = compute_lps(pattern)
i = 0
j = 0
while i < len(text):
if pattern[j] == text[i]:
i += 1
j += 1
if j == len(pattern):
print(f"Pattern found at index {i - j}")
j = lps[j - 1]
elif i < len(text) and pattern[j] != text[i]:
if j != 0:
j = lps[j - 1]
else:
i += 1
# Пример использования:
text = "abxabcabcaby"
pattern = "abcaby"
kmp_search(text, pattern) # Найдено вхождение на индексе 6
С таким поисковиком вы точно не упустите важную информацию! А значит, ваше приложение будет находить нужные данные так же ловко, как вы находите отговорки на работу. 😁
3. Быстрая сортировка (Quick Sort): упорядочьте всё, что только можно! 🎯
Если ваш массив данных похож на хаос в голове после ночного кодинга, не переживайте! Быстрая сортировка – это как мощный алгоритмический супергерой, который приходит на помощь и наводит порядок. Всего несколько рекурсий, и ваш список будет сиять идеальной упорядоченностью. А что, если бы всё в жизни можно было так легко упорядочить?
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quick_sort(left) + middle + quick_sort(right)
# Пример использования:
arr = [3, 6, 8, 10, 1, 2, 1]
print(quick_sort(arr)) # [1, 1, 2, 3, 6, 8, 10]
С таким алгоритмом ваш код будет не только работать, но и выглядеть прекрасно! Ведь порядок – это залог успеха. 😉
#Алгоритмы