1. Использование встроенной функции `max`:
max_element = max(array)
Это самый простой и быстрый способ, поскольку
max оптимизирован и написан на C.2. Использование цикла `for`:
max_element = array[0]
for element in array:
if element > max_element:
max_element = element
Это более явный способ, но он менее эффективен, чем встроенные функции.
3. Использование функции `reduce` из модуля `functools`:
from functools import reduce
max_element = reduce(lambda x, y: x if x > y else y, array)
Этот способ также менее эффективен, чем встроенная функция
max, но может быть полезен в определенных контекстах.4. Использование библиотеки `numpy`:
import numpy as np
max_element = np.max(array)
Если массив является объектом
numpy, этот метод будет очень быстрым благодаря оптимизациям библиотеки.5. Использование многопоточности:
Для огромных массивов можно разбить задачу на части и выполнить поиск максимума параллельно. Пример с использованием
concurrent.futures: from concurrent.futures import ThreadPoolExecutor, as_completed
def find_max(sub_array):
return max(sub_array)
def parallel_max(array, num_threads):
chunk_size = len(array) // num_threads
futures = []
with ThreadPoolExecutor(max_workers=num_threads) as executor:
for i in range(num_threads):
sub_array = array[i*chunk_size:(i+1)*chunk_size]
futures.append(executor.submit(find_max, sub_array))
results = [future.result() for future in as_completed(futures)]
return max(results)
max_element = parallel_max(array, 4) # Например, с 4 потоками
Это может ускорить процесс для очень больших массивов на многопроцессорных системах.
Самый быстрый и рекомендуемый способ — это использование встроенной функции
max для стандартных массивов Python, либо функции np.max для массивов numpy, так как они написаны на C и максимально оптимизированы для производительности.@debugblog
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2🔥1
Покоряем геймдев (снова) 😐
Как вы знаете, я пытаюсь разобраться в разработке игр, и на этом пути решил сделать что-то максимально простое, но увлекательного. Выбор пал на "Пинг-Понг" — игру, в которую многие из нас играли.
Инициализация Pygame:
Важно было настроить основное окно и задать его размеры. Решил сделать его 800x600 пикселей — идеальный размер для классического "Пинг-Понга". Определил размеры и начальные позиции для ракеток и мяча. Каждая ракетка управляется своей клавишей — W и S для левой, и стрелки для правой. Настроил движение мяча и ракеток, а также проверку столкновений. Это самая важная часть кода! Когда мяч сталкивается с ракеткой, он меняет направление.
👩💻 Код доступен по ссылке
Сейчас модно зазывать людей в айти под видом работы в геймдеве, но это все можно изучать самостоятельно👨💻 Как раз можете попробовать создать какой-то такой простой проект. Или нужен подробный разбор библиотеки pygame?
@debugblog
Как вы знаете, я пытаюсь разобраться в разработке игр, и на этом пути решил сделать что-то максимально простое, но увлекательного. Выбор пал на "Пинг-Понг" — игру, в которую многие из нас играли.
Инициализация Pygame:
Важно было настроить основное окно и задать его размеры. Решил сделать его 800x600 пикселей — идеальный размер для классического "Пинг-Понга". Определил размеры и начальные позиции для ракеток и мяча. Каждая ракетка управляется своей клавишей — W и S для левой, и стрелки для правой. Настроил движение мяча и ракеток, а также проверку столкновений. Это самая важная часть кода! Когда мяч сталкивается с ракеткой, он меняет направление.
Сейчас модно зазывать людей в айти под видом работы в геймдеве, но это все можно изучать самостоятельно
@debugblog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2❤1
Как найти медиану массива чисел на Python 👩💻
Медиана — это такое значение, которое делит массив на две равные части. Для нахождения медианы в массиве чисел существует несколько способов. Рассмотрим несколько из них.
1. Использование библиотеки
Это самый простой и быстрый способ для небольших массивов, поскольку функция
2. Реализация вручную с сортировкой:
Этот способ полезен, чтобы лучше понять, как вычисляется медиана. Он также дает возможность обработки нестандартных случаев.
3. Использование библиотеки
4. Нахождение медианы для больших массивов (использование квантилей):
Этот метод полезен для очень больших массивов, так как
5. Использование библиотеки
Самый быстрый и простой способ — использовать функции
@debugblog
Медиана — это такое значение, которое делит массив на две равные части. Для нахождения медианы в массиве чисел существует несколько способов. Рассмотрим несколько из них.
1. Использование библиотеки
statistics: import statistics
array = [3, 5, 1, 4, 2]
median = statistics.median(array)
Это самый простой и быстрый способ для небольших массивов, поскольку функция
median из модуля statistics написана на C и оптимизирована для работы с числами.2. Реализация вручную с сортировкой:
array = [3, 5, 1, 4, 2]
sorted_array = sorted(array)
n = len(sorted_array)
mid = n // 2
if n % 2 == 0:
median = (sorted_array[mid - 1] + sorted_array[mid]) / 2
else:
median = sorted_array[mid]
Этот способ полезен, чтобы лучше понять, как вычисляется медиана. Он также дает возможность обработки нестандартных случаев.
3. Использование библиотеки
numpy: import numpy as np
array = np.array([3, 5, 1, 4, 2])
median = np.median(array)
numpy — это мощная библиотека для научных вычислений в Python. Если массив представлен объектом numpy, этот метод будет очень быстрым и удобным.4. Нахождение медианы для больших массивов (использование квантилей):
import numpy as np
def find_median_large_array(array):
return np.percentile(array, 50)
large_array = np.random.randint(0, 1000, size=1000000) # Пример большого массива
median = find_median_large_array(large_array)
Этот метод полезен для очень больших массивов, так как
numpy оптимизирован для работы с большими данными.5. Использование библиотеки
scipy для многомерных данных: from scipy import stats
array = [3, 5, 1, 4, 2]
median = stats.scoreatpercentile(array, 50)
scipy — еще одна мощная библиотека для научных и технических вычислений, которая предоставляет множество статистических функций.Самый быстрый и простой способ — использовать функции
median из модуля statistics для небольших массивов или np.median из библиотеки numpy для больших массивов, поскольку они оптимизированы и предоставляют удобные интерфейсы для вычислений.@debugblog
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍1🔥1
Поиск самого длинного слова в предложении с помощью Python 👩💻
Когда вам нужно найти самое длинное слово в предложении, Python предоставляет элегантное и простое решение:
Этот код работает, разбивая предложение на отдельные слова с помощью метода split(), затем используя функцию max() для нахождения самого длинного слова. Ключевая часть — это использование параметра key=len в функции max(), который говорит Python сравнивать слова по их длине.
В итоге, если вы запустите этот код, он выведет: programming.
Этот подход универсален и может быть использован для поиска самого длинного слова в любом тексте, просто заменив строку sentence на нужное вам предложение.👨💻
✅ #study | #inf
@debugblog
Когда вам нужно найти самое длинное слово в предложении, Python предоставляет элегантное и простое решение:
sentence = 'Python is an amazing programming language'
words = sentence.split()
longest_word = max(words, key=len)
print(longest_word)
Этот код работает, разбивая предложение на отдельные слова с помощью метода split(), затем используя функцию max() для нахождения самого длинного слова. Ключевая часть — это использование параметра key=len в функции max(), который говорит Python сравнивать слова по их длине.
В итоге, если вы запустите этот код, он выведет: programming.
Этот подход универсален и может быть использован для поиска самого длинного слова в любом тексте, просто заменив строку sentence на нужное вам предложение.
@debugblog
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Реверсирование слов в предложении с помощью Python 👩💻
Если вам нужно перевернуть каждое слово в предложении, Python предоставляет простое решение, используя списковые включения и строковые методы. Давайте рассмотрим, как это сделать с помощью небольшого скрипта.
Вот что делает этот код:
1. Разделение предложения на слова:
2. Реверсирование каждого слова:
3. Сборка строки из перевернутых слов:
4. Вывод результата: Используется
Пример:
Если вы запустите этот код с исходным предложением 'Hello World from Python', результат будет таким:
Этот подход полезен, когда нужно изменить порядок букв в каждом слове, сохраняя при этом их исходную последовательность. Пример можно расширить для работы с более сложными текстами или адаптировать для специфических нужд.👨💻
✅ #study | #inf
@debugblog
Если вам нужно перевернуть каждое слово в предложении, Python предоставляет простое решение, используя списковые включения и строковые методы. Давайте рассмотрим, как это сделать с помощью небольшого скрипта.
sentence = 'Hello World from Python'
words = sentence.split()
reversed_words = [word[::-1] for word in words]
result = ' '.join(reversed_words)
print(result)
Вот что делает этот код:
1. Разделение предложения на слова:
sentence.split() разделяет строку на список слов, используя пробелы в качестве разделителей.2. Реверсирование каждого слова:
[word[::-1] for word in words] — это списковое включение, которое проходит по каждому слову и реверсирует его с помощью среза [::-1].3. Сборка строки из перевернутых слов:
result = ' '.join(reversed_words) объединяет перевернутые слова обратно в одну строку, разделяя их пробелами.4. Вывод результата: Используется
print(), чтобы вывести финальную строку с перевернутыми словами.Пример:
Если вы запустите этот код с исходным предложением 'Hello World from Python', результат будет таким:
olleH dlroW morf nohtyP
Этот подход полезен, когда нужно изменить порядок букв в каждом слове, сохраняя при этом их исходную последовательность. Пример можно расширить для работы с более сложными текстами или адаптировать для специфических нужд.
@debugblog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1🔥1
Jebus | AI Design
Вот не понимаю этой новой моды на Arc Browser 👩💻 Мне в рекомендациях на YouTube навалило много видео от айтишников, что это просто нечто, революция и глоток свежего воздуха... Но это просто очередной Google Chrome с вертикальными вкладками. В чем смысл?…
Микрообзоры браузеров - 2
Arc Browser👩💻
Пробовал пользоваться этим браузером целую неделю, но так и не понял, для чего он нужен, кроме как для эстетики. Выглядит красиво, но на этом его плюсы заканчиваются. Настройки урезаны, работать с ним сложно. Менеджер паролей вроде есть, но какой-то странный и не синхронизируется между устройствами. С расширениями такая же история. Синхронизируются только закладки (или "папки", как тут их называют). Есть мультипрофиль, как в Chrome, но синхронизация тем работает плохо: если на одном устройстве светлая тема, на другом темная — выглядит всё странно. Скорость работы как у Chrome, но в целом браузер неудобный и недоработанный. На Android его нет и, скорее всего, не будет. Не нашел ни одной причины продолжать пользоваться им. Но зато внешне симпатичный, освежает по сравнению с другими браузерами.
Arc Browser
Пробовал пользоваться этим браузером целую неделю, но так и не понял, для чего он нужен, кроме как для эстетики. Выглядит красиво, но на этом его плюсы заканчиваются. Настройки урезаны, работать с ним сложно. Менеджер паролей вроде есть, но какой-то странный и не синхронизируется между устройствами. С расширениями такая же история. Синхронизируются только закладки (или "папки", как тут их называют). Есть мультипрофиль, как в Chrome, но синхронизация тем работает плохо: если на одном устройстве светлая тема, на другом темная — выглядит всё странно. Скорость работы как у Chrome, но в целом браузер неудобный и недоработанный. На Android его нет и, скорее всего, не будет. Не нашел ни одной причины продолжать пользоваться им. Но зато внешне симпатичный, освежает по сравнению с другими браузерами.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1🔥1
print(0.1 * 0.2) # Ожидаемый результат: 0.02
Однако результат будет не 0.02, а что-то вроде 0.020000000000000004. Почему так происходит?
Дело в том, что числа с плавающей запятой в компьютере представляются в двоичной системе, которая не может точно представить некоторые десятичные дроби. Например, число 0.1 в двоичной системе имеет бесконечное представление, которое компьютер ограничивает до определённого количества знаков. Это приводит к тому, что математические операции с такими числами могут давать результаты с небольшой ошибкой.
Для большинства задач это не проблема, так как такие отклонения незначительны, но при сравнении чисел с плавающей точкой стоит быть осторожным. Вместо проверки на строгое равенство лучше использовать метод с допустимой погрешностью, например:
import math
result = 0.1 * 0.2
is_equal = math.isclose(result, 0.02, rel_tol=1e-9)
print(is_equal) # True
Использование
math.isclose помогает избежать ловушек точности при сравнении чисел с плавающей точкой.Так что, если вы столкнулись с неожиданными результатами при работе с числами с плавающей точкой, не пугайтесь — это нормальное явление в мире программирования!
@debugblog
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤1👍1
Какие существуют редакторы кода?
Когда нужно работать в проектах, где есть модули на разных языках, невольно задумаешься про редакторы кода. Это универсальные штуки по типу блокнота на винде, но позволяющие работать с большим количеством синтаксисов. Всего существует несколько подобных программ:
1. Visual Studio Code👩💻
Один из самых популярных редакторов среди разработчиков. Бесплатный, кроссплатформенный и поддерживающий множество расширений. Он отлично подходит для работы с разными языками программирования, включая Python, JavaScript, C++, и даже работает с удалёнными репозиториями через встроенные плагины. Недавно я пересел на него, не шипко привык, но в целом пойдет. Благо есть опыт на VS studio👩💻
2. Sublime Text👩💻
Легковесный и быстрый редактор с поддержкой множества плагинов. Особенности Sublime Text включают подсветку синтаксиса, мультикурсорный режим, и широкий спектр возможностей для настройки под свои нужды. Бесплатный в базовой версии, но с возможностью покупки лицензии.
3. Atom👩💻
Редактор, разработанный GitHub, с открытым исходным кодом. Он предлагает глубокую интеграцию с Git и GitHub, а также множество расширений. Atom настраивается практически до мельчайших деталей и особенно популярен среди веб-разработчиков.
4. PyCharm👩💻
Если вы работаете с Python, то PyCharm от JetBrains — отличный выбор. Это мощная IDE, предоставляющая профессиональные инструменты для рефакторинга кода, отладки и тестирования. Есть бесплатная версия Community и платная версия с расширенными возможностями. Штука крутая и мощная, очень удобно кодить в ней, но ток на питоне. Для всех языков нужно покупать лицензии.
5. IntelliJ IDEA👩💻
Одна из лучших IDE для разработки на Java и других языках. Этот редактор от JetBrains предлагает мощные инструменты для анализа кода, рефакторинга и автоматизации задач. Также существует поддержка плагинов для расширения функционала. И опять же платно.
6. Vim👩💻
Классический текстовый редактор, который особенно ценится за свою легковесность и скорость работы. Vim не такой интуитивный, как более современные редакторы, но его возможности для работы с текстом и скриптами очень гибки и мощны.
7. Emacs👩💻
Еще один легендарный текстовый редактор, известный своей настраиваемостью и расширяемостью. Emacs поддерживает разнообразные языки программирования и конфигурируется через встроенный Lisp. Это мощный инструмент, особенно для пользователей, которые хотят иметь полный контроль над своим рабочим окружением.
8. Notepad++👩💻
Бесплатный редактор для Windows, который поддерживает широкий спектр языков программирования. Он легкий, быстрый и отлично подходит для выполнения простых задач или быстрого редактирования кода. Поддерживает плагины и расширения. Раньше сидел на нем. Но он не самое удобное, что можно найти. Зато знает все синтаксисы, которые придут тебе в голову.
Выбор редактора зависит от ваших потребностей и предпочтений. Некоторые редакторы лучше подходят для конкретных языков, другие универсальны. Главное — попробовать несколько вариантов и выбрать тот, с которым вам будет комфортно работать.
⚡️ @debugblog
Когда нужно работать в проектах, где есть модули на разных языках, невольно задумаешься про редакторы кода. Это универсальные штуки по типу блокнота на винде, но позволяющие работать с большим количеством синтаксисов. Всего существует несколько подобных программ:
1. Visual Studio Code
Один из самых популярных редакторов среди разработчиков. Бесплатный, кроссплатформенный и поддерживающий множество расширений. Он отлично подходит для работы с разными языками программирования, включая Python, JavaScript, C++, и даже работает с удалёнными репозиториями через встроенные плагины. Недавно я пересел на него, не шипко привык, но в целом пойдет. Благо есть опыт на VS studio
2. Sublime Text
Легковесный и быстрый редактор с поддержкой множества плагинов. Особенности Sublime Text включают подсветку синтаксиса, мультикурсорный режим, и широкий спектр возможностей для настройки под свои нужды. Бесплатный в базовой версии, но с возможностью покупки лицензии.
3. Atom
Редактор, разработанный GitHub, с открытым исходным кодом. Он предлагает глубокую интеграцию с Git и GitHub, а также множество расширений. Atom настраивается практически до мельчайших деталей и особенно популярен среди веб-разработчиков.
4. PyCharm
Если вы работаете с Python, то PyCharm от JetBrains — отличный выбор. Это мощная IDE, предоставляющая профессиональные инструменты для рефакторинга кода, отладки и тестирования. Есть бесплатная версия Community и платная версия с расширенными возможностями. Штука крутая и мощная, очень удобно кодить в ней, но ток на питоне. Для всех языков нужно покупать лицензии.
5. IntelliJ IDEA
Одна из лучших IDE для разработки на Java и других языках. Этот редактор от JetBrains предлагает мощные инструменты для анализа кода, рефакторинга и автоматизации задач. Также существует поддержка плагинов для расширения функционала. И опять же платно.
6. Vim
Классический текстовый редактор, который особенно ценится за свою легковесность и скорость работы. Vim не такой интуитивный, как более современные редакторы, но его возможности для работы с текстом и скриптами очень гибки и мощны.
7. Emacs
Еще один легендарный текстовый редактор, известный своей настраиваемостью и расширяемостью. Emacs поддерживает разнообразные языки программирования и конфигурируется через встроенный Lisp. Это мощный инструмент, особенно для пользователей, которые хотят иметь полный контроль над своим рабочим окружением.
8. Notepad++
Бесплатный редактор для Windows, который поддерживает широкий спектр языков программирования. Он легкий, быстрый и отлично подходит для выполнения простых задач или быстрого редактирования кода. Поддерживает плагины и расширения. Раньше сидел на нем. Но он не самое удобное, что можно найти. Зато знает все синтаксисы, которые придут тебе в голову.
Выбор редактора зависит от ваших потребностей и предпочтений. Некоторые редакторы лучше подходят для конкретных языков, другие универсальны. Главное — попробовать несколько вариантов и выбрать тот, с которым вам будет комфортно работать.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍1🔥1
Нейронка по фильму Комната 👩💻
Хочу представить нейросеть, которую все мы заслужили. Теперь все культовые персонажи фильма "Комната" от Томми Вайсо — всегда у вас под рукой.🏠
Расскажите ей о своих жизненных проблемах, и она подберет для вас идеальную цитату из этого шедевра. Больше никаких метаний и трудных решений. Эта нейросеть готова помочь вам взглянуть на жизнь иначе и сделать её чуточку лучше!
Скачать исходник можно по➡️ ссылке ⬅️
Смотреть комнату на Ютубе📹
✅ #py | #room
⚡️ @debugblog
Хочу представить нейросеть, которую все мы заслужили. Теперь все культовые персонажи фильма "Комната" от Томми Вайсо — всегда у вас под рукой.
Расскажите ей о своих жизненных проблемах, и она подберет для вас идеальную цитату из этого шедевра. Больше никаких метаний и трудных решений. Эта нейросеть готова помочь вам взглянуть на жизнь иначе и сделать её чуточку лучше!
Скачать исходник можно по
Смотреть комнату на Ютубе
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2❤1
Пока небольшая передышка от питона сделал пак обоев при помощи нейронки ideogram 🌐
Все в высоком разрешении и качетсве, если интересна такая тема, могу делать подборки обоев.
Оригиналы в коментах 👇🏻
Все в высоком разрешении и качетсве, если интересна такая тема, могу делать подборки обоев.
Оригиналы в коментах 👇🏻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3❤1
Лайки накидали, значит некст пак сочных картонок от нейронки в 4к разрешении
📱 Обои в стиле 3D рендеров
📱 Промт:
⚡️ Пикод \\ Подписаться
Оригиналы в коментах 👇🏻
A 3D rendering of voluminous glossy red smooth berries floating in glossy pink paint. The berries are plump and juicy, with a highsaturation of red color. The pink paint has a glossy finish and is filled with the berries. The background is a deep red. The image has high brightness and high contrast.
Оригиналы в коментах 👇🏻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥2👍1
Форматирование строк — это одна из самых частых задач при работе с текстом в Python. С версии 3.6 Python поддерживает f-строки, которые делают форматирование строк удобнее и читабельнее.
f-строки — это строки, которые начинаются с буквы
f перед кавычками. Внутри таких строк можно использовать фигурные скобки {}, в которые вставляются переменные и выражения. Python автоматически подставляет их значения в строку. name = "Александр"
age = 28
# Используем f-строку для форматирования
message = f"Привет, {name}! Тебе уже {age} лет."
print(message) # Привет, Александр! Тебе уже 28 лет.
Вы можете вставлять не только переменные, но и целые выражения:
x = 5
y = 7
print(f"Сумма {x} и {y} равна {x + y}.") # Сумма 5 и 7 равна 12.
Польза от использования наглядна:
1. Читабельность: Легко увидеть, какие значения будут вставлены в строку.
2. Гибкость: Можно вставлять не только переменные, но и любые выражения, включая вызовы функций.
3. Простота: Синтаксис интуитивно понятен и прост.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍1🔥1