Архив метки: _

Библиотека urllib в Python

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

Содержание

Введение в urllib

Urllib – это библиотека Python, предоставляющая набор модулей для работы с URL (Uniform Resource Locators). Она позволяет взаимодействовать с веб-ресурсами, выполняя HTTP-запросы, разбирая URL и обрабатывая различные аспекты веб-коммуникаций.

Зачем нужна библиотека urllib? Это мощный инструмент для решения веб-задач на языке Python. Библиотека широко используется для веб-скреппинга, выполнения API-запросов, загрузки файлов из Интернета и т.д. С помощью urllib можно автоматизировать различные процессы, связанные с веб, что делает ее незаменимой библиотекой для веб-разработчиков и специалистов по исследованию данных.

Установка urllib

Urllib входит в состав стандартной библиотеки Python, поэтому ее не нужно устанавливать отдельно. Вы можете начать использовать ее, импортировав соответствующие модули в свой Python-скрипт.

Эта библиотека доступна как в Python 2, так и в Python 3, однако его использование может несколько отличаться в разных версиях. Рекомендуется использовать Python 3, так как Python 2 больше не поддерживается.

Модули urllib

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

urllib.request

Модуль urllib.request предоставляет функции для выполнения HTTP-запросов, включая GET- и POST-запросы, и обработки ответов.

import urllib.request

# Пример: отправка GET-запроса
response = urllib.request.urlopen('https://example.com')
html = response.read()
print(html)

urllib.parse

Модуль urllib.parse предназначен для парсинга URL-адресов. Он разбивает их их на такие компоненты, как scheme, netloc, path, query и fragment.

import urllib.parse

# Пример: парсинг URL
url = 'https://www.example.com/path?param=value'
parsed_url = urllib.parse.urlparse(url)
print(parsed_url)

urllib.error

Модуль urllib.error обрабатывает исключения и ошибки, которые могут возникать при выполнении HTTP-запросов.

import urllib.error

try:
    response = urllib.request.urlopen('https://nonexistent-url.com')
except urllib.error.HTTPError as e:
    print(f'HTTP Error: {e.code}')
except urllib.error.URLError as e:
    print(f'URL Error: {e.reason}')

urllib.robotparser

Модуль urllib.robotparser используется для разбора файлов robots.txt, чтобы проверить, разрешен ли доступ веб-краулеру к определенным частям сайта.

import urllib.robotparser

rp = urllib.robotparser.RobotFileParser()
rp.set_url('https://example.com/robots.txt')
rp.read()
allowed = rp.can_fetch('MyCrawler', 'https://example.com/page')
print(allowed)

Основные HTTP-запросы

Отправка GET-запросов

Получение веб-содержимого при помощи GET-запросов – одна из основных операций в urllib.

import urllib.request

response = urllib.request.urlopen('https://example.com')
html = response.read()
print(html)

Отправка POST-запросов

POST-запросы служат для отправки данных на сервер. Они часто используются в веб-формах.

import urllib.request
import urllib.parse

data = urllib.parse.urlencode({'param1': 'value1', 'param2': 'value2'}).encode('utf-8')
response = urllib.request.urlopen('https://example.com/post', data=data)
html = response.read()
print(html)

Работа с HTTP-ответами

Вы можете получить доступ к различным свойствам HTTP-ответа, таким как код состояния, заголовки и содержимое.

import urllib.request

response = urllib.request.urlopen('https://example.com')
status_code = response.getcode()
headers = response.info()
html = response.read()
print(f'Status Code: {status_code}')
print(f'Headers: {headers}')
print(html)

Обработка ошибок HTTP

Urllib обеспечивает обработку ошибок, связанных с HTTP, таких как 404 Not Found или ошибки подключения.

import urllib.error

try:
    response = urllib.request.urlopen('https://nonexistent-url.com')
except urllib.error.HTTPError as e:
    print(f'HTTP Error: {e.code}')
except urllib.error.URLError as e:
    print(f'URL Error: {e.reason}')

Работа с URL-адресами

Парсинг URL-адресов

При помощи модуля urllib.parse можно разобрать URL на составляющие.

import urllib.parse

url = 'https://www.example.com/path?param=value'
parsed_url = urllib.parse.urlparse(url)
print(f'Scheme: {parsed_url.scheme}')
print(f'Netloc: {parsed_url.netloc}')
print(f'Path: {parsed_url.path}')
print(f'Query: {parsed_url.query}')

Конструирование URL-адресов

Вы можете конструировать URL, комбинируя их компоненты с помощью urllib.parse.urlunparse() или добавляя параметры запроса к существующему URL.

import urllib.parse

components = ('https', 'example.com', 'path', '', 'param=value', '')
constructed_url = urllib.parse.urlunparse(components)
print(constructed_url)

Продвинутые приемы использования urllib

Работа с файлами cookie

Urllib может работать с cookies с помощью модуля http.cookiejar. Он позволяет управлять данными сессии между запросами.

import urllib.request
import http.cookiejar

# Create a cookie jar to store cookies
cookie_jar = http.cookiejar.CookieJar()
# Create an opener with the cookie jar
cookie_handler = urllib.request.HTTPCookieProcessor(cookie_jar)
opener = urllib.request.build_opener(cookie_handler)
# Make a GET request to a website that sets cookies
url = 'https://httpbin.org/cookies/set?cookie1=value1&cookie2=value2'
response = opener.open(url)
# Check if cookies have been received and stored
if cookie_jar:
    print("Cookies Received:")
    for cookie in cookie_jar:
        print(f"{cookie.name}: {cookie.value}")

Работа с заголовками

Вы можете манипулировать HTTP-заголовками для включения в запросы дополнительной информации, например, User-Agent или пользовательских заголовков.

import urllib.request

url = 'https://example.com'
headers = {'User-Agent': 'My User Agent'}
req = urllib.request.Request(url, headers=headers)
response = urllib.request.urlopen(req)

Работа с перенаправлениями

Urllib может автоматически следовать за HTTP-перенаправлениями. При необходимости это поведение можно отключить.

import urllib.request

# Create a Request object with a URL that redirects
url = 'http://www.example.com'  # This URL redirects to 'https://www.example.com'
req = urllib.request.Request(url, headers={'User-Agent': 'My User Agent'})
# Open the URL without following redirects
response = urllib.request.urlopen(req, allow_redirects=False)
# Check the response status code to see if it's a redirect
if response.status == 302 or response.status == 301:
    print(f'Redirect detected: Status Code {response.status}')
else:
    final_url = response.geturl()  # Get the final URL
    print(f'Final URL: {final_url}')

Работа с тайм-аутами

Вы можете установить тайм-ауты для HTTP-запросов, чтобы предотвратить их бесконечное зависание.

import urllib.request
import urllib.error

url = 'https://example.com'
try:
    response = urllib.request.urlopen(url, timeout=10)  # Set a timeout of 10 seconds
    html = response.read()
    print(html)
except urllib.error.URLError as e:
    if isinstance(e.reason, socket.timeout):
        print("Request timed out.")
    else:
        print(f"URL Error: {e.reason}")

Веб-скрепинг с помощью urllib

Получение HTML-содержимого

Urllib можно использовать для веб-скрапинга, посылая GET-запросы на сайты и получая HTML-контент.

import urllib.request

url = 'https://example.com'
response = urllib.request.urlopen(url)
html = response.read()

Парсинг HTML с помощью BeautifulSoup

Для извлечения данных из HTML можно объединить urllib с библиотекой типа BeautifulSoup.

import urllib.request
from bs4 import BeautifulSoup

# Send a GET request to a web page and retrieve its HTML content
url = 'https://example.com'
response = urllib.request.urlopen(url)
html = response.read()
# Parse the HTML content using BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')
# Find and print a specific element from the HTML (e.g., the page title)
title_element = soup.find('title')
if title_element:
    print('Page Title:', title_element.text)
else:
    print('Title not found on the page.')

Сбор данных с веб-страниц

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

import urllib.request
from bs4 import BeautifulSoup

# URL of the web page to scrape
url = 'https://example-news-site.com'

# Send an HTTP GET request to the URL
response = urllib.request.urlopen(url)

# Read the HTML content of the page
html = response.read()

# Parse the HTML content using BeautifulSoup
soup = BeautifulSoup(html, 'html.parser')

# Find and extract article titles
article_titles = []

# Assuming article titles are in h2 tags with a specific class
for h2_tag in soup.find_all('h2', class_='article-title'):
    article_titles.append(h2_tag.text)

# Print the extracted article titles
for title in article_titles:
    print(title)

Примечание редакции: на тему скрапинга читайте также “Скрапинг с помощью Python и Selenium”.

Библиотека urllib и работа с API

Выполнение GET-запросов к API

С помощью urllib можно выполнять GET-запросы к API и получать данные.

import urllib.request

api_url = 'https://api.example.com/data'
response = urllib.request.urlopen(api_url)
data = response.read()
# Parse the JSON response if applicable.

Выполнение POST-запросов к API

Аналогичным образом можно отправлять POST-запросы к API, включив необходимые данные в тело запроса.

import urllib.request
import urllib.parse

data = urllib.parse.urlencode({'param1': 'value1', 'param2': 'value2'}).encode('utf-8')
api_url = 'https://api.example.com/data'
response = urllib.request.urlopen(api_url, data=data)
data = response.read()
# Parse the JSON response if applicable.

Работа с ответами в формате JSON

Многие API-интерфейсы возвращают данные в формате JSON, поэтому для их анализа и работы с ними можно использовать модуль json языка Python.

import urllib.request
import json

api_url = 'https://api.example.com/data'
response = urllib.request.urlopen(api_url)
data = json.loads(response.read().decode('utf-8'))

Скачивание файлов

Загрузка файлов из Интернета

Вы можете использовать urllib для загрузки файлов из Интернета, например, изображений, PDF-файлов или других документов.

import urllib.request

file_url = 'https://example.com/file.pdf'
urllib.request.urlretrieve(file_url, 'downloaded_file.pdf')

Обработка загрузки больших файлов

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

import urllib.request

file_url = 'https://example.com/large_file.zip'
with urllib.request.urlopen(file_url) as response, open('downloaded_file.zip', 'wb') as out_file:
    while True:
        data = response.read(4096)
        if not data:
            break
        out_file.write(data)

Лучшие практики

Обработка ошибок

Всегда обрабатывайте исключения и ошибки при выполнении HTTP-запросов или работе с URL-адресами, чтобы обеспечить надежность кода.

import urllib.error
import urllib.request

try:
    response = urllib.request.urlopen('https://nonexistent-url.com')
except urllib.error.HTTPError as e:
    print(f'HTTP Error: {e.code}')
except urllib.error.URLError as e:
    print(f'URL Error: {e.reason}')
else:
    # Code to execute if there are no errors
    html = response.read()
    print(html)

Заголовки User-Agent

Устанавливайте в запросах заголовок User-Agent для идентификации вашего скрипта или приложения при взаимодействии с веб-сайтами или API.

import urllib.request

# Define the User-Agent header
user_agent = 'My Custom User Agent'
# Create a request object with the User-Agent header
url = 'https://example.com'
headers = {'User-Agent': user_agent}
req = urllib.request.Request(url, headers=headers)
# Send the request
response = urllib.request.urlopen(req)
# Now you can work with the response as needed
html = response.read()
print(html)

Соблюдайте правила Robots.txt

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

import urllib.robotparser

# Create a RobotFileParser object and specify the URL of the website's robots.txt file.
rp = urllib.robotparser.RobotFileParser()
rp.set_url('https://example.com/robots.txt')
# Read and parse the robots.txt file.
rp.read()
# Check if it's allowed to crawl a specific URL.
is_allowed = rp.can_fetch('MyCrawler', 'https://example.com/some-page')
if is_allowed:
    print("Crawling is allowed for this URL.")
else:
    print("Crawling is not allowed for this URL according to robots.txt.")

Ограничение скорости

При выполнении запросов к API следует соблюдать все политики ограничения скорости, чтобы не перегружать сервер.

import urllib.request
import time

# Define the API URL and the rate limit (requests per minute)
api_url = 'https://api.example.com/data'
rate_limit = 60  # 60 requests per minute
# Function to make an API request with rate limiting
def make_api_request_with_rate_limit(url):
    # Calculate the time interval between requests
    time_interval = 60 / rate_limit  # 60 seconds in a minute
    time_since_last_request = time.time() - last_request_time
    if time_since_last_request < time_interval:
        time.sleep(time_interval - time_since_last_request)
    response = urllib.request.urlopen(url)
    return response.read()
# Initialize the time of the last request
last_request_time = time.time()
# Make API requests with rate limiting
for _ in range(10):  # Make 10 requests
    data = make_api_request_with_rate_limit(api_url)
    print(data)
# Update the time of the last request
last_request_time = time.time()

Заключение

Urllib – это универсальная библиотека на языке Python, позволяющая работать с URL-адресами, выполнять HTTP-запросы и эффективно взаимодействовать с веб-ресурсами. Если вы собираете данные с сайтов, взаимодействуете с API или загружаете файлы из Интернета,  эта библиотека вам точно пригодится. Познакомившись с ее модулями, вы сможете использовать всю ее мощь для решения задач, связанных с веб.

Перевод статьи «urllib in Python».

Сообщение Библиотека urllib в Python появились сначала на pythonturbo.


Source: pythonturbo.ru

7 лучших миостимуляторов для лица

Обновлено: 13.01.2024
Все больше профессиональных косметологических процедур можно провести прямо не выходя из дома. Для этого лишь необходимо приобрести соответствующее оборудование. К таким и относится миостимулятор для лица. Он не только дает возможность самостоятельно проводить сеансы, но и избежать ряд достаточно серьезных процедур, таких, как инъекции ботокса и др.


Фото: plasticology.ru

Есть модели, которые действуют зонально (на область вокруг глаз, подбородок), другие же позволяют затронуть всё лицо, шею и зону декольте. А самые серьезные аппараты, применимы абсолютно для любого участка, включая труднодоступные такие, как внутренняя поверхность бедра. Но практически все они позволяют получить следующий результат:

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

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

  • Мощность.
  • Количество и тип режимов.
  • Число скоростей.
  • Время работы от батареи.
  • Наличие таймера.

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

Есть противопоказания, обязательно проконсультируйтесь с врачом!

Рейтинг (2024)Цены, ₽Страна
1. Auro B-333 от 20700₽Китай
2. Myschway KYDS871 от 19500₽Китай
3. Yamaguchi EMS Face Lifting от 7500₽Китай
4. Gezatone Biolift iMask от 10300₽Тайвань
5. Gess-083 Sfera от 4000₽Китай
6. Gezatone Biolift m101 от 3800₽Китай
7. EMS MPF-13 от 1600₽Швейцария

Читайте также: 11 лучших аппаратов для RF-лифтинга

7 EMS MPF-13


Открывает наш рейтинг EMS MPF-13. Это импульсный микротоковый миостимулятор, предназначенный для уменьшения числа морщин, выравнивания рельефа лица, устранения второго подбородка, расщепления жировой прослойки, а также подтяжки контура.

Выполнен массажер из качественных материалов. Модель имеет эргономичную форму, повторяющую контур лица. Управление простое и понятное, осуществляется с помощью нескольких кнопок на корпусе. Так, можно выбрать одну из трех программ исходя из интенсивности воздействия на кожу. Скорость также есть возможность отрегулировать, ориентируясь на чувствительность (12 скоростных режимов).

Чтобы не засекать время сеанса, можно установить таймер на 15 минут и наслаждаться процедурой. Стоит отметить и то, что устройство беспроводное, работает от встроенного аккумулятора. Это не сковывает движения и позволяет проводить омолаживающие процедуры прямо во время занятий привычными делами. Время автономной работы достигает 2,5 ч.

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

Плюсы:

  • Беспроводной.
  • Время работы на одной батарее порядка 2,5 ч.
  • Эффективно борется с дряблостью и излишками жира.
  • 12 скоростных режимов.
  • Наличие таймера.
  • 3 степени интенсивности.

Минусы:

  • Индивидуальная непереносимость.
EMS MPF-13

6 Gezatone Biolift m101


На 6-ой строчке расположился миниатюрный роликовый миостимулятор — Gezatone Biolift m101. При регулярном использовании, прибор позволяет существенно повысить упругость, произвести лифтинг и улучшить контур лица.

В массажере сочетается четыре опции: роликовый массаж, вибромассаж, EMS и микротоки. Это позволяет также существенно сократить количество морщин, улучшить цвет, убрать отечность, и, как следствие, омолодить лицо и шею на несколько лет.

Задействует же миостимулятор сразу три зоны: шею, лицо и область декольте. Видимый результат уже после первого применения. Модель беспроводная, миниатюрная. Поэтому использовать ее можно где угодно. Время сеанса составляет примерно 15 минут в день. Работает прибор от встроенного аккумулятора и достаточно долго держит заряд.

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

Плюсы:

  • Мощный аккумулятор.
  • Стильный.
  • Эффективная работа.
  • 4 типа воздействия на кожу.
  • Недорогой.

Минусы:

  • Не закрепляется на лице.
Gezatone Biolift m101

5 Gess-083 Sfera


Отлично снимает отеки, подтягивает кожу, делает цвет лица равномерным, сокращает мимические морщины и участник, занявший 5-ю позицию рейтинга. GESS-083 Sfera оснащен 4-мя режимами мощности. В набор входит USB-кабель, чехол для хранения и подробная инструкция.

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

Прибор рекомендовано использовать 1 раз в 3-4 дня по 20-60 минут. Продолжительно сил одного сеанса составляет 6-10 процедур. Поэтому он отлично подходит для домашнего использования. При долгом неиспользование техника самостоятельно отключится.

Отзывы о приборе преимущественно положительные. Покупателям нравится, что миостимулятор обладает антивозрастным эффектом, а также усиливает действие косметических средств. Работает он от встроенного Li-ion аккумулятора, одного заряда которого хватает на 300 минут непрерывного использования. Но вот индикатора заряда нет, поэтому прибор может перестать работать в самый неподходящий момент. Зато компактные габариты и малый вес позволяют брать его с собой в поездки и путешествия.

Плюсы:

  • Отлично помогает бороться с возрастными проявлениями на коже лица и шеи.
  • 300 минут автономной работы.
  • Самоотключение.
  • Компактный и легкий.
  • Увеличенный диаметр электродов.
  • 4 режима.

Минусы:

  • Отсутствует индикатор заряда.
GESS-083 Sfera

4 Gezatone Biolift iMask


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

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

Для начала работы необходимо нанести специальный гель, затем надеть маску и выключить режим. Далее прибор все сделает сам. Даже отключится через 11 минут. Всего же тут предусмотрены две автоматические программы: 1- для лифтинга и коррекции морщин, 2 — при отеках и усталости. Миостимулятор беспроводной, работает от аккумулятора и долго держит заряд.

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

Плюсы:

  • Таймер на 1 рабочий цикл.
  • Функция нагрева.
  • Уменьшает отеки, нормализует лимфоток.
  • Компактный, можно брать с собой в дорогу.
  • Фиксируется на лице и можно продолжать заниматься привычными делами.
  • Долго держит заряд.

Минусы:

  • Воздействует исключительно на зону глаз.
Gezatone Biolift iMask

3 Yamaguchi EMS Face Lifting


Бренд с мировым именем YAMAGUCHI открывает тройку лидеров. Модель EMS Face Lifting отлично подходит для подтяжки кожи лица, шеи и зоны декольте. Принцип работы основан на свето- и гальванотерапии, вибрации, инфракрасного излучения, миостимуляции, микротоках.

Прибор эргономичный и компактный. Рабочая часть полностью повторяет контуры лица. Вторая — отлично ложится в ладонь. Массажер оснащен таймером и функцией нагрева. Последнее отлично ускоряет лимфоток и повышает эффективность от процедуры. Это беспроводная модель, работающая от батареи. Одного заряда хватает на несколько достаточно продолжительных сеансов. Для хранения и транспортировки предусмотрена небольшая сумочка.

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

Основываясь на отзывах покупателей, прибор полностью оправдывает свою немаленькую стоимость. Он действенный, достаточно легкий (всего 200 грамм), имеет привлекательный современный дизайн и высокое качество исполнения. Но вот режим «ток» для некоторых пользователей оказался болезненным.

Плюсы:

  • Легкий.
  • Стильный и компактный.
  • Беспроводной.
  • Несколько режимов работы.
  • Подходит для различных зон.

Минусы:

  • Режим микротока вызывает болезненные ощущения у людей с чувствительной кожей.
  • Дорогой.
YAMAGUCHI EMS Face Lifting

2 Myschway KYDS871


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

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

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

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

Плюсы:

  • Каждую пару электродов можно отдельно регулировать.
  • Позволяет задействовать абсолютно все участки тела.
  • Профессиональный аппарат.
  • Высокая мощность.
  • Много режимов, можно менять частоту.
  • Отличное качество, надежность.
Профессиональный аппарат для миостимуляции Myschway KYDS871

1 Auro B-333


Лидирующую позицию занимает AURO B-333. Аппарат отлично подойдет как для домашнего применения, так и профессиональной деятельности. Спектр его действия обширен. Прибор позволяет заметно омолодить различные участки тела и лица, уменьшить число растяжек и морщин, улучшить кровоток и лимфоток, ускорить метаболизм и расщепление жировой прослойки, избавить от целлюлита, помочь в похудении и др.

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

Причем, аппарат позволяет за один сеанс проработать сразу несколько участков с различной частотой воздействия. Комплектация за счет этого богатая. В наборе есть по 10 штук больших и малых электродов, 12 узких поясов и 1 широкий, по 2 электрода для зоны декольте и лица, кабель для питания и для 12 для электродов.

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

Плюсы:

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

Минусы:

  • Громоздкий.
AURO B-333

Читайте также: 15 лучших миостимуляторов

Какой миостимулятор для лица лучше выбрать

Победителем рейтинга заслуженно становится профессиональный миостимулятор AURO B-333. Он позволяет существенно омолодить не только лицо, но и все тело, воздействуя даже на самые сложные мышцы. Богатая комплектация, наличие дисплея и понятное управление также являются весомыми достоинствами данной модели. Но вот в дорогу его с собой не возьмешь, прибор достаточно громоздкий.

Зато миниатюрными размерами может похвастаться YAMAGUCHI EMS Face Lifting, который уместиться даже в дамскую косметичку. Зато он неплохо позволяет проработать различные участки, улучшить кровоток и сократить мимические морщинки. Работы же аккумулятора хватает на достаточно большое число сеансов.

А вот не отрываться от привычных дел позволяет EMS MPF-13. Он крепится на нижнюю часть лица и позволяет улучшить контур, убрать второй подбородок и сократить жировую прослойку. Прибор оснащен 12-тью программами и 3-мя скоростными режимами, а время работы на одной батарее достигает 2,5 ч.

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

Удачи!

The post 7 лучших миостимуляторов для лица appeared first on Рейтинги, подборки и список лучшего.


Source: spasibovsem.ru krasota-i-zdorove

Наиболее используемые функции Pandas

Pandas – одна из самых популярных и используемых библиотек Python. Функций в ней так много, что бывает трудно запомнить все. Но запомнить основые вполне возможно. В этой статье мы рассмотрим некоторые функции Pandas из числа наиболее используемых.

1. Считывание CSV-файла

Существует множество случаев, когда данные представлены в CSV-файле. Для загрузки таких файлов мы используем функцию read_csv(). Она имеет следующие параметры:

  • filepath – адрес файла для чтения в кавычках
  • sep для указания разделителя (по умолчанию – запятая)
  • header для указания номера строки, содержащей метки столбцов
  • names  (опциональный) для явного указания меток столбцов
  • index_col (опциональный) для указания, какой столбец используется в качестве меток строк

Пример:

df = pd.read_csv('train.csv')

Примечание редакции: подробнее о чтении CSV читайте в статье “Как прочитать CSV-файл в Python”.

2. head() и tail()

Для отображения первых и последних строк данных мы используем функции head() и tail() соответственно. Мы можем указать, сколько строк нужно вывести, передав число в функцию. По умолчанию она выводит пять строк.

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

Вывод первых строк:

df.head()

Результат:

Таблица из пяти строк - вывод функции df.head() без указания количества выводимых строк.

Вывод двух последних строк:

df.tail(2)

Результат:

Таблица из двух строк, результат работы функции df.tail(2)

3. Shape

Для отображения размеров DataFrame, т.е. количества строк и столбцов, мы используем атрибут shape.

df.shape

# Результат:
#(891, 12)

4. info()

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

df.info()
Вывод функции df.info()

Функция info() выводит общее количество записей в данных вместе с диапазоном. Приведенные данные имеют 11 столбцов, которые относятся к типам float, int и object (string). Они занимают 83,7 КБ памяти.

5. Describe

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

Для непрерывных переменных эта функция возвращает количество, среднее значение, медиану, стандартное отклонение, 25-й и 75-й процентили, максимальное и минимальное значения.

df.describe()
Вывод функции Pandas describe(): таблица на 7 столбцов

Функция describe() имеет параметр percentiles, в котором мы можем указать перцентили, которые хотим включить в вывод.

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

df.describe(include='all')

Результат:

Вывод функции df.describe(include='all'). Таблица на 12 столбцов.

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

Мы можем указать, хотим ли мы отображать только столбцы одного типа, например, числовые, объектные или категориальные. Давайте выведем только строковые:

df.describe(include = [np.object])
# используйте include = ['category'] для категориальных столбцов
# используйте include = [np.number] для числовых столбцов

Результат:

Таблица на 5 столбцов и 4 строки

Мы также можем использовать describe() для конкретного столбца (столбцов). Если же мы хотим удалить некоторые столбцы из сводки статистики, можно использовать параметр exclude.

6. value_counts

Для вычисления и отображения частотности каждого значения в столбце DataFrame используется функция value_counts().

df['Survived'].value_counts()

# Результат:
# 0    549
# 1    342
# Name: Survived, dtype: int64

Мы можем получить процентные значения для каждого уникального элемента в столбце, используя аргумент normalize=True.

df['Survived'].value_counts(normalize=True)*100

# Результат:
# 0    61.616162
# 1    38.383838
# Name: Survived, dtype: float64

Для наглядного представления чисел можно вывести график:

df['Survived'].value_counts(normalize=True).plot.bar()
Столбцовая диаграмма на два столбца: 0 и 1

7. Drop

Иногда нам необходимо удалить из данных некоторые столбцы и строки. Для этого используется функция drop().

С помощью параметра axis мы можем сообщить, столбец это или строка.

# столбец
df.drop(['Ticket'], axis=1, inplace=True)

# строка
df.drop(3, axis=0, inplace=True

Как вы уже поняли, axis=1 указывает на столбец, а axis=0 – на строку. inplace=True означает, что изменения сохраняются в исходном DataFrame.

8. Columns

Для отображения имен столбцов в DataFrame мы используем атрибут columns.

df.columns


# Результат:
# Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp',
#        'Parch', 'Fare', 'Cabin', 'Embarked'],
#       dtype='object')

9. rename()

Часто имена столбцов имеют нестандартный формат. Чтобы их изменить, мы используем функцию rename(). Для этого в функцию нужно передать текущее имя столбца и его новое имя:

df.rename(columns={'PassengerId' : 'ID'}, inplace=True)

Примечание редакции: об этом и других изменениях в столбцах читайте в статье “Обновление строк и столбцов в Pandas”.

10. unique() и nunique()

Для нахождения всех уникальных значений в столбце используется функция unique(), а для нахождения их количества – функция nunique().

df['Embarked'].unique()

# array(['S', 'C', 'Q', nan], dtype=object)

df['Embarked'].nunique()

# 3

Функция unique() включает значения nan, а функция unique() исключает их.

Перевод статьи «The Most Used Functions of Pandas».

Сообщение Наиболее используемые функции Pandas появились сначала на pythonturbo.


Source: pythonturbo.ru

Визуализация данных с помощью Seaborn

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

Что такое линейный график?

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

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

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

В приведенном ниже наборе данных колонки переменных – ‘cyl‘, ‘vs‘, ‘am‘, ‘gear‘ и ‘carb‘ – являются категориальными переменными, поскольку все значения данных относятся к определенной категории или диапазону значений.

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

Входной набор данных:

Массив данных MTCARS

Построение первого участка графика Seaborn

Чтобы начать работу с Line Plots, нам необходимо установить и импортировать библиотеку Seaborn в среду Python с помощью следующей команды:

Синтаксис:

pip install seaborn

После завершения установки импортируйте библиотеку в текущую рабочую среду и используйте функции:

Синтаксис:

import seaborn

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

Создание одиночного линейного графика с помощью Seaborn

Мы можем предоставить дискретные значения или использовать наборы данных для создания линейного графика Seaborn.

Синтаксис:

seaborn.lineplot(x, y, data)

  • x: Переменная с координатой для оси x
  • y: Переменная с координатой для оси y
  • data: Объект, указывающий на весь набор данных или значения данных.

Пример 1: Использование случайных данных для построения линейного графика Seaborn

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

Year = [2012, 2014, 2016, 2020, 2021, 2022, 2018]
Profit = [80, 75.8, 74, 65, 99.5, 19, 33.6]

data_plot = pd.DataFrame({"Year":Year, "Profit":Profit})

sns.lineplot(x = "Year", y = "Profit", data=data_plot)
plt.show()

На приведенном ниже линейном графике мы можем наблюдать линейную зависимость между двумя переменными – ” Year” и “Profit”.

Вывод:

Пример 2: Использование набора данных для создания линейного графика и отображения взаимосвязи между двумя переменными.

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.read_csv("C:/mtcars.csv")
info = data.iloc[1:20,:5]
sns.lineplot(x = "drat", y = "mpg",data=info)
sns.set(style='dark',)
plt.show()

Исходные данные:

Входной набор данных Seaborn LinePlot

Вывод:

Одновременное изображение нескольких графиков

Мы можем создать несколько графиков для визуализации данных в одном и том же пространстве. Мы можем использовать один или несколько столбцов данных/переменных данных и изобразить взаимосвязь между ними в целом.

1. Использование параметра hue для изображения нескольких графиков разного цвета

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

Синтаксис:

seaborn.lineplot(x,y,data,hue)

Пример:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.read_csv("C:/mtcars.csv")
info = data.iloc[1:20,:5]
sns.lineplot(x = "drat", y = "mpg", data=info, hue="cyl")
plt.show()

Приведенный ниже график представляет собой три линии разной цветовой гаммы, отображающие взаимосвязь между “drat“, “mpg” и “cyl” соответственно.

Вывод:

2. Использование параметра style для построения различных типов линий

Мы можем установить аргумент style, чтобы задать различные типы линий: штрих, точки (маркеры) и т.д.

Синтаксис:

seaborn.lineplot(x, y, data, style)

Пример 2:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.read_csv("C:/mtcars.csv")
info = data.iloc[1:20,:5]
sns.lineplot(x = "drat", y = "mpg", data=info, hue="cyl", style="cyl")
plt.show()

На графике представлены отношения значения ‘cyl’ к ‘mpg’ и ‘drat’ с различными структурами линий, т.е. простой линией, пунктиром и точками.

Вывод:

3. Использование параметра размера для построения нескольких линейных графиков в Seaborn

Мы можем использовать параметр size функции seaborn.lineplot() для представления взаимосвязей между несколькими переменными данных с помощью линии разного размера. Таким образом, эта линия действует как группирующая переменная с различным размером/шириной в зависимости от величины данных.

Синтаксис:

seaborn.lineplot(x, y, data, size)

Пример 3:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.read_csv("C:/mtcars.csv")
info = data.iloc[1:20,]
sns.lineplot(x = "drat", y = "mpg", data=info, hue="gear",style="gear",size="gear")
plt.show()

Исходные данные:

Набор данных для построения нескольких графиков

Вывод:

Применение различной цветовой палитры

Цветовая карта и палитра Seaborn определяют цветовой диапазон для моделей визуализации. Параметр palette вместе с hue может использоваться для определения кодировки цветовой схемы.

Синтаксис:

seaborn.lineplot(x,y,data,hue,palette)

Пример:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
 
data = pd.read_csv("C:/mtcars.csv")
info = data.iloc[1:20,]
sns.lineplot(x = "drat", y = "mpg", data=info, hue="gear", palette = "Set1")
plt.show()

Вывод:

Добавление полос ошибок к линейным графикам

Линейные графики могут быть использованы для определения доверительных уровней/интервалов на графиках для отображения коэффициентов ошибок с помощью параметра err_style.

Синтаксис:

seaborn.lineplot(x,y,data,err_style=”bars”)

Пример:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.read_csv("C:/mtcars.csv")
info = data.iloc[1:20,]
sns.lineplot(x = "cyl", y = "mpg",data=info, err_style="bars")
plt.show()

Вывод:

Установка различных стилей с помощью функции seaborn.set()

Функция Python seaborn.set() может быть использована для отображения графика с другим стилем фона.

Синтаксис:

seaborn.set(style)

Пример:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

data = pd.read_csv("C:/mtcars.csv")
info = data.iloc[1:20,]
sns.lineplot(x = "cyl", y = "mpg",data=info,hue="gear")
sns.set(style='dark',)
plt.show()

Вывод:

Заключение

В этой статье мы разобрались с линейными графиками и их вариациями.

Перевод статьи «Data Visualization with Seaborn Line Plot».

Сообщение Визуализация данных с помощью Seaborn появились сначала на pythonturbo.


Source: pythonturbo.ru

Исправление ошибки ‘No such file or directory’ при установке пакетов

Введение

Частой ошибкой, которую вы можете получить при установке модулей Python, является ошибка ‘No such file or directory‘. Эти слова могут ввести в заблуждение, потому что обычно все файлы и каталоги из пакета, который вы пытаетесь установить находятся на своих местах. На самом деле, ошибка возникает из-за того, что Python пытается вызвать системный компилятор во время установки модуля, в то время как пути к нему закодированы в самом Python и он не находит нужные ему файлы. В этой статье будет приведен пример контекста получения ошибки и шаги по ее устранению на разных платформах.

Ошибки отсутствия компилятора

Пакеты Python обычно устанавливаются с помощью менеджера пакетов pip командой pip install. pip выведет список зависимостей, дополнительно требуемых выбранным вами пакетом, и длинный список результатов процесса установки. Иногда программа установки завершается с ошибкой, содержащей в конце вывода текст, подобный следующему:

Output
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.10 -I/usr/local/lib/python3.10/dist-packages/numpy/core/include -I/usr/include/python3.10 -c radiomics/src/_cmatrices.c -o build/temp.linux-x86_64-3.10/radiomics/src/_cmatrices.o
      error: command 'x86_64-linux-gnu-gcc' failed: No such file or directory
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> pyradiomics

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

Конкретно эта ошибка возникла в результате попытки установить pd-dwi с помощью pip install pd-dwi. Это библиотека Python, используемая в исследованиях химиотерапии.

Некоторые библиотеки Python, особенно те, которые используются для научных вычислений, после установки требуют компиляции дополнительного кода локально на вашей машине. Python – это интерпретируемый язык высокого уровня, который может работать только с интерпретатором Python. Языки низкого уровня, такие как C или Rust, которые иногда включаются в библиотеки Python для высокопроизводительной обработки, должны быть скомпилированы и оптимизированы, прежде чем стать исполняемыми. Если в вашей системе нет компилятора, установка завершится неудачно.

На большинстве современных платформ, когда вы устанавливаете менеджер пакетов Python, pip, он также устанавливает среду компилятора и соответствующие пакеты. Однако есть несколько причин, по которым этого может не произойти. Например, возможно, что компилятор был случайно удален или вообще не был установлен. И в отличие от Linux, на Mac или Windows пакеты Python обычно не устанавливаются системным менеджером пакетов, что может стать причиной возникновения проблем.

Следующие шаги этого руководства содержат инструкции по установке и проверке совместимого с Python компилятора на Ubuntu/Debian Linux, Red Hat/Rocky Linux, Windows и macOS.

Пакеты компиляторов для Ubuntu и Debian

На Ubuntu вы можете установить пакет build-essential, который предоставит все пакеты, необходимые для современной, хорошо поддерживаемой среды компилятора. build-essential – это так называемый мета-пакет. Он не относится к какому-то одному пакету, а скорее привлекает ряд общих инструментов компилятора в качестве зависимостей.

Вы также можете установить libpython3-dev. Это пакет экосистемы Ubuntu/Debian, который по сути “подключает” компилятор к Python и предоставляет всю необходимую конфигурацию бэкенда для автоматического вызова компилятора из Python или из pip. Обычно он устанавливается автоматически вместе с pip, но если вы устанавливаете pip без использования менеджера пакетов, он может отсутствовать.

Установите пакеты с помощью apt:

$ sudo apt install build-essential libpython3-dev

Это также приведет к установке ряда зависимостей. После этого вы можете убедиться в наличии компилятора, проверив существование команды make в вашей системе. Для этого используйте команду which:

$ which make

Output
/usr/bin/make

make – это команда, которую gcc, самый популярный компилятор с открытым исходным кодом, использует для разбора Makefile, то есть инструкции по компиляции, которые предоставляются в каждом пакете. Теперь, если make существует, попробуйте снова установить ваш модуль Python с помощью pip.

Пакеты компиляторов для Red Hat и Rocky Linux

В Red Hat и Rocky Linux вы можете использовать функцию groups менеджера пакетов dnf для установки пакетов, которые включают хорошо поддерживаемую среду компилятора. Группа пакетов, которую вы установите, называется “Development Tools”.

Для установки группы пакетов используйте две команды dnf:

$ sudo dnf groups mark install "Development Tools"
$ sudo dnf groupinstall "Development Tools"

Это также приведет к установке ряда зависимостей. Далее вы можете установить python3-devel, пакет экосистемы Red Hat, который по сути “подключает” компилятор к Python. python3-devel предоставляет всю необходимую конфигурацию бэкенда для автоматического вызова компилятора из Python или из pip:

$ sudo dnf install python3-devel

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

$ which make

Output
/usr/bin/make

Если теперь make существует, попробуйте снова установить ваш модуль Python с помощью pip.

Среды компиляторов Windows

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

  • Если вы используете Python с WSL2, это то же самое, что запустить Python под Linux, поэтому вы можете следовать инструкциям по устранению неполадок для вашего дистрибутива (Ubuntu по умолчанию).
  • Если вы используете Python с Anaconda, то она предоставит свои собственные пакеты компилятора в среде conda, что обычно позволяет избежать подобных ошибок.
  • Если вы используете Python в Windows, есть несколько других решений. По умолчанию Python на Windows пытается использовать Microsoft Visual Studio Build Tools. Это очень большая установка, добавляющая множество пакетов экосистемы Windows, которые могут быть вам незнакомы, если вы в основном работаете в облаке, но они должны работать автоматически после установки, как make в Linux.
  • Если у вас уже есть рабочая версия gcc с открытым исходным кодом и инструменты сборки make, установленные в вашей среде Windows с помощью MinGW или Chocolatey, вы можете указать Python использовать этот компилятор, создав файл в Lib/distutils/distutils.cfg относительно пути установки Python и добавив следующее содержимое:
[build]
compiler=mingw32

[build_ext]
compiler=mingw32

Если у вас возникли проблемы с установкой компилятора в Windows, вы можете попробовать установить предварительно скомпилированный пакет wheel для устанавливаемой библиотеки, хотя это менее удобно, чем установка из pip. Кроме того, они обычно доступны только на разовой основе.

Среды компиляторов macOS

macOS включает инструментарий компилятора в пакете разработки Apple, XCode. Как и Visual Studio в Windows, XCode представляет собой полноценную среду разработки со своим собственным интерфейсом, но для компиляции пакетов Python вам не потребуется использовать сам XCode. Вместо этого вам нужно только убедиться, что пакеты XCode установлены. Это можно сделать, выполнив команду xcode-select -install:

$ xcode-select –install

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

Заключение

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

Перевод статьи «How to Fix Python `No such file or directory` Compiler Errors When Installing Packages».

Сообщение Исправление ошибки ‘No such file or directory’ при установке пакетов появились сначала на pythonturbo.


Source: pythonturbo.ru

Шпаргалка по SQL – базовые запросы

Порядок выполнения ключевых слов отличается от последовательности в SQL-запросе:

  1. Сначала выполняется оператор FROM — происходит выбор нужной таблицы.
  2. Затем SELECT — отбираются указанные столбцы.
  3. Потом ORDER BY — производится сортировка результирующей таблицы.
  4. И в самом конце LIMIT — ограничивается количество выводимых записей.

SELECT

Чтобы вывести все записи со значениями во всех колонках, необходимо либо перечислить все колонки в операторе SELECT, либо указать после оператора специальный символ «*»:

SELECT column_1, column_2, ...
FROM table


SELECT *
FROM table

ORDER BY

Для сортировки значений по какой-либо колонке в SQL используется оператор ORDER BY с ключевыми словами ASC (по возрастанию) или DESC (по убыванию).

При этом по умолчанию сортировка происходит по возрастанию, т.е. ASC указывать не обязательно. Для сортировки по убыванию после ORDER BY необходимо явно указать DESC:

SELECT column_1, column_2
FROM table
ORDER BY column_1        -- сортировка по возрастанию


SELECT column_1, column_2
FROM table
ORDER BY column_1 ASC    -- сортировка по возрастанию


SELECT column_1, column_2
FROM table
ORDER BY column_1 DESC   -- сортировка по убыванию

Сортировать результат SQL-запроса можно сразу по нескольким колонкам, указывая их после ORDER BY через запятую вместе с направлением сортировки (ASC или DESC):

SELECT column_1, column_2
FROM table
ORDER BY column_1 DESC, column_2    -- сначала сортировка по первой колонке (по убыванию), 
                                    -- затем по второй (по возрастанию)

AS

При составлении SQL-запросов колонкам в результирующей таблице можно присваивать любые другие имена (их ещё называют «алиасами»). Это можно делать с помощью оператора AS:

SELECT name AS new_name
FROM table

SELECT name new_name
FROM table

Функции

В SQL-запросах к колонкам таблиц можно применять разные функции — так же, как, например, в Excel.

SELECT function(a, b, c, …)
FROM table

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

SELECT function_one(function_two(a, b), c)

Строки

Список функций со строковыми данными

Типы данных

Иногда возникает необходимость изменить тип данных в какой-нибудь колонке результирующей таблицы, не меняя при этом свойства исходной таблицы — например, преобразовать число в текст (тип данных VARCHAR). Для этого существует функция CAST.

На вход функции CAST необходимо подать имя колонки, указав через AS тип данных, к которому нужно привести все значения:

SELECT CAST(column AS VARCHAR)
FROM table

Также изменить тип данных можно с помощью специального синтаксиса с двумя двоеточиями («::»):

SELECT column::VARCHAR
FROM table

Подробнее о преобразовании типов данных.

Конкатенация

Функция CONCAT принимает на вход несколько аргументов и возвращает результат их последовательного сложения друг с другом:

SELECT CONCAT('SQL', ' ', 'Simulator ', 2022)

Результат:
SQL Simulator 2022

Подробнее о конкатенации в примерах.

Дата и время

Подробнее о DATE_PART.

COALESCE

Функция COALESCE читает список значений слева направо и, как только видит значение, которое не является NULL, сразу же возвращает его и прекращает чтение списка.

SELECT COALESCE(NULL, 'I am not NULL' , 'karpov.courses')

Результат:
I am not NULL


SELECT COALESCE(NULL, 25, 100, 150)

Результат:
25


SELECT COALESCE('NULL', 'I am not NULL', 'karpov.courses')

Результат:
NULL

PostgreSQL COALESCE

Математика и арифметика

SELECT (column_1 + column_2) / 2 AS average
FROM table
SELECT ROUND(100.5454, 2)

Результат:
100.55


SELECT ROUND(100.551, 1)

Результат:
100.6


SELECT ROUND(100.5511)

Результат:
101.0

Условия CASE

CASE  
WHEN logical_expression_1 THEN expression_1
WHEN logical_expression_2 THEN expression_2
...
ELSE expression_else
END AS case_example
  1. На каждом этапе WHEN – THEN вычисляется некоторое логическое выражение logical_expression, стоящее после WHEN. Если оно оказывается истинным (TRUE), то в качестве результата оператор возвращает выражение expression, стоящее после THEN, и заканчивает свою работу.
  2. Если выражение оказывается ложным (FALSE), то оператор продолжает работу и проверяет следующее условие.
  3. Если ни одно из условий не проходит проверку на истинность, то возвращается выражение, указанное после ELSE. При этом ELSE указывать не обязательно — если его не указать, то вернётся пустое значение NULL (в случае, если все проверки после WHEN оказались ложными).
  4. В конце обязательно указывается ключевое слово END, которое говорит об окончании конструкции CASE. Также после END новому расчётному полю с помощью AS можно присвоить некоторое имя, но это делать не обязательно. Обязательными являются только ключевые слова CASE,  WHEN,  THEN и END.

Сообщение Шпаргалка по SQL – базовые запросы появились сначала на Веб-студия Юсота.


Source: usota.ru knowledge-base