Один из самых распространенных случаев использования побитовых операторов - это работа с наборами флагов или битовыми полями. Допустим, у вас есть набор настроек или прав доступа, которые вы хотите хранить в одной переменной. Можно использовать отдельные биты этой переменной для представления разных флагов.
Возьмем, например, простую игру, где у вас есть персонаж с различными способностями, которые можно включить или выключить. Вы можете использовать битовые операторы для управления этими способностями.
Подпишись 👉🏻 @KodduuPython 🤖
Возьмем, например, простую игру, где у вас есть персонаж с различными способностями, которые можно включить или выключить. Вы можете использовать битовые операторы для управления этими способностями.
pythonТакое использование битовых операторов позволяет компактно и эффективно работать с флагами и настройками. Это не только экономит память, но и делает код более понятным, особенно когда вам нужно работать с большим числом флагов.
# Инициализация способностей
CAN_FLY = 1 << 0 # 0001 в бинарном формате
CAN_SWIM = 1 << 1 # 0010 в бинарном формате
CAN_RUN = 1 << 2 # 0100 в бинарном формате
# Начальные способности персонажа
abilities = 0 # В начале персонаж не умеет ничего
# Выдаем персонажу способность летать
abilities |= CAN_FLY
# Проверяем, умеет ли персонаж летать
if abilities & CAN_FLY:
print("Персонаж умеет летать")
# Отбираем у персонажа способность летать
abilities &= ~CAN_FLY
# Теперь проверка покажет, что персонаж не умеет летать
if not abilities & CAN_FLY:
print("Персонаж не умеет летать")
# Мы также можем выдать персонажу несколько способностей сразу
abilities |= (CAN_SWIM | CAN_RUN)
# И проверить, умеет ли он плавать и бегать
if abilities & CAN_SWIM and abilities & CAN_RUN:
print("Персонаж умеет плавать и бегать")
Подпишись 👉🏻 @KodduuPython 🤖
👍2
Создание игры "Блэкджек" на Python.
## Создание игры "Блэкджек" на Python
### Класс Card
Сначала мы создадим класс
Затем мы создадим класс
Теперь мы создадим класс
Наконец, мы создадим класс
Подпишись 👉🏻 @KodduuPython 🤖
## Создание игры "Блэкджек" на Python
### Класс Card
Сначала мы создадим класс
Card, который будет представлять отдельную карту в колоде.python### Класс Deck
class Card:
def __init__(self, suit, rank):
self.suit = suit
self.rank = rank
def __str__(self):
return self.rank + " of " + self.suit
Затем мы создадим класс
Deck, который будет представлять колоду карт.python### Класс Hand
import random
class Deck:
def __init__(self):
self.deck = [] # начинаем с пустой колоды
for suit in suits:
for rank in ranks:
self.deck.append(Card(suit, rank))
def __str__(self):
deck_comp = '' # начинаем с пустой строки
for card in self.deck:
deck_comp += '\n '+card.__str__() # добавляем каждую карту
return 'The deck has:' + deck_comp
def shuffle(self):
random.shuffle(self.deck)
def deal(self):
single_card = self.deck.pop()
return single_card
Теперь мы создадим класс
Hand, который будет представлять руку игрока или дилера.python### Класс Game
class Hand:
def __init__(self):
self.cards = [] # начинаем с пустого списка, как и в классе Deck
self.value = 0 # начинаем с нулевого значения
self.aces = 0 # добавляем атрибут для отслеживания тузов
def add_card(self,card):
self.cards.append(card)
self.value += values[card.rank]
# отслеживаем тузы
if card.rank == 'Ace':
self.aces += 1
def adjust_for_ace(self):
while self.value > 21 and self.aces:
self.value -= 10
self.aces -= 1
Наконец, мы создадим класс
Game, который будет управлять игровым процессом.python
class Game:
def __init__(self, deck, player_hand, dealer_hand):
self.deck = deck
self.player_hand = player_hand
self.dealer_hand = dealer_hand
# здесь будут методы для управления игровым процессом
Подпишись 👉🏻 @KodduuPython 🤖
👍2
Вот пример интерактивной игры "Камень, ножницы, бумага" на Python:
Подпишись 👉🏻 @KodduuPython 🤖
pythonВ этой игре вы вводите свой выбор, компьютер делает случайный выбор, а затем определяется победитель. Вы можете продолжать играть, пока не введете 'выход'.
import random
def game():
# список возможных выборов
choices = ["камень", "ножницы", "бумага"]
while True:
# случайный выбор компьютера
computer_choice = random.choice(choices)
# выбор пользователя
user_choice = input("Введите 'камень', 'ножницы' или 'бумага' (или 'выход' для выхода): ")
if user_choice.lower() == 'выход':
break
elif user_choice.lower() not in choices:
print("Неверный ввод. Пожалуйста, попробуйте снова.")
continue
print("Компьютер выбрал: " + computer_choice)
# определение победителя
if user_choice == computer_choice:
print("Ничья!")
elif (user_choice == "камень" and computer_choice == "ножницы") or \
(user_choice == "ножницы" and computer_choice == "бумага") or \
(user_choice == "бумага" and computer_choice == "камень"):
print("Вы выиграли!")
else:
print("Вы проиграли!")
game()
Подпишись 👉🏻 @KodduuPython 🤖
👍2
Вот простой, но интересный пример кода на Python. Это игра "Угадай число", в которой компьютер случайно выбирает число от 1 до 100, а затем пользователь должен его угадать.
- Импортируется модуль
- Функция
-
-
-
- Цикл
- В цикле пользователю предлагается ввести число, и его ввод преобразуется в целое число с помощью
- Затем код проверяет, больше ли предположение пользователя или меньше загаданного числа, и выдает подсказку.
- Если пользователь угадывает число, цикл заканчивается, и игра сообщает пользователю, что он угадал число и сколько попыток это заняло.
Подпишись 👉🏻 @KodduuPython 🤖
pythonВ этом коде:
import random
def game():
number_to_guess = random.randint(1, 100)
guess = None
tries = 0
while guess != number_to_guess:
guess = int(input("Угадай число от 1 до 100: "))
tries += 1
if guess < number_to_guess:
print("Слишком мало! Попробуй снова.")
elif guess > number_to_guess:
print("Слишком много! Попробуй снова.")
print(f"Поздравляю! Ты угадал число {number_to_guess} за {tries} попыток.")
if __name__ == "__main__":
game()
- Импортируется модуль
random для генерации случайных чисел.- Функция
game() определяет основную логику игры. -
number_to_guess - это случайное число от 1 до 100, которое пользователь должен угадать.-
guess - это переменная, в которую записывается предположение пользователя.-
tries - счетчик попыток пользователя.- Цикл
while продолжается, пока пользователь не угадает число. - В цикле пользователю предлагается ввести число, и его ввод преобразуется в целое число с помощью
int().- Затем код проверяет, больше ли предположение пользователя или меньше загаданного числа, и выдает подсказку.
- Если пользователь угадывает число, цикл заканчивается, и игра сообщает пользователю, что он угадал число и сколько попыток это заняло.
Подпишись 👉🏻 @KodduuPython 🤖
👍3
Вот ещё один интересный код на Python. Это реализация игры "Крестики-нолики" для двух игроков.
- Функция
- Функция
- Функция
- Цикл
- На каждом ходу игрока отображается доска, и игроку предлагается ввести номер строки и столбца, где он хочет поставить свой символ.
- Если клетка свободна, то символ игрока помещается на доску. Если в результате этого хода игрок выигрывает, игра заканчивается. В противном случае ход переходит к другому игроку.
- Если клетка уже занята, игроку сообщается об этом, и он делает ход заново.
Подпишись 👉🏻 @KodduuPython 🤖
pythonВ этом коде:
def print_board(board):
for row in board:
print(" ".join(row))
def check_win(board):
# Check rows, columns and diagonals for a win
for row in board:
if row.count(row[0]) == len(row) and row[0] != ' ':
return True
for col in range(len(board)):
check = []
for row in board:
check.append(row[col])
if check.count(check[0]) == len(check) and check[0] != ' ':
return True
if board[0][0] == board[1][1] == board[2][2] != ' ':
return True
if board[0][2] == board[1][1] == board[2][0] != ' ':
return True
return False
def game():
board = [[' ' for _ in range(3)] for _ in range(3)]
current_player = 'X'
while True:
print_board(board)
print(f"Ходит игрок {current_player}")
row = int(input("Введите номер строки: "))
col = int(input("Введите номер столбца: "))
if board[row][col] == ' ':
board[row][col] = current_player
if check_win(board):
print(f"Победил игрок {current_player}!")
break
current_player = 'O' if current_player == 'X' else 'X'
else:
print("Эта клетка уже занята. Попробуйте снова.")
continue
if __name__ == "__main__":
game()
- Функция
print_board печатает игровое поле.- Функция
check_win проверяет наличие победы в текущем состоянии доски.- Функция
game определяет основную логику игры.- Цикл
while True выполняется до тех пор, пока не будет найден победитель или не закончится игра.- На каждом ходу игрока отображается доска, и игроку предлагается ввести номер строки и столбца, где он хочет поставить свой символ.
- Если клетка свободна, то символ игрока помещается на доску. Если в результате этого хода игрок выигрывает, игра заканчивается. В противном случае ход переходит к другому игроку.
- Если клетка уже занята, игроку сообщается об этом, и он делает ход заново.
Подпишись 👉🏻 @KodduuPython 🤖
👍4
На этот раз давайте создадим небольшую программу, которая визуализирует данные с использованием библиотеки matplotlib. Этот код создаст график синуса и косинуса:
- Импортировали библиотеки matplotlib и numpy.
- Сгенерировали массив
- Вычислили значения
- Создали два графика с помощью функции
- Добавили легенду, подписи осей и заголовок графика.
- И, наконец, отобразили график с помощью функции
Подпишись 👉🏻 @KodduuPython 🤖
pythonВ этом коде мы:
import matplotlib.pyplot as plt
import numpy as np
# Генерируем массив чисел от -π до +π, всего 1000 значений
x = np.linspace(-np.pi, np.pi, 1000)
# Вычисляем значения sin(x) и cos(x)
y_sin = np.sin(x)
y_cos = np.cos(x)
# Создаем график sin(x)
plt.plot(x, y_sin, label='sin(x)')
# Создаем график cos(x)
plt.plot(x, y_cos, label='cos(x)')
# Добавляем легенду
plt.legend()
# Добавляем подписи осей
plt.xlabel('x')
plt.ylabel('y')
# Добавляем заголовок графика
plt.title('Графики sin(x) и cos(x)')
# Отображаем график
plt.show()
- Импортировали библиотеки matplotlib и numpy.
- Сгенерировали массив
x из 1000 значений, равномерно распределенных между -π и +π.- Вычислили значения
y_sin и y_cos как sin(x) и cos(x) соответственно.- Создали два графика с помощью функции
plt.plot().- Добавили легенду, подписи осей и заголовок графика.
- И, наконец, отобразили график с помощью функции
plt.show().Подпишись 👉🏻 @KodduuPython 🤖
Вот пример кода на Python, который использует библиотеку requests для получения данных с API и библиотеку json для обработки этих данных. Этот пример получает информацию о текущей погоде в заданном городе с использованием API OpenWeatherMap.
Прежде чем запускать этот код, убедитесь, что у вас установлены нужные библиотеки (requests и json). Если они еще не установлены, вы можете установить их, используя pip:
Подпишись 👉🏻 @KodduuPython 🤖
pythonОбратите внимание, что вам нужно получить свой собственный API-ключ от OpenWeatherMap и заменить
import requests
import json
def get_weather(city):
# API-ключ (замените на свой!)
api_key = "your_api_key"
# URL запроса
base_url = f"http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}"
# Отправка GET-запроса
response = requests.get(base_url)
# Парсинг ответа
weather_data = response.json()
# Вывод информации о погоде
print(f"Погода в городе {city}:")
print(f"Температура: {weather_data['main']['temp'] - 273.15:.2f} градусов Цельсия")
print(f"Описание: {weather_data['weather'][0]['description']}")
if __name__ == "__main__":
city = input("Введите название города: ")
get_weather(city)
"your_api_key" на него, чтобы этот код работал.Прежде чем запускать этот код, убедитесь, что у вас установлены нужные библиотеки (requests и json). Если они еще не установлены, вы можете установить их, используя pip:
pip install requestsБиблиотека json входит в стандартную библиотеку Python, поэтому ее устанавливать не нужно.
Подпишись 👉🏻 @KodduuPython 🤖
👍4
В этот раз давайте создадим скрипт на Python, который использует библиотеку pandas для чтения данных из CSV-файла и выполняет некоторый анализ данных.
- Загружает данные из CSV-файла.
- Выводит первые 5 строк данных.
- Выводит информацию о данных, включая количество строк, типы столбцов и количество непустых значений в каждом столбце.
- Выводит описательную статистику для числовых столбцов (среднее, стандартное отклонение, минимум, 25-й перцентиль, медиана, 75-й перцентиль и максимум).
- Выводит количество уникальных значений в каждом столбце.
Прежде чем запускать этот код, убедитесь, что у вас установлена библиотека pandas. Если она еще не установлена, вы можете установить ее, используя pip:
Подпишись 👉🏻 @KodduuPython 🤖
pythonЭтот скрипт:
import pandas as pd
def load_and_analyze_data(csv_file):
# Загрузка данных
data = pd.read_csv(csv_file)
# Вывод первых 5 строк
print("Первые 5 строк данных:")
print(data.head())
# Вывод информации о данных
print("\nИнформация о данных:")
print(data.info())
# Вывод описательной статистики
print("\nОписательная статистика:")
print(data.describe())
# Вывод количества уникальных значений в каждом столбце
print("\nКоличество уникальных значений в каждом столбце:")
print(data.nunique())
if __name__ == "__main__":
csv_file = input("Введите путь к CSV-файлу: ")
load_and_analyze_data(csv_file)
- Загружает данные из CSV-файла.
- Выводит первые 5 строк данных.
- Выводит информацию о данных, включая количество строк, типы столбцов и количество непустых значений в каждом столбце.
- Выводит описательную статистику для числовых столбцов (среднее, стандартное отклонение, минимум, 25-й перцентиль, медиана, 75-й перцентиль и максимум).
- Выводит количество уникальных значений в каждом столбце.
Прежде чем запускать этот код, убедитесь, что у вас установлена библиотека pandas. Если она еще не установлена, вы можете установить ее, используя pip:
pip install pandas
Подпишись 👉🏻 @KodduuPython 🤖
👍6
В этот раз давайте создадим классическую игру "Змейка" с использованием библиотеки
Обратите внимание, что эта игра работает в терминале и может не работать в некоторых интерактивных средах программирования Python, таких как Jupyter Notebook.
Подпишись 👉🏻 @KodduuPython 🤖
curses в Python. pythonВ этом скрипте создается новое окно для игры, змейка и еда. Змейка движется в заданном направлении, пока не столкнется со стеной или сама с собой. Когда змейка ест еду, она становится длиннее, и на поле появляется новая еда. Игра заканчивается, если змейка столкнется со стеной или с собой.
import random
import curses
s = curses.initscr()
curses.curs_set(0)
sh, sw = s.getmaxyx()
w = curses.newwin(sh, sw, 0, 0)
w.keypad(1)
w.timeout(100)
snk_x = sw//4
snk_y = sh//2
snake = [
[snk_y, snk_x],
[snk_y, snk_x-1],
[snk_y, snk_x-2]
]
food = [sh//2, sw//2]
w.addch(int(food[0]), int(food[1]), curses.ACS_PI)
key = curses.KEY_RIGHT
while True:
next_key = w.getch()
key = key if next_key == -1 else next_key
if snake[0][0] in [0, sh] or \
snake[0][1] in [0, sw] or \
snake[0] in snake[1:]:
curses.endwin()
quit()
new_head = [snake[0][0], snake[0][1]]
if key == curses.KEY_DOWN:
new_head[0] += 1
if key == curses.KEY_UP:
new_head[0] -= 1
if key == curses.KEY_LEFT:
new_head[1] -= 1
if key == curses.KEY_RIGHT:
new_head[1] += 1
snake.insert(0, new_head)
if snake[0] == food:
food = None
while food is None:
nf = [
random.randint(1, sh-1),
random.randint(1, sw-1)
]
food = nf if nf not in snake else None
w.addch(food[0], food[1], curses.ACS_PI)
else:
tail = snake.pop()
w.addch(int(tail[0]), int(tail[1]), ' ')
w.addch(int(snake[0][0]), int(snake[0][1]), curses.ACS_CKBOARD)
Обратите внимание, что эта игра работает в терминале и может не работать в некоторых интерактивных средах программирования Python, таких как Jupyter Notebook.
Подпишись 👉🏻 @KodduuPython 🤖
👍4🤔1
На этот раз мы создадим простую программу для управления базой данных студентов с использованием SQLite.
- Создаем соединение с SQLite и базу данных в памяти.
- Создаем курсор для выполнения SQL-запросов.
- Создаем таблицу Students с полями id, name и major.
- Создаем функцию add_student для добавления студента.
- Создаем функцию print_students для вывода всех студентов.
- Добавляем несколько студентов и выводим их.
- Закрываем соединение с базой данных.
Обратите внимание, что в этом примере мы использовали базу данных в памяти (':memory:'), но вы можете заменить ее на путь к файлу базы данных на диске, если вы хотите сохранить данные между запусками программы.
Подпишись 👉🏻 @KodduuPython 🤖
pythonВ этом коде мы:
import sqlite3
# Создаем соединение с SQLite и создаем базу данных в памяти
conn = sqlite3.connect(':memory:')
# Создаем курсор для выполнения SQL-запросов
cursor = conn.cursor()
# Создаем таблицу Students
cursor.execute('''
CREATE TABLE Students (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
major TEXT NOT NULL
);
''')
# Функция для добавления студента
def add_student(name, major):
cursor.execute('''
INSERT INTO Students (name, major)
VALUES (?, ?);
''', (name, major))
# Сохраняем изменения
conn.commit()
# Функция для вывода всех студентов
def print_students():
cursor.execute('SELECT * FROM Students')
print('Students:')
for row in cursor.fetchall():
print(row)
# Добавляем несколько студентов
add_student('Alice', 'Physics')
add_student('Bob', 'Computer Science')
# Выводим всех студентов
print_students()
# Закрываем соединение с базой данных
conn.close()
- Создаем соединение с SQLite и базу данных в памяти.
- Создаем курсор для выполнения SQL-запросов.
- Создаем таблицу Students с полями id, name и major.
- Создаем функцию add_student для добавления студента.
- Создаем функцию print_students для вывода всех студентов.
- Добавляем несколько студентов и выводим их.
- Закрываем соединение с базой данных.
Обратите внимание, что в этом примере мы использовали базу данных в памяти (':memory:'), но вы можете заменить ее на путь к файлу базы данных на диске, если вы хотите сохранить данные между запусками программы.
Подпишись 👉🏻 @KodduuPython 🤖
👍3
Давайте создадим простой чат-бот на Python с использованием библиотеки NLTK (Natural Language Toolkit) для обработки естественного языка.
Если библиотека NLTK не установлена, вы можете установить ее, используя pip:
Подпишись 👉🏻 @KodduuPython 🤖
pythonВ этом примере мы используем модуль
from nltk.chat.util import Chat, reflections
pairs = [
[
r"мое имя (.*)",
["Привет, %1, как могу помочь?",],
],
[
r"привет|здравствуй|добрый день",
["Привет", "Здравствуй",],
],
[
r"как дела?",
["У меня все хорошо. А у вас?",],
],
[
r"извини (.*)",
["Нет проблем", "Не волнуйся",],
],
]
def chatbot():
print("Привет! Я простой чат-бот. Напишите что-нибудь, чтобы начать общение.")
chat = Chat(pairs, reflections)
chat.converse()
if __name__ == "__main__":
chatbot()
chat из библиотеки NLTK для создания простого чат-бота. Бот отвечает на основе прописанных заранее пар регулярных выражений и ответов. Если библиотека NLTK не установлена, вы можете установить ее, используя pip:
pip install nltkОбратите внимание, что этот простой бот не использует сложные техники обработки естественного языка или искусственного интеллекта, и ответы на многие вопросы у него прописаны заранее. Для создания более сложного чат-бота, способного понимать широкий диапазон вопросов и ответов, требуется использование более сложных техник и инструментов.
Подпишись 👉🏻 @KodduuPython 🤖
👍5
Давайте создадим простую программу на Python, которая реализует алгоритм быстрой сортировки.
Быстрая сортировка - это эффективный алгоритм сортировки с асимптотической сложностью O(n log n). Он использует принцип "разделяй и властвуй" для сортировки списка элементов.
В этом коде мы:
- Выбираем элемент, который станет "опорным". Обычно это средний элемент входного массива.
- Создаем два подмассива: один с элементами меньше опорного, другой с элементами больше опорного.
- Рекурсивно применяем быструю сортировку к двум подмассивам.
- Объединяем отсортированные подмассивы и опорный элемент в один отсортированный массив и возвращаем его.
Подпишись 👉🏻 @KodduuPython 🤖
pythonВ этом примере реализуется алгоритм быстрой сортировки.
def quicksort(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 quicksort(left) + middle + quicksort(right)
print(quicksort([3,6,8,10,1,2,1]))
# Вывод: [1, 1, 2, 3, 6, 8, 10]
Быстрая сортировка - это эффективный алгоритм сортировки с асимптотической сложностью O(n log n). Он использует принцип "разделяй и властвуй" для сортировки списка элементов.
В этом коде мы:
- Выбираем элемент, который станет "опорным". Обычно это средний элемент входного массива.
- Создаем два подмассива: один с элементами меньше опорного, другой с элементами больше опорного.
- Рекурсивно применяем быструю сортировку к двум подмассивам.
- Объединяем отсортированные подмассивы и опорный элемент в один отсортированный массив и возвращаем его.
Подпишись 👉🏻 @KodduuPython 🤖
👍2
Давайте создадим программу на Python, которая реализует игру "Угадай число". Программа генерирует случайное число, а пользователь должен его угадать.
- Функция
- Пользователь вводит число, которое, по его мнению, могло быть загадано.
- Если введенное число меньше или больше загаданного, программа сообщает об этом.
- Процесс повторяется, пока пользователь не угадает число.
- Когда число угадано, программа поздравляет пользователя и сообщает количество попыток, которые потребовались для угадывания числа.
Подпишись 👉🏻 @KodduuPython 🤖
pythonВ этой программе:
import random
def guess_the_number():
number_to_guess = random.randint(1, 100)
guess = None
attempts = 0
while guess != number_to_guess:
guess = int(input('Введите число от 1 до 100: '))
attempts += 1
if guess < number_to_guess:
print('Ваше число меньше загаданного!')
elif guess > number_to_guess:
print('Ваше число больше загаданного!')
print(f'Поздравляем, вы угадали число {number_to_guess} за {attempts} попыток!')
if __name__ == "__main__":
guess_the_number()
- Функция
guess_the_number генерирует случайное число от 1 до 100.- Пользователь вводит число, которое, по его мнению, могло быть загадано.
- Если введенное число меньше или больше загаданного, программа сообщает об этом.
- Процесс повторяется, пока пользователь не угадает число.
- Когда число угадано, программа поздравляет пользователя и сообщает количество попыток, которые потребовались для угадывания числа.
Подпишись 👉🏻 @KodduuPython 🤖
👍3
Давайте создадим простую программу на Python для скрапинга данных с веб-страницы. Мы будем использовать библиотеки
Этот скрипт выполняет следующие действия:
1. Получает URL-адрес веб-страницы от пользователя.
2. Отправляет HTTP-запрос на указанный URL-адрес и получает ответ.
3. Преобразует HTML-ответ в объект BeautifulSoup для упрощения парсинга.
4. Ищет все заголовки (
5. Печатает текст каждого найденного заголовка.
Прежде чем запустить этот код, убедитесь, что у вас установлены библиотеки
requests и BeautifulSoup.python
import requests
from bs4 import BeautifulSoup
def scrape_website(url):
# Отправляем HTTP-запрос и получаем ответ
response = requests.get(url)
# Преобразуем HTML-ответ в объект BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')
# Ищем все заголовки на веб-странице
headers = soup.find_all('h1')
# Печатаем текст каждого заголовка
for header in headers:
print(header.get_text())
if __name__ == "__main__":
url = input("Введите URL-адрес веб-страницы: ")
scrape_website(url)
Этот скрипт выполняет следующие действия:
1. Получает URL-адрес веб-страницы от пользователя.
2. Отправляет HTTP-запрос на указанный URL-адрес и получает ответ.
3. Преобразует HTML-ответ в объект BeautifulSoup для упрощения парсинга.
4. Ищет все заголовки (
<h1>) на веб-странице.5. Печатает текст каждого найденного заголовка.
Прежде чем запустить этот код, убедитесь, что у вас установлены библиотеки
requests и beautifulsoup4. Если они не установлены, вы можете установить их, используя pip:pip install requests beautifulsoup4
Давайте создадим простую программу для генерации паролей. Мы будем использовать библиотеку
-
-
-
-
- Мы повторяем выбор случайного символа
Мы используем
Подпишись 👉🏻 @KodduuPython 🤖
secrets для генерации безопасных случайных чисел.pythonВ этом коде:
import secrets
import string
def generate_password(length):
alphabet = string.ascii_letters + string.digits + string.punctuation
password = ''.join(secrets.choice(alphabet) for i in range(length))
return password
if __name__ == "__main__":
password_length = int(input("Введите длину пароля: "))
print(generate_password(password_length))
-
string.ascii_letters содержит все буквы английского алфавита (заглавные и строчные).-
string.digits содержит все цифры от 0 до 9.-
string.punctuation содержит все символы пунктуации.-
secrets.choice(alphabet) выбирает случайный символ из alphabet.- Мы повторяем выбор случайного символа
length раз, чтобы создать пароль нужной длины.Мы используем
secrets вместо random, потому что secrets предназначен для работы с данными, которые требуют большей безопасности, такими как пароли, токены и т.д.Подпишись 👉🏻 @KodduuPython 🤖
👍1
Давайте создадим программу, которая реализует алгоритм поиска пути A* для навигации по простой двухмерной сетке.
В этом примере:
1. Мы определяем сетку, в которой 0 обозначает открытую клетку, а 1 обозначает заблокированную клетку.
2. Мы задаем начальную и конечную точки.
3. Мы вызываем функцию
Обратите внимание, что для выполнения этого кода вам потребуется установить библиотеку numpy. Вы можете установить ее, используя pip:
python
from heapq import heappop, heappush
def heuristic(a, b):
return abs(b[0] - a[0]) + abs(b[1] - a[1])
def a_star_search(grid, start, goal):
neighbors = [(0,1),(0,-1),(1,0),(-1,0)]
close_set = set()
gscore = {start:0}
fscore = {start:heuristic(start, goal)}
oheap = []
heappush(oheap, (fscore[start], start))
while oheap:
current = heappop(oheap)[1]
if current == goal:
return fscore[goal]
close_set.add(current)
for i, j in neighbors:
neighbor = current[0] + i, current[1] + j
tentative_g_score = gscore[current] + 1
if 0 <= neighbor[0] < grid.shape[0]:
if 0 <= neighbor[1] < grid.shape[1]:
if grid[neighbor[0]][neighbor[1]] == 1:
continue
else:
continue
else:
continue
if neighbor in close_set and tentative_g_score >= gscore.get(neighbor, 0):
continue
if tentative_g_score < gscore.get(neighbor, 0) or neighbor not in [i[1]for i in oheap]:
gscore[neighbor] = tentative_g_score
fscore[neighbor] = tentative_g_score + heuristic(neighbor, goal)
heappush(oheap, (fscore[neighbor], neighbor))
return False
grid = np.array([
[0, 1, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 0],
[0, 0, 0, 0, 0, 0],
])
start = (0, 0)
goal = (4, 5)
print(a_star_search(grid, start, goal))
В этом примере:
1. Мы определяем сетку, в которой 0 обозначает открытую клетку, а 1 обозначает заблокированную клетку.
2. Мы задаем начальную и конечную точки.
3. Мы вызываем функцию
a_star_search, которая возвращает стоимость кратчайшего пути от начала до конца, если таковой существует.Обратите внимание, что для выполнения этого кода вам потребуется установить библиотеку numpy. Вы можете установить ее, используя pip:
pip install numpy
Как насчет создания простого REST API на Python с использованием Flask? Это будет простое API для работы с пользователями.
- Получение списка всех пользователей (
- Добавление нового пользователя (
- Получение информации о конкретном пользователе по его ID (
- Удаление пользователя по его ID (
Обратите внимание, что данные хранятся в оперативной памяти и будут потеряны, когда сервер будет остановлен.
Для того чтобы установить Flask, используйте следующую команду pip:
Подпишись 👉🏻 @KodduuPython 🤖
pythonЭто очень простое API с использованием Flask, который включает в себя следующие функции:
from flask import Flask, jsonify, request
app = Flask(__name__)
users = []
@app.route('/users', methods=['GET'])
def get_users():
return jsonify(users)
@app.route('/users', methods=['POST'])
def add_user():
user = request.json
users.append(user)
return {'id': len(users)}, 200
@app.route('/users/<int:user_id>', methods=['GET'])
def get_user(user_id):
user = users[user_id - 1]
return user, 200
@app.route('/users/<int:user_id>', methods=['DELETE'])
def delete_user(user_id):
users.remove(users[user_id - 1])
return '', 204
if __name__ == "__main__":
app.run(debug=True)
- Получение списка всех пользователей (
GET /users)- Добавление нового пользователя (
POST /users)- Получение информации о конкретном пользователе по его ID (
GET /users/<user_id>)- Удаление пользователя по его ID (
DELETE /users/<user_id>)Обратите внимание, что данные хранятся в оперативной памяти и будут потеряны, когда сервер будет остановлен.
Для того чтобы установить Flask, используйте следующую команду pip:
pip install flaskИспользуйте cURL или Postman для тестирования этого API после его запуска.
Подпишись 👉🏻 @KodduuPython 🤖
👍2
Давайте создадим простой веб-сервер на Python с использованием базового модуля
Обратите внимание, что это очень простой веб-сервер и не предназначен для использования в реальной среде. Для создания реальных веб-приложений лучше использовать фреймворки веб-разработки Python, такие как Flask или Django.
Подпишись 👉🏻 @KodduuPython 🤖
http.server. Этот веб-сервер будет обрабатывать все запросы и отвечать на них простым текстовым сообщением.pythonЭтот скрипт запустит простой веб-сервер на порту 8000 (или на любом другом порту, который вы передадите функции
from http.server import BaseHTTPRequestHandler, HTTPServer
class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.end_headers()
self.wfile.write(b'Hello, world!')
def run(server_class=HTTPServer, handler_class=SimpleHTTPRequestHandler, port=8000):
server_address = ('', port)
httpd = server_class(server_address, handler_class)
print(f'Starting httpd server on port {port}')
httpd.serve_forever()
if __name__ == "__main__":
run()
run в качестве аргумента).Обратите внимание, что это очень простой веб-сервер и не предназначен для использования в реальной среде. Для создания реальных веб-приложений лучше использовать фреймворки веб-разработки Python, такие как Flask или Django.
Подпишись 👉🏻 @KodduuPython 🤖
❤1👍1
Давайте создадим программу, которая создает простой файл с данными в формате CSV с использованием модуля
- Мы определяем заголовок CSV файла в списке
- Мы определяем данные для CSV файла в списке
- Мы открываем файл
- Мы создаем объект
- Мы пишем заголовок и строки в CSV файл с помощью
- Файл закрывается автоматически после завершения блока
Этот код создаст файл
Подпишись 👉🏻 @KodduuPython 🤖
csv в Python. pythonВ этом коде:
import csv
def create_csv_file():
header = ['Name', 'Age', 'Profession']
data = [
['John', '28', 'Engineer'],
['Sarah', '32', 'Designer'],
['Jim', '35', 'Manager']
]
with open('people.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(header)
writer.writerows(data)
print("CSV file was created successfully!")
if __name__ == "__main__":
create_csv_file()
- Мы определяем заголовок CSV файла в списке
header.- Мы определяем данные для CSV файла в списке
data.- Мы открываем файл
people.csv в режиме записи.- Мы создаем объект
csv.writer, который облегчает запись данных в CSV.- Мы пишем заголовок и строки в CSV файл с помощью
writerow и writerows.- Файл закрывается автоматически после завершения блока
with.Этот код создаст файл
people.csv в той же директории, где он запущен.Подпишись 👉🏻 @KodduuPython 🤖
👍2
Давайте напишем небольшую программу, которая создает график функции с помощью библиотеки Matplotlib.
В этом коде:
- Мы используем
- Мы вычисляем
- Мы строим график
- Мы добавляем заголовок и метки осей с помощью
- Мы включаем сетку на графике с помощью
- Мы отображаем график с помощью
Перед запуском этого кода убедитесь, что у вас установлены библиотеки numpy и matplotlib. Вы можете установить их, используя pip:
python
import matplotlib.pyplot as plt
import numpy as np
def draw_plot():
x = np.linspace(-10, 10, 1000)
y = np.sin(x)
plt.plot(x, y)
plt.title("y = sin(x)")
plt.xlabel("x")
plt.ylabel("y")
plt.grid(True)
plt.show()
if __name__ == "__main__":
draw_plot()
В этом коде:
- Мы используем
numpy.linspace для создания массива значений x от -10 до 10.- Мы вычисляем
sin(x) для каждого значения в x с помощью numpy.sin.- Мы строим график
y в зависимости от x с помощью matplotlib.pyplot.plot.- Мы добавляем заголовок и метки осей с помощью
title, xlabel и ylabel.- Мы включаем сетку на графике с помощью
grid.- Мы отображаем график с помощью
show.Перед запуском этого кода убедитесь, что у вас установлены библиотеки numpy и matplotlib. Вы можете установить их, используя pip:
pip install numpy matplotlib