Python Hub - сборище Питонистов
1.71K subscribers
657 photos
1 video
37 files
276 links
Уголок счастья для любого питониста.

Сотрудничество или заказы: @leshunist

https://shcoder.dev - студия разработки ShcoderDevelopment

https://t.me/pythonhub_chat - чат
Download Telegram
Что выдаст код выше?
Anonymous Quiz
19%
A C
7%
A B C
23%
B C
2%
B
24%
C
19%
Error
4%
Не знаю
👍8
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Цикл while должен был бы быть бесконечным, если бы его не прервал break, который находится внутри if'a (условие правдиво). Так как break стоит раньше, чем print('A'), то этот вывод не сработает.

Мы можем прикреплять else к циклам (while или for). Он будет срабатывать тогда, когда цикл не был прерван break конструкцией (а у нас был).
Таким образом ответом будет только вывод 'C'.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Что такое тернарный оператор и есть ли он в Python?


➡️ Что такое тернарный оператор?

Тернарный оператор, также известный как условный оператор, является уникальным оператором, который используется для выполнения конденсированных версий простых операторов if-else. Он принимает три аргумента: условие, значение, если условие истинно, и значение, если условие ложно.

➡️ Применение тернарного оператора

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

➡️ Тернарный оператор в Python

Да, Python поддерживает тернарный оператор. В Python тернарный оператор выглядит следующим образом: x if condition else y. Здесь x присваивается, если условие истинно, иначе присваивается y.

➡️ Пример использования тернарного оператора в Python:

age = 15
type = "teenager" if age < 18 else "adult"
print(type) # Выведет: teenager


В этом примере, если переменная age меньше 18, переменной type присваивается значение "teenager", в противном случае - "adult".
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3👍3
Дескрипторы в Python

➡️ Что такое Дескрипторы?

Дескрипторы - это объекты, которые определяют поведение атрибутов при их доступе, изменении и удалении. В Python дескрипторы определяются методами __get__, __set__ и __delete__ в дескрипторном классе. Эти методы позволяют управлять тем, как атрибуты объекта получают, изменяют и удаляют значения.

➡️ Пример использования Дескрипторов

Рассмотрим пример использования дескрипторов. Предположим, у нас есть класс Person, который имеет атрибут age. Мы хотим гарантировать, что возраст не может быть отрицательным числом. Для этого мы можем использовать дескриптор. Мы создадим класс NonNegative, который будет дескриптором для возраста. В этом классе мы определим метод __set__, который будет проверять, является ли новое значение отрицательным числом. Если это так, метод __set__ вызовет исключение.

Пример кода:

class NonNegative:
def __get__(self, instance, owner):
return instance.__dict__[self.name]

def __set__(self, instance, value):
if value < 0:
raise ValueError('Cannot be negative.')
instance.__dict__[self.name] = value

def __set_name__(self, owner, name):
self.name = name

class Person:
age = NonNegative()

p = Person()
p.age = 20
print(p.age) # Вывод: 20
p.age = -20 # Возбуждает исключение ValueError
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
💲 Сколько зарабатывает Программист python в России?

По данным ГородРабот.ру, средняя зарплата Программиста python в России за 2024 год ‒ 137 672 рубля. За месяц заработная плата изменилась на 8% ‒ с 127 491 до 137 672 рубля. А чаще всего в вакансиях встречается зарплата 100 000 рублей (модальная).

Решил подушнить статистикой вам

Топ-10 городов по количеству вакансий
Январь 2024 — март 2024
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Создать 10 случайных чисел в Python [для новичков]

В Python для заполнения списка случайными числами можно использовать модуль random. Ниже представлен код:

import random

random_numbers = [random.randint(1, 100) for _ in range(10)]


В этом примере создается список из 10 случайных чисел в диапазоне от 1 до 100.


А вот вам и вопрос этот на stackoverflow, который задали в далеком 2014🙃🙃🙃

https://stackoverflow.com/questions/25719364/how-do-i-get-10-random-values-in-python
👍5
💸💸 Использование библиотеки bitcoinlib в Python


Библиотека bitcoinlib является мощным инструментом для работы с биткоином и другими криптовалютами в Python. Она обеспечивает удобный и гибкий интерфейс для создания, подписания и обработки транзакций, а также для работы с блокчейном.

➡️ Создание и подписание транзакций

Библиотека bitcoinlib позволяет легко создавать и подписывать транзакции. Это можно сделать, используя класс Transaction. Вы можете добавить входы и выходы, затем подписать транзакцию с помощью своего приватного ключа. После этого вы можете воспользоваться функцией send, чтобы отправить транзакцию в сеть.

Пример кода:

from bitcoinlib.transactions import Transaction

# Создаем новую транзакцию
tx = Transaction()

# Добавляем входы и выходы
tx.add_input('input_address', 'input_value')
tx.add_output('output_address', 'output_value')

# Подписываем транзакцию
tx.sign('private_key')

# Отправляем транзакцию
tx.send()


➡️ Работа с блокчейном

Библиотека bitcoinlib также предоставляет функции для работы с блокчейном. Вы можете получить информацию о блоках, транзакциях и адресах. Также есть возможность мониторить блокчейн на предмет новых транзакций или изменений в блоках.

Пример кода:

from bitcoinlib.blocks import Block

# Получаем информацию о блоке
block = Block('block_hash')
print(block.info())


➡️ Интеграция с другими криптовалютами

В дополнение к биткоину, bitcoinlib поддерживает работу с другими криптовалютами, такими как Litecoin и Dash. Это позволяет разработчикам создавать мульти-валютные приложения и услуги, используя единый интерфейс.

Пример кода:

from bitcoinlib.wallets import HDWallet

# Создаем кошелек для Litecoin
ltc_wallet = HDWallet.create('my_litecoin_wallet', network='litecoin')

# Получаем баланс кошелька
print(ltc_wallet.balance())
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🌐 Проверка скорости интернета с помощью Python


➡️ Использование модуля speedtest-cli

Python имеет библиотеку под названием speedtest-cli, которая облегчает проверку скорости вашего интернет-соединения. Этот модуль использует [speedtest.net](http://speedtest.net/) для проведения тестов. Установить его можно с помощью pip install speedtest-cli. После установки вы можете импортировать его в свою программу и использовать функции для проверки скорости.

➡️ Написание кода для проверки скорости

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

import speedtest
s = speedtest.Speedtest()
print(f"Download: {s.download()}")
print(f"Upload: {s.upload()}")


Этот код выдаст скорости загрузки и загрузки в битах в секунду.

➡️ Использование результатов

При получении результатов вы можете использовать их по своему усмотрению. Вы можете просто отобразить их на экране, записать их в файл для отслеживания со временем или использовать их для проверки того, соответствует ли ваше интернет-соединение обещаниям вашего провайдера.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
Как работает .strip() в Python?


➡️ Базовое использование .strip()

Функция .strip() в Python по умолчанию удаляет пробелы в начале и конце строки. Это может быть особенно полезно при работе с данными, которые могут содержать случайные пробелы, которые могут помешать анализу данных или программированию. Например, строка ' Привет, мир! ' станет 'Привет, мир!' после использования .strip().

s = '     Привет, мир!     '
print(s.strip()) # Выведет: 'Привет, мир!'


➡️ .strip() с аргументами

В дополнение к удалению пробелов, .strip() также может быть использован для удаления определенных символов из строки, передав их в качестве аргумента. Например, если мы хотим удалить определенный символ, такой как '#', из строки, мы можем это сделать, вызвав .strip('#'). Это удалит все экземпляры '#' из начала и конца строки.

s = '###Привет, мир!###'
print(s.strip('#')) # Выведет: 'Привет, мир!'


➡️ .lstrip() и .rstrip()

Python также предлагает две вариации функции .strip(), которые являются .lstrip() и .rstrip(). Эти функции работают так же, как .strip(), но .lstrip() удаляет символы только с левой стороны строки, а .rstrip() - только с правой стороны.

s = '###Привет, мир!###'
print(s.lstrip('#')) # Выведет: 'Привет, мир!###'
print(s.rstrip('#')) # Выведет: '###Привет, мир!'
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
🔥 Множественное назначение в Python


➡️ Основы множественного назначения

Множественное назначение в Python позволяет присваивать нескольким переменным значения одновременно в одной строке кода. Это делает код более чистым и легко читаемым. Например, вместо того, чтобы присваивать значения переменным по отдельности, как в x = 1; y = 2; z = 3, вы можете использовать множественное назначение, такое как x, y, z = 1, 2, 3.

# Пример множественного назначения
x, y, z = 1, 2, 3
print(x) # Вывод: 1
print(y) # Вывод: 2
print(z) # Вывод: 3


➡️ Применение множественного назначения для обмена значениями

Множественное назначение также может быть использовано для обмена значениями между переменными без использования дополнительной переменной. Например, x, y = y, x позволит обменять значения x и y. Это очень полезно, особенно в задачах сортировки и алгоритмах.

# Пример обмена значений
x, y = 1, 2
x, y = y, x
print(x) # Вывод: 2
print(y) # Вывод: 1


➡️ Множественное назначение и кортежи

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

# Пример распаковки кортежа
t = (1, 2, 3)
x, y, z = t
print(x) # Вывод: 1
print(y) # Вывод: 2
print(z) # Вывод: 3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
📝 Что такое TOML-конфиги. И как их считывать в Python?


TOML (Tom's Obvious, Minimal Language) - это простой формат конфигурационного файла, который стремится быть более понятным и легким для чтения, чем JSON или XML.

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

➡️ Как установить библиотеку toml в Python?

Чтобы начать работу с TOML в Python, вам сначала нужно установить библиотеку toml. Вы можете сделать это с помощью инструмента pip, который является стандартным менеджером пакетов для Python. Просто откройте терминал и введите следующую команду: pip install toml.

➡️ Как считывать TOML-конфиги в Python?

Считывание TOML-конфигов в Python легко осуществляется с помощью библиотеки toml. Вы просто открываете файл с помощью встроенной функции open(), а затем используете функцию toml.load() для разбора содержимого TOML-конфига. Вот простой пример:

TOML-конфиг:

[server]
host = "127.0.0.1"
port = 8000

[database]
user = "admin"
password = "secret"


Python код:

import toml

config = toml.load('config.toml')
print(config)


Результат выполнения этого кода:

{
'server': {
'host': '127.0.0.1',
'port': 8000
},
'database': {
'user': 'admin',
'password': 'secret'
}
}


В этом словаре, 'server' и 'database' - это ключи, соответствующие разделам в TOML-конфиге, и они содержат под-словари с параметрами этих разделов.

Вы можете получить доступ к любому параметру конфигурации, используя его ключи. Например, для получения адреса хоста сервера вы можете использовать config['server']['host'].
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72
🤔 Добавление вложенных списков в Python на примерах


➡️ Создание вложенных списков

Вложенный список - это список, содержащий другие списки в качестве его элементов. Создание вложенного списка в Python - это простой процесс. Вы просто создаете список, как обычно, но вместо того чтобы добавлять одиночные элементы, вы добавляете другие списки. Например, nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]].

➡️ Добавление вложенного списка

Добавление нового вложенного списка в существующий список также является прямолинейным процессом. Вы просто используете метод .append() для добавления нового списка. Например, если вы хотите добавить новый список [10, 11, 12] в наш вложенный список, вы бы написали nested_list.append([10, 11, 12]).

➡️ Доступ к элементам вложенных списков

Доступ к элементам вложенного списка осуществляется также, как и к элементам обычного списка, только с дополнительным индексированием для вложенных списков. Например, если вы хотите получить доступ к числу 5 в приведенном выше вложенном списке, вы бы использовали nested_list[1][1].

➡️ Изменение элементов вложенных списков

Изменение элементов во вложенных списках также является прямолинейным процессом. Точно также, как вы бы изменили элемент в обычном списке, вы просто обращаетесь к нужному элементу с помощью индекса и присваиваете ему новое значение. Например, nested_list[2][2] = 10 заменит число 9 на число 10 в нашем вложенном списке.
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2