Kodduu Python
1.07K subscribers
315 photos
28 videos
190 links
Научись программировать на Python на интересных примерах

Самый быстрый курс https://stepik.org/a/187914
Самый нескучный курс https://stepik.org/a/185238

Во вопросам сотрудничества: @AlexErf
Download Telegram
Давайте создадим классическую игру "Угадай число" на Python. Программа будет генерировать случайное число, а пользователь должен будет угадать это число.

python
import random

def guess_number():
number_to_guess = random.randint(1, 100)
guess = None
while guess != number_to_guess:
guess = int(input('Guess a number between 1 and 100: '))
if guess < number_to_guess:
print("Too low!")
elif guess > number_to_guess:
print("Too high!")
print("Congratulations! You've guessed the number.")

if __name__ == "__main__":
guess_number()

В этом коде:

- Мы используем функцию random.randint для генерации случайного числа от 1 до 100.
- Мы используем цикл while для повторения запроса на ввод числа от пользователя, пока он не угадает число.
- Если предположение пользователя ниже загаданного числа, программа выводит "Too low!", если выше - "Too high!".
- Когда пользователь угадывает число, программа выводит "Congratulations! You've guessed the number." и цикл заканчивается.

Подпишись 👉🏻 @KodduuPython 🤖
👍2
Давайте напишем скрипт на Python, который реализует классический алгоритм сортировки - сортировку пузырьком.

python
def bubble_sort(numbers):
n = len(numbers)

for i in range(n):
for j in range(0, n - i - 1):
if numbers[j] > numbers[j + 1]:
numbers[j], numbers[j + 1] = numbers[j + 1], numbers[j]

return numbers

if __name__ == "__main__":
numbers = [64, 34, 25, 12, 22, 11, 90]
sorted_numbers = bubble_sort(numbers)
print(f"Sorted numbers: {sorted_numbers}")

В этом коде:

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

Обратите внимание, что сортировка пузырьком не очень эффективна для больших списков и обычно используется в учебных целях.

Подпишись 👉🏻 @KodduuPython 🤖
👍3
Давайте создадим Python скрипт, который будет скачивать файл по URL.

Мы будем использовать библиотеку requests для выполнения HTTP запроса и библиотеку os для работы с файловой системой.

python
import os
import requests

def download_file(url):
response = requests.get(url, stream=True)
file_size = int(response.headers.get('Content-Length', 0))

filename = url.split("/")[-1]

with open(filename, 'wb') as f:
for data in response.iter_content(1024):
f.write(data)

print(f"'{filename}' has been downloaded successfully!")

if __name__ == "__main__":
url = 'http://example.com/bigfile.dat' # Replace with your file URL
download_file(url)

В этом коде:

- Мы создаем GET запрос к URL, указанному в аргументе url.
- Мы получаем размер файла из заголовков ответа.
- Мы извлекаем имя файла из URL.
- Мы открываем файл для записи в бинарном режиме.
- Мы записываем данные в файл по мере их получения.
- В конце мы выводим сообщение о том, что файл успешно скачан.

Перед запуском этого скрипта убедитесь, что у вас установлена библиотека requests. Вы можете установить ее, используя pip:

pip install requests

Также замените http://example.com/bigfile.dat на URL файла, который вы хотите скачать.

Подпишись 👉🏻 @KodduuPython 🤖
👍4
Давайте напишем скрипт, который будет извлекать все ссылки с веб-страницы с использованием модулей requests и BeautifulSoup.

python
import requests
from bs4 import BeautifulSoup

def extract_links(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

for link in soup.find_all('a'):
href = link.get('href')
if href.startswith('http'):
print(href)

if __name__ == "__main__":
url = 'http://example.com' # Replace with your URL
extract_links(url)

В этом коде:

- Мы делаем GET запрос к указанному URL.
- Мы создаем объект BeautifulSoup из HTML содержимого ответа.
- Мы находим все теги a (ссылки) на веб-странице с помощью метода find_all.
- Мы извлекаем атрибут href из каждой ссылки, который представляет собой URL.
- Если URL начинается с http, мы выводим его.

Перед запуском этого скрипта убедитесь, что у вас установлены библиотеки requests и beautifulsoup4. Вы можете установить их, используя pip:

pip install requests beautifulsoup4

Также замените http://example.com на URL веб-страницы, с которой вы хотите извлечь ссылки.

Подпишись 👉🏻 @KodduuPython 🤖
👍2
Окей, давайте создадим простой чат-бота, который будет отвечать на приветствия пользователя. Мы будем использовать библиотеку random для выбора случайного ответа из списка.

python
import random

class ChatBot:
RESPONSES = [
"Привет!",
"Здравствуйте!",
"Добро пожаловать!",
"Рад видеть вас!",
"Приветствую вас!"
]

def greet(self):
print(random.choice(self.RESPONSES))

if __name__ == "__main__":
bot = ChatBot()
while True:
user_input = input("> ")
if user_input.lower() in ["привет", "здравствуйте", "добрый день", "добро пожаловать"]:
bot.greet()
elif user_input.lower() in ["стоп", "выход", "пока"]:
break
else:
print("Извините, я вас не понимаю.")

В этом коде:

- У нас есть класс ChatBot, который имеет список возможных ответов на приветствия.
- Функция greet выводит случайный ответ из списка.
- В основном блоке кода мы создаем экземпляр чат-бота.
- Мы запрашиваем ввод от пользователя в бесконечном цикле.
- Если ввод пользователя содержит приветствие, бот отвечает приветствием.
- Если ввод пользователя содержит слово для выхода, цикл прекращается.
- Если бот не понимает ввод, он выводит сообщение об ошибке.

Подпишись 👉🏻 @KodduuPython 🤖
👍2
Давайте напишем код, который реализует алгоритм поиска в глубину (DFS) на графе. Для простоты представим граф в виде словаря, где ключи - это вершины, а значения - списки смежных вершин.

def dfs(graph, start, visited=None):
if visited is None:
visited = set()

visited.add(start)

print(start)

for next_node in graph[start] - visited:
dfs(graph, next_node, visited)

return visited


if __name__ == "__main__":
graph = {'A': set(['B', 'C']),
'B': set(['A', 'E']),
'C': set(['A', 'F']),
'E': set(['B', 'F']),
'F': set(['C', 'E'])}

dfs(graph, 'A')


В этом коде:

- Функция dfs принимает граф, начальную вершину и список уже посещенных вершин.
- Если список посещенных вершин еще не был инициализирован, мы инициализируем его как пустой set.
- Мы добавляем текущую вершину в список посещенных и выводим ее.
- Для каждой вершины, смежной с текущей и еще не посещенной, мы рекурсивно вызываем dfs.
- В конце мы возвращаем список посещенных вершин.

Запуск этого кода отобразит последовательность вершин, посещенных при обходе в глубину, начиная с вершины 'A'.

Подпишись 👉🏻 @KodduuPython 🤖
🔥5👍1
Давайте напишем простую программу, которая будет визуализировать данные с использованием библиотеки matplotlib.

python
import matplotlib.pyplot as plt

def draw_graph():
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]

plt.plot(x, y)
plt.title('Square Numbers')
plt.xlabel('Values')
plt.ylabel('Squares')

plt.show()

if __name__ == "__main__":
draw_graph()


В этом коде:

- Мы используем функцию plt.plot для построения графика данных.
- Мы задаем заголовок графика и подписи осей с помощью функций plt.title, plt.xlabel и plt.ylabel.
- В конце мы используем функцию plt.show для отображения графика.

Перед запуском этого скрипта убедитесь, что у вас установлена библиотека matplotlib. Вы можете установить ее, используя pip:

pip install matplotlib
👍2👏2
Пример кода на Python, демонстрирующего рекурсию, может быть вычисление факториала числа. Факториал числа n определен как произведение всех положительных целых чисел от 1 до n.

python
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)

print(factorial(5)) # Выведет: 120

В этом коде функция factorial вызывает сама себя внутри определения функции. Это и есть рекурсия.

Сначала проверяется базовый случай: если n равно 0, функция просто возвращает 1, потому что факториал 0 равен 1 по определению.

Если n не равно 0, функция возвращает n * factorial(n-1). Это означает, что для вычисления факториала числа n мы умножаем n на факториал от n-1. И так продолжается до тех пор, пока мы не дойдем до 0.

Например, вызов factorial(5) приведет к следующей последовательности вызовов функций:

factorial(5)
5 * factorial(4)
5 * (4 * factorial(3))
5 * (4 * (3 * factorial(2)))
5 * (4 * (3 * (2 * factorial(1))))
5 * (4 * (3 * (2 * (1 * factorial(0)))))
5 * (4 * (3 * (2 * (1 * 1))))
5 * (4 * (3 * (2 * 1)))
5 * (4 * (3 * 2))
5 * (4 * 6)
5 * 24
120

Именно так работает рекурсия!

Подпишись 👉🏻 @KodduuPython 🤖
👏2
Вот небольшой cheat-sheet на Python для новичков:

1. Основы синтаксиса:
- Вывод на экран: print("Текст")
- Присваивание переменной: имя_переменной = значение
- Комментарии: # Это комментарий

2. Типы данных:
- Числа: целые числа (int), числа с плавающей точкой (float)
- Строки: строковые литералы (str)
- Списки: список значений (list)
- Кортежи: неизменяемые списки (tuple)
- Словари: связь ключей и значений (dictionary)

3. Операторы:
- Математические: +, -, *, /, %, ** (сложение, вычитание, умножение, деление, остаток от деления, возведение в степень)
- Сравнения: ==, !=, >, <, >=, <= (равно, не равно, больше, меньше, больше или равно, меньше или равно)
- Логические: and, or, not (и, или, не)

4. Условные конструкции:
- if, elif, else
- Пример:

if условие:
блок кода
elif другое_условие:
блок кода
else:
блок кода


5. Циклы:
- for (для перебора элементов в коллекции)
- while (для выполнения блока кода до тех пор, пока выполняется условие)

6. Функции:
- Определение функции: def имя_функции(аргументы):
- Возвращение значения: return значение

7. Ввод и вывод данных:
- Ввод с клавиатуры: input("Сообщение приглашения")
- Пример:

name = input("Введите ваше имя: ")
print("Привет, " + name)


8. Работа со строками:
- Сцепление строк: +
- Форматирование строк: f"Текст {переменная}"
- Пример:

name = "Анна"
age = 25
print(f"Меня зовут {name} и мне {age} лет.")


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

Подпишись 👉🏻 @KodduuPython 🤖
👍7
Давайте создадим структуру данных для управления метро.

В этом контексте, можно создать классы для станций, веток и поездов. Станция будет содержать имя; ветка будет содержать имя, цвет, номер и список станций; поезд будет содержать текущую станцию и ветку, на которой он находится.

Начнем с класса Station:

python
class Station:
def __init__(self, name):
self.name = name


Теперь создадим класс для ветки:

python
class Line:
def __init__(self, name, color, number):
self.name = name
self.color = color
self.number = number
self.stations = []

def add_station(self, station):
if not isinstance(station, Station):
raise ValueError("Argument should be an instance of the 'Station' class.")
self.stations.append(station)


Теперь, создадим класс для поезда:

python
class Train:
def __init__(self, line, current_station):
if not isinstance(line, Line) or not isinstance(current_station, Station):
raise ValueError("Arguments should be instances of the 'Line' and 'Station' classes.")
self.line = line
self.current_station = current_station

def move_to(self, station):
if station in self.line.stations:
self.current_station = station
else:
raise ValueError("The train cannot move to a station not on its line.")


Теперь можно создать ветки метро, добавить станции и создать поезда.

Например:

python
# Создание веток
red_line = Line("Red Line", "red", 1)
blue_line = Line("Blue Line", "blue", 2)

# Добавление станций на ветки
red_line.add_station(Station("Station A"))
red_line.add_station(Station("Station B"))
blue_line.add_station(Station("Station C"))
blue_line.add_station(Station("Station D"))

# Создание поездов
train1 = Train(red_line, red_line.stations[0]) # на станции "Station A" красной ветки
train2 = Train(blue_line, blue_line.stations[1]) # на станции "Station D" синей ветки

# Перемещение поезда
train1.move_to(red_line.stations[1]) # перемещение поезда на станцию "Station B"


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

Подпишись 👉🏻 @KodduuPython 🤖
👍2
Попробуем добавить несколько настоящих веток и станций Московского метро:

python
# Создание веток
sokolnicheskaya_line = Line("Сокольническая линия", "red", 1)
zamoskvoretskaya_line = Line("Замоскворецкая линия", "green", 2)

# Добавление станций на ветки
sokolnicheskaya_line.add_station(Station("Бульвар Рокоссовского"))
sokolnicheskaya_line.add_station(Station("Черкизовская"))
sokolnicheskaya_line.add_station(Station("Преображенская площадь"))

zamoskvoretskaya_line.add_station(Station("Речной вокзал"))
zamoskvoretskaya_line.add_station(Station("Водный стадион"))
zamoskvoretskaya_line.add_station(Station("Войковская"))

# Создание поездов
train1 = Train(sokolnicheskaya_line, sokolnicheskaya_line.stations[0]) # на станции "Бульвар Рокоссовского" Сокольнической линии
train2 = Train(zamoskvoretskaya_line, zamoskvoretskaya_line.stations[1]) # на станции "Водный стадион" Замоскворецкой линии

# Перемещение поезда
train1.move_to(sokolnicheskaya_line.stations[1]) # перемещение поезда на станцию "Черкизовская"

Здесь мы создаем две ветки (Сокольническую и Замоскворецкую) и добавляем три станции на каждую. Затем создаем поезда на этих ветках и перемещаем один из них на другую станцию.

Подпишись 👉🏻 @KodduuPython 🤖
Давайте добавим проверку, что станция, на которую хочет переместиться поезд, является соседней для текущей станции поезда. Кроме того, мы добавим атрибут direction в класс Train, который будет указывать направление движения поезда.

python
class Train:
def __init__(self, line, current_station, direction):
if not isinstance(line, Line) or not isinstance(current_station, Station):
raise ValueError("Arguments should be instances of the 'Line' and 'Station' classes.")
self.line = line
self.current_station = current_station
self.direction = direction

def move_to(self, station):
if station in self.line.stations:
# Проверка на соседнюю станцию
current_station_index = self.line.stations.index(self.current_station)
destination_station_index = self.line.stations.index(station)
if abs(destination_station_index - current_station_index) != 1:
raise ValueError("The train can only move to the next station.")
# Проверка направления движения
if (destination_station_index - current_station_index) * self.direction < 0:
raise ValueError("The train cannot move in the opposite direction.")
self.current_station = station
else:
raise ValueError("The train cannot move to a station not on its line.")


В этом коде, direction - это число, которое равно 1, если поезд движется в прямом направлении (от начала списка станций к концу), и -1, если движение идет в обратном направлении (от конца списка к началу).

Создание и перемещение поезда может выглядеть следующим образом:

python
train1 = Train(sokolnicheskaya_line, sokolnicheskaya_line.stations[0], 1) # на станции "Бульвар Рокоссовского" Сокольнической линии, движение в прямом направлении
train1.move_to(sokolnicheskaya_line.stations[1]) # перемещение поезда на станцию "Черкизовская"


Подпишись 👉🏻 @KodduuPython 🤖
В этом примере мы рассмотрим небольшой, но интересный скрипт на Python. Это будет генератор паролей. Он создает пароли, которые содержат заглавные буквы, строчные буквы, цифры и специальные символы.

python
import string
import random

def generate_password(length):
all_characters = string.ascii_letters + string.digits + string.punctuation
if length < 4:
print("Password length should be at least 4 characters.")
return None
password = []
password.append(random.choice(string.ascii_uppercase))
password.append(random.choice(string.ascii_lowercase))
password.append(random.choice(string.digits))
password.append(random.choice(string.punctuation))
for i in range(length-4):
password.append(random.choice(all_characters))
random.shuffle(password)
return ''.join(password)

print(generate_password(12)) # For example, generate a 12-character password

В этом скрипте мы используем модули string и random. Модуль string содержит различные полезные константы, такие как все буквы алфавита (в верхнем и нижнем регистрах), все цифры и все символы пунктуации.

Метод generate_password принимает один аргумент - длину желаемого пароля. Вначале он проверяет, что длина пароля не меньше 4 символов, поскольку мы хотим включить хотя бы одну заглавную букву, одну строчную букву, одну цифру и один специальный символ в наш пароль.

Далее, мы генерируем пароль, выбирая случайные символы из всех возможных символов. Затем мы перемешиваем все символы в пароле, чтобы убедиться, что не существует никакого предсказуемого порядка. Наконец, мы присоединяем все символы вместе в строку и возвращаем ее.

Этот скрипт может быть полезен для генерации случайных безопасных паролей, которые сложно угадать.

Подпишись 👉🏻 @KodduuPython 🤖
👍4
Kivy - это открытая библиотека Python для быстрой разработки мультисенсорных приложений. Она поддерживает многокасание, управление жестами и даже возможность разработки собственных жестов.

Давайте создадим простое приложение с использованием Kivy. Это будет базовое приложение, в котором при нажатии на кнопку на экране, текст кнопки меняется.

Установка Kivy:

shell
pip install kivy

Пример кода:

python
from kivy.app import App
from kivy.uix.button import Button

class MyApp(App):
def build(self):
return Button(text='Hello Kivy',
size_hint=(.5, .5),
pos_hint={'center_x': .5, 'center_y': .5})

def on_press_button(self, instance):
print('You pressed the button!')
instance.text = 'You pressed me!'

if __name__ == '__main__':
MyApp().run()

В этом коде создается приложение с одной кнопкой. Когда кнопка нажата, вызывается функция on_press_button, которая меняет текст кнопки.

Обратите внимание, что Kivy приложения требуют специальной структуры, и обычно состоят из класса, который наследует от App. Это основной класс вашего приложения и включает в себя различные методы, такие как build(), который используется для инициализации интерфейса приложения.

Подпишись 👉🏻 @KodduuPython 🤖
Давайте попробуем написать код, который будет генерировать фрактал Мандельброта. Фрактал Мандельброта - это красивый и сложный объект, который создается путем повторения простой математической операции.

python
import numpy as np
import matplotlib.pyplot as plt

def mandelbrot(c, max_iter):
z = c
for n in range(max_iter):
if abs(z) > 2:
return n
z = z*z + c
return max_iter

def draw_mandelbrot(xmin,xmax,ymin,ymax,width,height,max_iter):
r1 = np.linspace(xmin, xmax, width)
r2 = np.linspace(ymin, ymax, height)
return (r1,r2,np.array([[mandelbrot(complex(r, i),max_iter) for r in r1] for i in r2]))

def draw_image(xmin,xmax,ymin,ymax,width,height,max_iter):
d = draw_mandelbrot(xmin,xmax,ymin,ymax,width,height,max_iter)
plt.imshow(d[2], extent=(xmin, xmax, ymin, ymax))
plt.show()

draw_image(-2.0,1.0,-1.5,1.5,1000,1000,256)

В этом коде функция mandelbrot(c, max_iter) выполняет итерацию формулы Мандельброта, начиная с заданного комплексного числа c. Если абсолютное значение z превысит 2, мы знаем, что последовательность стремится к бесконечности, и возвращаем количество выполненных итераций.

Функция draw_mandelbrot(xmin,xmax,ymin,ymax,width,height,max_iter) генерирует изображение, вычисляя mandelbrot(c, max_iter) для ряда точек c.

Функция draw_image(xmin,xmax,ymin,ymax,width,height,max_iter) использует matplotlib для отображения изображения фрактала Мандельброта.

Подпишись 👉🏻 @KodduuPython 🤖
2
Давайте создадим код, который будет генерировать небольшую ASCII-анимацию падающей воды. Вместо использования любых специализированных библиотек, мы просто воспользуемся стандартной библиотекой Python.

python
import random
import time

# Ширина нашего "мирового пространства"
WIDTH = 70

# Создаем пустое мировое пространство
world = [' '] * WIDTH

while True:
# Создаем новый "капельку"
world[random.randint(0, WIDTH - 1)] = '*'

# Печатаем текущее состояние мира
print(''.join(world))

# Двигаем каждую каплю вниз (если возможно)
for i in range(WIDTH - 2, -1, -1):
if world[i] == '*' and world[i + 1] == ' ':
world[i], world[i + 1] = world[i + 1], world[i]

# Задержка перед следующим обновлением мира
time.sleep(0.1)

В этом коде мы сначала создаем мир как список из 70 пробелов. Затем в бесконечном цикле мы сначала создаем новую "каплю" воды в случайном месте в мире, затем печатаем текущее состояние мира, затем двигаем каждую каплю вниз на одну позицию (если там нет другой капли).

Мы делаем это снова и снова, создавая небольшую анимацию падающих капель.

Подпишись 👉🏻 @KodduuPython 🤖
👍5
Давайте создадим пример кода, который создает простую текстовую RPG (ролевую игру).

python
class Character:
def __init__(self, name, health, strength):
self.name = name
self.health = health
self.strength = strength

def attack(self, other):
other.health -= self.strength

def is_alive(self):
return self.health > 0


def game():
player = Character("Player", 100, 20)
monster = Character("Monster", 80, 15)

while True:
print(f"Your health: {player.health}, Monster's health: {monster.health}")
action = input("What will you do? (Attack/Escape) ")

if action.lower() == "attack":
player.attack(monster)
if monster.is_alive():
monster.attack(player)
else:
print("You slayed the monster!")
break

elif action.lower() == "escape":
print("You ran away!")
break

if not player.is_alive():
print("You were slain by the monster!")
break


game()

В этом простом текстовом RPG вы и монстр сражаетесь друг с другом, пока один из вас не умрет, или пока вы не решите бежать. Каждый персонаж имеет здоровье и силу, и вы атакуете друг друга, уменьшая здоровье оппонента на значение вашей силы.

Подпишись 👉🏻 @KodduuPython 🤖
👍3
Вот интересный пример использования Python для шифрования текста с помощью простого шифра Цезаря. Шифр Цезаря является одним из самых простых и наиболее широко известных методов шифрования.

python
def caesar_encrypt(text, shift):
result = ""

for char in text:
if char.isalpha():
ascii_offset = ord('a') if char.islower() else ord('A')
encrypted_char = chr((ord(char) - ascii_offset + shift) % 26 + ascii_offset)
result += encrypted_char
else:
result += char

return result

def caesar_decrypt(text, shift):
return caesar_encrypt(text, -shift)

text = "Hello, World!"
shift = 3

encrypted = caesar_encrypt(text, shift)
print(f"Encrypted: {encrypted}")

decrypted = caesar_decrypt(encrypted, shift)
print(f"Decrypted: {decrypted}")

В этом примере, мы используем функцию caesar_encrypt для шифрования текста с помощью заданного сдвига. Функция caesar_decrypt используется для дешифрования текста, который был зашифрован шифром Цезаря, сдвигая символы в обратную сторону.

Подпишись 👉🏻 @KodduuPython 🤖
2
Давайте напишем код, который моделирует "жизнь клеток" на основе правил "Игры жизни" Джона Конвея. "Игра жизни" - это клеточный автомат, где каждая клетка на двумерной сетке может быть в одном из двух состояний: "живая" или "мёртвая". Состояние каждой клетки на следующем шаге определяется её текущим состоянием и состояниями восьми соседних клеток.

python
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

def update(frameNum, img, grid, N):
newGrid = grid.copy()
for i in range(N):
for j in range(N):
total = (grid[i, (j-1)%N] + grid[i, (j+1)%N] +
grid[(i-1)%N, j] + grid[(i+1)%N, j] +
grid[(i-1)%N, (j-1)%N] + grid[(i-1)%N, (j+1)%N] +
grid[(i+1)%N, (j-1)%N] + grid[(i+1)%N, (j+1)%N])
if grid[i, j] == 1 and (total < 2 or total > 3):
newGrid[i, j] = 0
elif grid[i, j] == 0 and total == 3:
newGrid[i, j] = 1
img.set_data(newGrid)
grid[:] = newGrid[:]
return img,

N = 100
grid = np.random.choice([0,1], N*N, p=[0.9, 0.1]).reshape(N, N)

fig, ax = plt.subplots()
img = ax.imshow(grid, interpolation='nearest')
ani = animation.FuncAnimation(fig, update, fargs=(img, grid, N, ))
plt.show()

В этом коде мы создаем случайную исходную сетку из "живых" и "мёртвых" клеток, затем применяем правила "Игры жизни" для определения следующего состояния сетки. Мы используем matplotlib.animation для создания анимации эволюции сетки.

Подпишись 👉🏻 @KodduuPython 🤖
🎉3👨‍💻1
Вот пример кода, который использует Python и библиотеку NumPy для решения системы линейных уравнений.

python
import numpy as np

# Создадим матрицу (левую часть системы)
A = np.array([[3, 1, -2],
[1, -1, 4],
[2, 0, 3]])

# Создадим вектор-столбец (правую часть системы)
b = np.array([7, -1, 6])

# Используем функцию solve из NumPy для решения системы уравнений
x = np.linalg.solve(A, b)

print("Решение системы:")
print("x =", x[0])
print("y =", x[1])
print("z =", x[2])

Предположим, что у нас есть следующая система линейных уравнений:

3x + y - 2z = 7

x - y + 4z = -1

2x + 3z = 6

Этот код будет находить значения x, y и z, которые удовлетворяют всем трем уравнениям.

Библиотека NumPy - это мощный инструмент для работы с числами и матрицами в Python.

Подпишись 👉🏻 @KodduuPython 🤖
2👍1