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

Как построить данные в Pandas Python

Визуализация данных играет важную роль в анализе данных. Pandas — это мощная библиотека анализа данных на Python для науки о данных. Он предоставляет различные варианты визуализации данных с помощью метода .plot(). Даже если вы новичок, вы можете легко построить график своих данных с помощью библиотеки Pandas. Вам необходимо импортировать пакеты pandas и matplotlib.pyplot для визуализации данных.

В этой статье мы рассмотрим различные методы построения графиков данных с помощью Python Pandas. Мы выполнили все примеры в редакторе исходного кода pycharm с помощью пакета matplotlib.pyplot.

 

Построение в Pandas Python

В Pandas.plot() имеет несколько параметров, которые вы можете использовать в зависимости от ваших потребностей. В основном, используя параметр «kind», вы можете определить, какой тип графика вы будете создавать.

 

Синтаксис для построения данных с использованием Pandas Python

Следующий синтаксис используется для построения DataFrame в Pandas Python:

# Импорт pandas и matplotlib.pyplot

import pandas as pd

import matplotlib.pyplot as plt

# Подготовка данных для создания DataFrame

data_frame = {

'Column1': ['field1', 'field2', 'field3', 'field4',...],

‘Column2': ['field1', 'field2', 'field3', 'field4',...]

}

var_df= pd.DataFrame(data_frame, columns=['Column1', 'Column2])

print(Variable)

# построение гистограммы

var_df.plot.bar(x='Column1', y='Column2')

plt.show()

 

Вы также можете определить тип графика, используя параметр kind следующим образом:

var_df.plot(x='Column1', y='Column2', kind=’bar’)

 

Объекты Pandas DataFrames имеют следующие методы построения графиков:

  • Точечный график : plot.scatter()
  • Построение столбцов : plot.bar(), plot.barh(), где h представляет собой график горизонтальных столбцов.
  • Линейный график : plot.line()
  • Построение пирога: plot.pie()

Если пользователь использует только метод plot() без использования каких-либо параметров, он создает линейный график по умолчанию.

Теперь мы подробно остановимся на некоторых основных типах построения графиков с помощью некоторых примеров.

 

Точечная диаграмма в Pandas

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

 

Пример

Например, у нас есть данные о корреляции между двумя переменными GDP_growth и Oil_price. Чтобы построить связь между двумя переменными, мы выполнили следующий фрагмент кода в нашем редакторе исходного кода:

import matplotlib.pyplot as plt

import pandas as pd

gdp_cal= pd.DataFrame({

'GDP_growth': [6.1, 5.8, 5.7, 5.7, 5.8, 5.6, 5.5, 5.3, 5.2, 5.2],

'Oil_Price': [1500, 1520, 1525, 1523, 1515, 1540, 1545, 1560, 1555, 1565]

})

df = pd.DataFrame(gdp_cal, columns=['Oil_Price', 'GDP_growth'])

print(df)

df.plot(x='Oil_Price', y='GDP_growth', kind = 'scatter', color= 'red')

plt.show()

Как построить данные в Pandas Python

 

Построение линейных диаграмм в Pandas

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

 

Пример

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

import pandas as pd

import matplotlib.pyplot as pltinfl_cal = {'Year': [2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011],

'Infl_Rate': [5.8, 10, 7, 6.7, 6.8, 6, 5.5, 8.2, 8.5, 9, 10]

}

data_frame = pd.DataFrame(infl_cal, columns=['Year', 'Infl_Rate'])

data_frame.plot(x='Year', y='Infl_Rate', kind='line')

plt.show()




 

В приведенном выше примере вам нужно установить kind = ‘line’ для построения линейного графика.

 

Метод 2 # Использование метода plot.line()

Приведенный выше пример вы также можете реализовать с помощью следующего метода:

import pandas as pd

import matplotlib.pyplot as pltinf_cal = {'Year': [2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011],

'Inflation_Rate': [5.8, 10, 7, 6.7, 6.8, 6, 5.5, 8.2, 8.5, 9, 10]

}

data_frame = pd.DataFrame(inf_cal, columns=['Inflation_Rate'], index=[2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011])

data_frame.plot.line()



plt.title('Inflation Rate Summary of Past 11 Years')

plt.ylabel('Inflation_Rate')

plt.xlabel('Year')

plt.show()




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

Как построить данные в Pandas Python

 

Построение гистограмм в Pandas

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

 

Пример

В следующем примере мы взяли уровень грамотности в нескольких странах. DataFrames создаются, в которых «Country_Names» и «literacy_Rate» являются двумя столбцами DataFrame. Используя Pandas, вы можете отобразить информацию в форме гистограммы следующим образом:

import pandas as pd

import matplotlib.pyplot as pltlit_cal = {

'Country_Names': ['Pakistan', 'USA', 'China', 'India', 'UK', 'Austria', 'Egypt', 'Ukraine', 'Saudia', 'Australia',

'Malaysia'],

'litr_Rate': [5.8, 10, 7, 6.7, 6.8, 6, 5.5, 8.2, 8.5, 9, 10]

}

data_frame = pd.DataFrame(lit_cal, columns=['Country_Names', 'litr_Rate'])

print(data_frame)

data_frame.plot.bar(x='Country_Names', y='litr_Rate')

plt.show()




Как построить данные в Pandas Python

 

Вы также можете реализовать приведенный выше пример, используя следующий метод. Установите kind = ‘bar’ для построения гистограммы в этой строке:

data_frame.plot(x='Country_Names', y='litr_Rate', kind='bar')

plt.show()

Построение горизонтальной гистограммы в Pandas

Вы также можете нанести данные на горизонтальные полосы, выполнив следующий код:

import matplotlib.pyplot as plt

import pandas as pddata_chart = {'litr_Rate': [5.8, 10, 7, 6.7, 6.8, 6, 5.5, 8.2, 8.5, 9, 10]}

df = pd.DataFrame(data_chart, columns=['litr_Rate'], index=['Pakistan', 'USA', 'China', 'India', 'UK', 'Austria', 'Egypt', 'Ukraine', 'Saudia', 'Australia',

'Malaysia'])



df.plot.barh()



plt.title('Literacy Rate in Various Countries')

plt.ylabel('Country_Names')

plt.xlabel('litr_Rate')

plt.show()




В df.plot.barh() полоса используется для горизонтального построения. После выполнения вышеуказанного кода в окне отображается следующая гистограмма:

Как построить данные в Pandas Python

 

Построение круговой диаграммы в Pandas

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

 

Пример

В следующем примере мы отобразили информацию о «Earth_material» в разных частях круговой диаграммы. Сначала создайте DataFrame, а затем с помощью панд отобразите все детали на графике.

import pandas as pd

import matplotlib.pyplot as pltmaterial_per = {'Earth_Part': [71,18,7,4]}

dataframe = pd.DataFrame(material_per,columns=['Earth_Part'],index = ['Water','Mineral','Sand','Metals'])



dataframe.plot.pie(y='Earth_Part',figsize=(7, 7),autopct='%1.1f%%', startangle=90)

plt.show()




Приведенный выше исходный код строит круговую диаграмму доступных данных:

Как построить данные в Pandas Python

 

Вывод

В этой статье вы увидели, как построить DataFrames в Python Pandas. В статье выше выполняются разные виды построения. Для построения других типов, таких как box, hexbin, hist, kde, density, area и т. д., Вы можете использовать тот же исходный код, просто изменив тип графика.



2021-03-03T18:53:10
Python

Как разбить строки в Python

В этой статье объясняется, как разделить строки в Python с помощью методов «split()» и «partition()». Эти методы особенно полезны, если вы хотите преобразовать предложение или группу слов в анализируемые и повторяемые типы Python. Все примеры кода в этой статье протестированы на Python версии 3.8.6.

 

Метод разделения

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

Например, приведенный ниже код вернет в качестве вывода «[‘Linux’, ‘Ex’]»:

text = "Linux Ex"

text.split()

 

Приведенный ниже код вернет «[‘AndreyEx’, ‘ru’]» в качестве вывода, когда «.» используется как разделитель:

text = "AndreyEx.ru"

text.split(“.”)

 

Разделитель не обязательно должен состоять из одного символа. Метод split принимает два аргумента:

  • sep: разделитель, который будет использоваться для разделения
  • maxsplit: количество делений, которое нужно сделать

Оба эти аргумента необязательны. Как упоминалось выше, если аргумент «sep» не указан, пробел используется в качестве разделителя для разделения. Аргумент «maxsplit» имеет значение по умолчанию «-1» и по умолчанию разбивает все вхождения. Рассмотрим код ниже:

text = "AndreyEx.co.us"

text.split(“.”)

 

В качестве вывода он вернет «[‘AndreyEx’, ‘co’, ‘us’]». Если вы хотите остановить разделение при первом появлении разделителя, укажите «1» в качестве аргумента «maxsplit».

text = "AndreyEx.co.us"

text.split(“.”, 1)

 

Приведенный выше код вернет в качестве вывода «[‘AndreyEx’, ‘co.us’]». Просто укажите количество вхождений, когда вы хотите, чтобы процесс разделения остановился, в качестве второго аргумента.

Обратите внимание, что если есть последовательные разделители, для остальных разделителей после первого разделения будет возвращена пустая строка (когда аргумент «maxsplit» не используется):

text = "AndreyEx.ru"

text.split(".")

 

Приведенный выше код вернет «[‘AndreyEx’,», ‘ru’] »в качестве вывода. Если вы хотите удалить пустые строки из результирующего списка, вы можете использовать следующий оператор понимания списка:

text = "AndreyEx.ru"

result = text.split(".")

result = [item for item in result if item != ""]

print (result)

 

Вы получите «[‘AndreyEx’, ‘ru’]» в качестве вывода после выполнения приведенного выше примера кода.

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

Если при использовании методов «split()» или «rsplit()» в строке не обнаружен разделитель, исходная строка возвращается как единственный элемент списка.

 

Метод разделения

Метод partition() может использоваться для разделения строк, и он работает идентично методу split() с некоторыми отличиями. Наиболее заметное отличие состоит в том, что он сохраняет разделитель и включает его как элемент в результирующий кортеж, содержащий разделенные слова. Это особенно полезно, если вы хотите разделить строку на повторяющийся объект (в данном случае кортеж), не удаляя исходные символы. Рассмотрим код ниже:

text = "AndreyEx.ru"

result = text.partition(".")

print (result)

 

Приведенный выше пример кода вернет «(‘AndreyEx’, ‘.’, ‘ru’)» в качестве вывода. Если вы хотите, чтобы результат был типа списка, используйте вместо этого следующий пример кода:

text = "AndreyEx.ru"

result = list(text.partition("."))

print (result)

 

Вы должны получить «[‘AndreyEx’, ‘.’, ‘ru’]» в качестве вывода после выполнения приведенного выше примера кода.

Метод partition() принимает только один аргумент, называемый sep. Пользователи могут указать разделитель любой длины. В отличие от метода split(), этот аргумент является обязательным, поэтому вы не можете пропустить разделитель. Однако вы можете указать пробел в качестве разделителя.

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

text = "AndreyEx.co.us"

result = list(text.partition("."))

print (result)

 

Пример кода выдаст в качестве вывода «[‘AndreyEx’, ‘.’, ‘Co.us’]». Если вы хотите разделить все вхождения разделителя и включить разделитель в окончательный список, возможно, вам придется использовать шаблон «Регулярное выражение» или «Регулярное выражение». В примере, упомянутом выше, вы можете использовать шаблон RegEx следующим образом:

import re

text = "AndreyEx.co.us"

result = re.split("(.)", text)

print (result)

 

Вы получите «[‘AndreyEx’, ‘.’, ‘Co’, ‘.’, ‘Us’]» в качестве вывода после выполнения приведенного выше примера кода. Точка была экранирована в операторе RegEx, упомянутом выше. Обратите внимание, что хотя приведенный выше пример работает с одним символом точки, он может не работать со сложными разделителями и сложными строками. Возможно, вам придется определить свой собственный шаблон RegEx в зависимости от вашего варианта использования. Пример приведен здесь, чтобы дать вам некоторое представление о процессе сохранения разделителя в окончательном списке с помощью операторов RegEx.

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

text = "AndreyEx"

result = list(text.partition("."))

result = [item for item in result if item != ""]

print (result)

 

После выполнения приведенного выше кода вы должны получить в качестве вывода «[‘AndreyEx’]».

 

Вывод

Для простых и понятных разделений вы можете использовать методы «split()» и «partition()», чтобы получить повторяющиеся типы. Для сложных строк и разделителей вам нужно будет использовать операторы RegEx.



2021-02-25T12:04:32
Python

Применяем Python на практике: книги по прикладному использованию языка, изданные в 2020 году

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

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

Замена строки Python с использованием шаблона

Любые строковые данные можно заменить другой строкой в ​​Python с помощью метода replace(). Но если вы хотите заменить любую часть строки на соответствие определенному шаблону, вам необходимо использовать регулярное выражение. Он используется для поиска определенного шаблона в конкретном строковом значении, и строка будет заменена другой строкой, если будет найдено какое-либо совпадение. Python использует модуль ‘re’ для использования шаблона регулярного выражения в скрипте для поиска, сопоставления или замены. Использование шаблонов регулярных выражений для замены строк немного медленнее, чем обычный метод replace(), но многие сложные поиски и замены можно легко выполнить с помощью шаблона. Вы можете заменить строку различными способами, используя шаблон в Python. В этой статье показаны некоторые распространенные варианты использования шаблона для замены строки.

 

Список метасимволов:

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














    Характер Описание
    . Используется для соответствия любому одиночному символу, кроме новой строки.
    ^ Используется для сопоставления любого символа или строки в начале строки.
   $ Используется для сопоставления любого символа или строки в конце строки.
    + Используется для сопоставления одного или нескольких экземпляров шаблона.
    ? Используется для соответствия нулю или одному вхождению шаблона.
  () Используется для группировки паттернов.
  {} Используется для соответствия на основе нижнего или верхнего или нижнего и верхнего

пределы.

   [] Используется для сопоставления символов на основе заданного диапазона.
   | Используется для сопоставления шаблонов на основе логики OR.
   Используется для определения определенных символов или не символов, цифр или нецифровые.

 

Метод Replace:

В Python для замены строки используется метод sub() модуля re.

Синтаксис:

sub(pattern, replace, string, count=0, flags=0)

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

 

Пример-1: заменить строку точным соответствием

Если вам известно точное строковое значение, которое вы хотите искать в основной строке, вы можете использовать значение поисковой строки в качестве шаблона в методе sub(). Создайте файл Python со следующим скриптом. Здесь строковое значение поиска — «дождливый», а заменяющее строковое значение — «солнечный».

#!/usr/bin/env python3

# Импортировать модуль регулярных выражений



# Import regex module

import re



# Определить строку

orgStr = "Это дождливый день"



# Заменить строку

repStr = re.sub("дождливый", "солнечный", orgStr)



# Распечатать исходную строку

print("Оригинальный текст:", orgStr)



# Распечатать замененную строку

print("Замененный текст:", repStr)

 

 

Пример-2: поиск и замена строки в начале

Создайте файл python со следующим сценарием, чтобы узнать об использовании ‘^’ в шаблоне регулярного выражения. Здесь ‘ ^ [A-Za-z] +’ используется в качестве шаблона поиска. Он будет искать все буквенные символы от A до Z и от a до z в начале текста и заменять его пустым значением. Замененная строка будет напечатана в верхнем регистре для метода upper().

#!/usr/bin/env python3

# Импортировать модуль регулярных выражений

import re



# Возьмите строку input

originalText = input("Введите текстn")



# Замените строку на основе шаблона

replacedText = re.sub('^[A-Za-z]+' , '', originalText).upper()



# Распечатать замененную строку

print("Замененный текст:", replacedText)

Вывод:

Здесь «Привет, добро пожаловать в andreyex» принимается как ввод, а слово «Привет» заменяется на ‘ ’ для шаблона.

 

Пример-3: поиск и замена строки в конце

Создайте файл python со следующим сценарием, чтобы узнать об использовании символа «$» в шаблоне регулярного выражения. Здесь ‘[ a-z0-9] + $’ используется в качестве шаблона в скрипте. Он будет искать все небольшие алфавитов и цифры в конце текста, и если возвращается true, то соответствующая часть будет заменена на строке «ru».

#!/usr/bin/env python3

# Импортировать модуль регулярных выражений

import re



# Возьмите строку input

originalText = input("Введите URL-адресn")



# Замените строку на основе шаблона

replacedText = re.sub('[a-z0-9]+$' , 'ru', originalText)



# Распечатать замененную строку

print("Замененный текст:", replacedText)

Вывод:

Здесь «https://www.google.com» используется как вводимый текст, а после замены «https://www.google.ru» печатается как вывод.

 

Пример-4: поиск и замена определенной части строки

Создайте файл Python со следующим скриптом для поиска и замены части текста в том месте, где совпадает шаблон. Здесь список адресов электронной почты назначается в виде текста переменной с именем emails. ‘@[az]’ — шаблон для поиска. Он будет искать любую подстроку, начинающуюся с маленьких букв, за которыми следует символ «@». Если какая-либо подстрока совпадает, она заменит эту подстроку на @andreyex.

#!/usr/bin/env python3

# Импортировать модуль регулярных выражений

import re



# Определить строку

emails = 'nadmin@google.runmanager@yahoo.com nandreyex@andreyex.ru'



# Заменить конкретную часть строка на основе шаблона

replacedText = re.sub('@[a-z]*', '@andreyex', emails)



# Вывести исходную строку

print("Первоначальный текст:", emails)



# Печать замененных строк

print("nЗамененный текст:", replacedText)

 

Вывод:

Здесь каждая доменная часть адреса электронной почты, назначенная в тексте, заменена на «andreyex».

 

Вывод:

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



2021-02-16T22:19:59
Python

Преобразование Bytearray в байты в Python

Python поддерживает множество различных типов объектов данных. Два из них — это объекты bytearray и bytes. Функция bytearray() возвращает объект массива байтов. Этот объект является изменяемым и поддерживает целые числа от 0 до 255. Функция bytes() возвращает байтовые объекты, не может быть изменена и поддерживает целые числа от 0 до 255. В этой статье будут описаны эти функции и объяснено, как можно преобразовать объекты байтового массива. в байтовые объекты.

 

Синтаксис метода bytearray()

bytearray ([ data_source [, encoding [, errors]]])

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

 

Синтаксис метода bytes()

bytes ([data_source [, encoding [, errors]]])

Все аргументы функции bytes() необязательны, как и метод bytearray(). Функции этих аргументов такие же, как и у упомянутого выше метода bytearray().

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

 

Пример 1: преобразование данных списка из байтового массива в байты

Когда функция bytearray() содержит только один аргумент, значением аргумента будет данные словаря или переменная. В следующем примере показано, как объект словаря может быть преобразован в объект байтового массива и как затем объект байтового массива может быть преобразован в байтовый объект. Затем первый цикл for используется для отображения значений таблицы трансляции кодов ASCII, а второй цикл for используется для отображения символов соответствующих кодов ASCII.

#!/usr/bin/env python3



# Определить список

listdata = [72, 69, 76, 76, 79]

# Распечатать содержимое списка

print(" n Значения словаря: n ", listdata)



# Инициализировать объект ByteArray , со списком

byteArrayObject = ByteArray(ListData)

# печать ByteArray, значение объекта

print(" n выходной метод ByteArray(): n" ,byteArrayObject)



# Преобразование объекта bytearray в объект 

byteObject = bytes(byteArrayObject)

# Печать значения объекта байтов

print(" n Вывод метода bytes(): n ", byteObject)



print(" n Значения байтов в формате ASCII ")

# Итерировать байтовый объект, используя цикл

for val in byteObject:

print(val,' ', end='')



print( " n Строковые значения байтов")

# Итерировать байтовый объект, используя цикл

for val in byteObject:

print(chr(val),' ', end='')

Выход

Следующий вывод появится после запуска скрипта. Здесь 72, 69, 76 и 79 — это код ASCII для символов «H», «E», «L» и «O» соответственно.

 

Пример 2: преобразование строковых данных из байтового массива в байты

В следующем примере показано преобразование объектов байтового массива в байтовые объекты строковых данных. В методе bytearray() этого скрипта используются два аргумента. Первый аргумент содержит строковое значение, а второй аргумент содержит строку кодировки. Здесь кодировка utf-8 используется для преобразования в объект байтового массива. Метод decode() используется в скрипте для преобразования байтовых объектов в строковые данные. Такая же кодировка используется во время преобразования.

#!/usr/bin/env python3



# Возьмите строковое значение

text = input("Введите любой текст: n")



# Инициализировать ByteArray объект строки и кодирование

byteArrObj = ByteArray(text, 'UTF-8')

print(" n Вывод метода bytesarray(): n ", byteArrObj)



# Конвертировать bytearray в байты

byteObj = bytes(byteArrObj)

print(" n Вывод метода bytes(): n", byteObj)

# Преобразовать байты значения в строку, используя emcoding

print(" n Строку значения байт»)

print(byteObj.Decode("UTF-8"))


 

Пример 3: преобразование целочисленных данных из байтового массива в байты

В предыдущих примерах показано преобразование массива байтов и байтов на основе словарных и строковых данных. В этом третьем примере показано преобразование массива байтов в байты на основе входных данных. Здесь входное значение преобразуется в целое число и передается в качестве аргумента через функцию bytearray(), а затем объект bytearray преобразуется в объект байтов. Нулевые значения, основанные на целочисленном числе, показаны как выходные данные объекта bytearray и bytes. Общее количество байтов подсчитывается с помощью метода len() в конце скрипта и будет равно целочисленному значению, переданному в качестве аргумента в метод bytearray().

#!/usr/bin/env python3



попробовать :

# Возьмем любое числовое значение

text = int(input("Введите любое число:"))



# Инициализировать ByteArray объект с номером

byteArrObj = bytearray(text)

print("n Вывод метода bytesarray(): n ", byteArrObj)



# Преобразование объекта

byteObj = bytes(byteArrObj)

print(" n Вывод метода bytes(): n ", byteObj)



# Распечатать размер объекта байтов

print(" n Длина объекта байтов: ", len(byteObj))

except ValueError:

print(" Введите любое число значение ")

Выход

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

 

Пример 4: Создание массива байтов с помощью append() и преобразование в байты

В следующем примере показано, как объекты bytearray могут быть созданы с помощью метода append() и преобразованы в байты. Переменная arrVal объявлена здесь как объект bytearray. Затем шесть раз вызывается метод append() для добавления шести элементов в массив. Коды ASCII символов «P», «y», «t», «h», «o» и «n» равны 80, 121, 116, 104, 111 и 1120 соответственно. Они добавляются в объект bytearray. Этот объект массива позже преобразуется в объект байтов.

#!/usr/bin/env python3



# Создание ByteArray и добавить элемент, используя метод добавления()

arrVal = bytearray()

arrVal.append(80)

arrVal.append(121)

arrVal.append(116)

arrVal.append(104)

arrVal.append(111)

arrVal.append(110)



# Распечатать значения bytearray()

print(" n Вывод метода bytearray(): n", arrVal)



# Преобразование объекта bytearray в объект

byteObject = bytes(arrVal)



# Печать значения объекта байтов

print(" n Вывод метода bytes(): n ", byteObject)


 

Вывод

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



2021-02-16T12:40:15
Python

Использование UUID в Python

В Python есть библиотека с именем UUID (универсальный уникальный идентификатор) для генерации случайного объекта длиной 128 бит. Эта библиотека генерирует уникальные идентификаторы на основе системного времени и сетевого адреса компьютера. Объект UUID неизменяем и содержит некоторые функции для создания различных уникальных идентификаторов. UUID используется для многих целей, таких как создание уникального случайного идентификатора, MAC-адреса на основе идентификатора, криптографических значений хеш-функции или случайных документов. Из этой статьи Вы узнаете, как создавать различные типы библиотек UUID, используя разные функции UUID.

 

Пример 1: Создание UUID на основе системного времени и MAC-адреса

В следующем примере показано использование функции  uuid1() модуля UUID для генерации различных значений UUID и читать и печатать различные значения свойств объекта UUID. Объект UID определяется путем вызова метода uuid1() для генерации уникального идентификатора на основе системного времени и MAC-адреса. Затем печатаются нормально сгенерированный идентификатор, соответствующее значение в байтах, целочисленное значение и шестнадцатеричное значение идентификатора. Затем в следующей части сценария печатаются свойства версии, полей, узла и времени идентификатора.

#!/usr/bin/env python3



# Импорт модуля uuid 

import uuid



# Создание случайного идентификатора с помощью uuid1()

UID = uuid.uuid1()



# Распечатать нормальный идентификатор

print("Нормальное значение:", UID)

# Распечатать байтовый идентификатор

print("Значение байта:", repr(UID.bytes))

# Распечатать целочисленный идентификатор

print("Целое число value:", UID.int)

# Распечатать шестнадцатеричный идентификатор

print(" Шестнадцатеричное значение:", UID.hex)



# Распечатать номер версии

print("Версия:", UID.version)

# Распечатать значения полей

print("Поля:", UID.fields)

# Распечатать значение MAC в шестнадцатеричном формате

print("Значение узла:", hex(UID.node))

# Распечатать значение времени

print(" Значение времени:", UID.time)

Выход

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

 

Пример 2: Создание значений SHA-1 и MD5 имени хоста с помощью uuid3() и uuid5()

Важное использование UUID — создание криптографических хеш-значений. Функции uuid3() и uuid5() модуля UUID используются для генерации MD5 и SHA-1 значения. В следующем сценарии переменная кортежа с именем hosts объявляется с тремя допустимыми URL-адресами. Значения кортежа повторяются с использованием цикла for. Затем значения MD5 и SHA-1 каждого URL-адреса вычисляются и печатаются на каждой итерации цикла.

#!/usr/bin/env python3

# Импорт модуля uuid

import uuid



# Определение кортежа из трех имен хостов 

hosts = ('www.andreyex.ru', 'www.google.com', 'zavod-gornica.ru')



# Итерировать значения кортежа, используя цикл

for hostname in hosts:

# Распечатать имя хоста

print("Hostname:", hostname)

# Используйте uuid5(), чтобы получить значение SHA-1

print('t Значение SHA-1:', uuid.uuid5(uuid.NAMESPACE_DNS, hostname))

# Используйте uuid3() для получения значения MD5

print('t Значение MD5:', uuid.Uuid3(uuid.NAMESPACE_DNS, hostname))

Пример 3: создание случайных чисел с помощью uuid4()

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

#!/usr/bin/env python3



# Импорт модуля uuid

import uuid

# Инициализируем переменную

i = 1

# Повторяем цикл пять раз,

while(i<6):

# Сгенерируем случайное число

print("No-", i, ' ', uuid.uuid4())

# Увеличиваем значение на единицу

i = i + 1

 

Выход

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

 

Пример 4: Создание отсортированного UUID из списка с помощью объекта UUID

В следующем сценарии показано, как преобразовать элементы списка в UUID и распечатать значения после сортировки. Здесь переменная list_ids объявляется с четырьмя элементами списка, где каждое значение элемента должно быть в допустимом формате UUID.Сначала печатаются исходные значения list_ids. Затем каждое значение элемента списка преобразуется в UUID с помощью цикла в блоке try. Если list_ids содержит какое-либо значение элемента, которое не соответствует формату UUID, будет сгенерировано исключение ValueError и будет напечатано сообщение об ошибке. Если во время преобразования ошибок не возникает, то преобразованные UUID сортируются с помощью метода sort(). Затем с помощью цикла for распечатываются отсортированные значения UUID.

#!/usr/bin/env python3

# Импорт модуля uuid

import uuid



# Создаем список идентификаторов допустимого формата

list_Ids = [

'a4f8dd97-c8be-345b-239e-8a68e6abf800',

'673a5eaa-56c6-aaaa-bc4567-4536cd,

'dcbbaa88-5bf1-11dd-ab48-990ab200d674',

'4567aabb-89ad-77ab-67ad-aaaccdd904ae'

]



# Распечатать значения списка с помощью цикла

print(' n Значения списка:')

for val in list_Ids:

print(val)



# Значения списка будут преобразованы в uuid и отсортированы

try:

  uuids = [ uuid.UUID(s) for s in list_Ids ]

  uuids.sort()

print(' n Значения отсортированных uuids:')

  for val in uuids:

    print (val)



except ValueError:

# Распечатать сообщение об ошибке, если какое-либо значение списка находится в недопустимом формате

print('Плохо сформированный шестнадцатеричный UUID')

 

Выход

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

 

Вывод

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



2021-02-15T13:52:07
Python