Повседневный Пример Того, Как может Произойти typeerror: ‘int’ объект не является подписываемым
Давайте возьмем простой и повседневный пример вашей даты рождения, записанной в дате, месяце и году. Мы напишем программу, которая возьмет ввод пользователя и распечатает дату, месяц и год отдельно.
#Our program begins from here (input("what is your birth date?")) print(" birth_date:",birth_date) print("birth_month:",birth_month) print("birth_year:",birth_year)
Выход:
Объяснение:
Здесь, во-первых, мы взяли программу для печати даты рождения отдельно с помощью индексации. Во-вторых, мы взяли целочисленные входные данные даты рождения в виде даты, месяца и года. В-третьих, мы разделили дату, месяц и год с помощью индексации, а после этого печатаем их отдельно, но получаем вывод ad TypeError: объект ‘int’ не поддается подписке. Как мы изучали выше, объект integer не является подписываемым.
Как PowerShell анализирует числовые литералы
PowerShell версии 7.0 изменил способ синтаксического анализа числовых литералов, чтобы включить новые функции.
Синтаксический анализ вещественных числовых литералов
Если литерал содержит десятичную запятую или электронную нотацию, то литеральная строка анализирует вещественное число.
- Если десятичный суффикс представлен, то непосредственно в .
- В противном случае следует выполнить синтаксический анализ и применить множитель к значению. Затем проверьте суффиксы типов и попытайтесь привести их в соответствующий тип.
- Если строка не имеет суффикса типа, выполните синтаксический анализ как .
Геосвязь целые числовые литералы
Литералы целочисленного типа анализируются с помощью следующих шагов:
- Определение формата системы счисления
- Для двоичных форматов следует выполнить синтаксический анализ в .
- Для формата в шестнадцатеричном формате следует выполнить синтаксический анализ с помощью специального касиес, чтобы хранить исходные поведения, когда значение находится в диапазоне или.
- Если не задан ни двоичный, ни шестнадцатеричный, то синтаксический анализ обычно является .
- Примените значение множителя перед попыткой выполнить приведения, чтобы обеспечить правильную проверку границ типов без переполняется.
- Проверьте суффиксы типов.
- Проверьте границы типа и попытайтесь выполнить синтаксический анализ этого типа.
- Если суффикс не используется, значение является ограничивающим и проверяется в следующем порядке, что приводит к первому успешному тестированию, определяющему тип числа.
- (только литералы Base-10)
- (только литералы Base-10)
- Если значение выходит за пределы диапазона для шестнадцатеричных и двоичных чисел, анализ завершается ошибкой.
- Если значение находится за пределами диапазона для базового 10 числа, анализ завершается ошибкой.
- Более высокие значения должны быть написаны явным образом с помощью суффикса, чтобы проанализировать литерал как .
Синтаксический анализ литералов с большими значениями
Ранее более высокие целочисленные значения были проанализированы как Double перед их приведением к любому другому типу. Это приводит к утрате точности в более высоких диапазонах. Пример:
Чтобы избежать этой проблемы, необходимо было записывать значения как строки и затем преобразовывать их:
В PowerShell 7,0 необходимо использовать суффикс.
Integer literals
Integer literals can be
- decimal: without any prefix
- hexadecimal: with the or prefix
- binary: with the or prefix (available in C# 7.0 and later)
The following code demonstrates an example of each:
The preceding example also shows the use of as a digit separator, which is supported starting with C# 7.0. You can use the digit separator with all kinds of numeric literals.
The type of an integer literal is determined by its suffix as follows:
-
If the literal has no suffix, its type is the first of the following types in which its value can be represented: , , , .
Note
Literals are interpreted as positive values. For example, the literal represents the number of the type, though it has the same bit representation as the number of the type. If you need a value of a certain type, cast a literal to that type. Use the operator, if a literal value cannot be represented in the target type. For example, produces .
-
If the literal is suffixed by or , its type is the first of the following types in which its value can be represented: , .
-
If the literal is suffixed by or , its type is the first of the following types in which its value can be represented: , .
Note
You can use the lowercase letter as a suffix. However, this generates a compiler warning because the letter can be confused with the digit . Use for clarity.
-
If the literal is suffixed by , , , , , , , or , its type is .
If the value represented by an integer literal exceeds UInt64.MaxValue, a compiler error CS1021 occurs.
If the determined type of an integer literal is and the value represented by the literal is within the range of the destination type, the value can be implicitly converted to , , , , , , or :
As the preceding example shows, if the literal’s value is not within the range of the destination type, a compiler error CS0031 occurs.
You can also use a cast to convert the value represented by an integer literal to the type other than the determined type of the literal:
To pad a numeric value with a specific number of leading zeros
-
Determine how many leading zeros you want the numeric value to have.
-
Determine the number of digits to the left of the decimal in the unpadded numeric string:
-
Determine whether the string representation of a number includes a decimal point symbol.
-
If it does include a decimal point symbol, determine the number of characters to the left of the decimal point.
-or-
If it doesn’t include a decimal point symbol, determine the string’s length.
-
-
Create a custom format string that uses:
-
The zero placeholder «0» for each of the leading zeros to appear in the string.
-
Either the zero placeholder or the digit placeholder «#» to represent each digit in the default string.
-
-
Supply the custom format string as a parameter either to the number’s method or to a method that supports composite formatting.
The following example pads two Double values with five leading zeros.
Методы
Начинает инициализацию экземпляра PerformanceCounter, используемого в форме или другим компонентом. Инициализация происходит во время выполнения. |
|
Закрывает счетчик производительности и высвобождает все ресурсы, распределенные под этот экземпляр счетчика производительности. |
|
Высвобождает разделенное состояние библиотеки счетчика производительности, распределенное под счетчики. |
|
Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject) |
|
Уменьшает значение связанного счетчика производительности на единицу через эффективные атомарные операции. |
|
Освобождает все ресурсы, занятые модулем Component. (Унаследовано от Component) |
|
Освобождает неуправляемые ресурсы, используемые объектом Component, а при необходимости освобождает также управляемые ресурсы. (Унаследовано от Component) |
|
Завершает инициализацию экземпляра PerformanceCounter, используемого в форме или другим компонентом. Инициализация происходит во время выполнения. |
|
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
|
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
|
Является устаревшей. Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра. (Унаследовано от MarshalByRefObject) |
|
Возвращает объект, представляющий службу, предоставляемую классом Component или классом Container. (Унаследовано от Component) |
|
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
|
Увеличивает значение связанного счетчика производительности на единицу через эффективные атомарные операции. |
|
Увеличивает или уменьшает значение связанного счетчика производительности на заданное значение посредством эффективных атомарных операций. |
|
Является устаревшей. Получает объект службы времени существования для управления политикой времени существования для этого экземпляра. (Унаследовано от MarshalByRefObject) |
|
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
|
Создает неполную копию текущего объекта MarshalByRefObject. (Унаследовано от MarshalByRefObject) |
|
Получает образец счетчика и возвращает начальное или не рассчитанное значение для него. |
|
Получает образец счетчика и возвращает расчетное значение для него. |
|
Удаляет экземпляр категории, указанной объектом PerformanceCounter свойства . |
|
Возвращает объект String, содержащий имя Component, если оно есть. Этот метод не следует переопределять. (Унаследовано от Component) |
Примеры
Следующая таблица содержит несколько примеров числовых литералов и перечисляет их тип и значение.
Число | Тип | Значение |
---|---|---|
100 | Int32 | 100 |
100u | UInt32 | 100 |
100D | Decimal | 100 |
100l | Int64 | 100 |
100uL | UInt64 | 100 |
100us | UInt16 | 100 |
100uy | Byte | 100 |
100y | SByte | 100 |
1e2 | Double | 100 |
1. E2 | Double | 100 |
0x1e2 | Int32 | 482 |
0x1e2L | Int64 | 482 |
0x1e2D | Int32 | 7725 |
482D | Decimal | 482 |
482gb | Int64 | 517543559168 |
482ngb | BigInteger | 517543559168 |
0x1e2lgb | Int64 | 517543559168 |
0b1011011 | Int32 | 91 |
0xFFFFFFFF | Int32 | -1 |
-0xFFFFFFFF | Int32 | 1 |
0xFFFFFFFFu | UInt32 | 4294967295 |
Работа с двоичными или шестнадцатеричными числами
Чрезмерно большие двоичные или шестнадцатеричные литералы могут возвращать , а не завершать синтаксический анализ, если только указан суффикс. Биты подписи по-прежнему применяются к даже диапазонам. Однако:
- Если двоичная строка представляет собой несколько из 8 битов, самый высокий бит рассматривается как бит знака.
- Если шестнадцатеричная строка с длиной, кратной 8, имеет первую цифру, равную 8 или выше, то цифра считается отрицательной.
Указание неподписанного суффикса для двоичных и шестнадцатеричных литералов игнорирует биты знака. Например, возвращает , но возвращает значение 4294967295.
Предваряющий литерал с помощью будет обходить это и обрабатываться как неподписанные.
Например: . Это может быть необходимо при работе с литералами в диапазоне, так как суффиксы и не могут быть объединены.
Можно также инвертировать двоичные и шестнадцатеричные литералы с помощью префикса. Это может привести к положительному числу, так как разрешены биты знаков.
Биты знаков принимаются для цифр с суффиксом BigInteger:
- BigInteger-Hex рассматривает старший бит любого литерала с длиной, кратной 8 символам, как бит знака. Длина не включает префикс или суффиксы.
- Двоичный файл с суффиксом BigInteger принимает биты знаков 96 и 128 символов и каждые 8 символов после.
Преобразование числового типа
Если строки преобразуются в числа, поддерживаются дополнительные индикаторы шестнадцатеричного формата. Эти дополнительные форматы не распознаются как литералы.
Команды, которые выглядят как числовые литералы
Любая команда, похожая на допустимый числовой литерал, должна выполняться с помощью оператора Call ( ), в противном случае он интерпретируется как число. Неверно сформированные литералы с допустимым синтаксисом, например , приведут к следующей ошибке:
Однако неправильно сформированные литералы с недопустимым синтаксисом будут интерпретироваться как стандартная строка, и ее можно интерпретировать как допустимое имя команды в контекстах, где могут быть вызваны команды.
Доступ к свойствам и методам числовых объектов
Для доступа к элементу числового литерала бывают случаи, когда необходимо заключить литерал в круглые скобки.
- Литерал не имеет десятичной запятой
- Литерал не содержит цифр после десятичной запятой
- У литерала нет суффикса
Например, следующий пример завершается ошибкой:
Ниже приведены примеры работы.
Первые два примера работают без заключения литерального значения в круглые скобки, так как средство синтаксического анализа PowerShell может определить, где заканчивается числовой литерал, и запустить метод GetType .
To pad a numeric value with leading zeros to a specific length
-
Determine how many digits to the left of the decimal you want the string representation of the number to have. Include any leading zeros in this total number of digits.
-
Define a custom numeric format string that uses the zero placeholder «0» to represent the minimum number of zeros.
-
Call the number’s method and pass it the custom format string. You can also use the custom format string with string interpolation or with a method that supports composite formatting.
The following example formats several numeric values with leading zeros. As a result, the total length of the formatted number is at least eight digits to the left of the decimal.
The Code
The following class implements the functionality of the and API methods.
C#
Copy Code
using System; using System.Runtime.InteropServices; using System.ComponentModel; using System.Threading; namespace Win32 { internal class HiPerfTimer { private static extern bool QueryPerformanceCounter( out long lpPerformanceCount); private static extern bool QueryPerformanceFrequency( out long lpFrequency); private long startTime, stopTime; private long freq; public HiPerfTimer() { startTime = ; stopTime = ; if (QueryPerformanceFrequency(out freq) == false) { throw new Win32Exception(); } } public void Start() { Thread.Sleep(); QueryPerformanceCounter(out startTime); } public void Stop() { QueryPerformanceCounter(out stopTime); } public double Duration { get { return (double)(stopTime - startTime) / (double) freq; } } } }
This class is very simple to use. Just create an instance of , call to start timing and call to stop timing. To retrieve the elapsed time, just call the function and you will get the elapsed time.
The following sample should explain that:
C#
Copy Code
HiPerfTimer pt = new HiPerfTimer(); pt.Start(); Console.WriteLine("Test\n"); pt.Stop(); Console.WriteLine("Duration: {0} sec\n", pt.Duration);
The following image shows the output of this sample on my system:
Комментарии
Макросы , , и предоставляют переносимый способ получения аргументов функции, которая принимает переменное число аргументов. Существует две версии макросов: макросы, определенные в соответствии со стандартом ISO C99; макросы, определенные в , являются устаревшими, но сохраняются для обеспечения обратной совместимости с кодом, написанным до стандарта ANSI C89.
Эти макросы предполагают, что функции принимают фиксированное число обязательных аргументов, за которыми следует переменное число необязательных аргументов. Обязательные аргументы объявляются как обычные параметры для функции и доступ к ним возможен через имена параметров. Доступ к необязательным аргументам осуществляется через макросы в (или для кода, написанного до стандарта ANSI C89), который устанавливает указатель на первый необязательный аргумент в списке аргументов, извлекает аргументы из списка и сбрасывает указатель по завершении обработки аргумента.
Стандартные макросы C, определенные в , используются следующим образом:
-
задает указатель на первый необязательный аргументу в списке аргументов, который передан функции. Аргумент должен иметь тип . Аргумент — это имя обязательного параметра, который непосредственно предшествует первому необязательному аргументу в списке аргументов. Если параметр объявлен в классе регистрового хранения, поведение макроса не определено. необходимо использовать до первого использования .
-
извлекает значение из расположения, которое задано параметром , и увеличивает значение указателя , чтобы он указывал на следующий аргумент в списке, используя размер для определения места начала следующего аргумента. можно использовать в функции любое количество раз, чтобы получить аргументы из списка.
-
делает копию списка аргументов в текущем состоянии. Параметр должен быть уже инициализирован с помощью ; он может быть обновлен вызовами , но не должен быть сброшен с помощью . Следующий аргумент, который извлекается из , совпадает со следующий аргументом, который извлекается из .
-
После получения всех аргументов сбрасывает указатель на . должен вызываться для каждого списка аргументов, который инициализируется или , до выполнения возврата функцией.
Примечание
Макросы в VARARGS.H использовать не рекомендуется; они сохранены только для обратной совместимости с кодом, который написан до появления стандарта ANSI C89. Во всех остальных случаях используйте макросы из файла STDARGS.H.
При компиляции с помощью (компиляция среды CLR)программы, использующие эти макросы, могут формировать непредвиденные результаты из-за различий между системами типов в машинном и общеязыковой среде выполнения (CLR). Рассмотрим следующую программу:
Обратите внимание — функция ожидает, что второй параметр будет или. Передаваемые аргументы имеют значение 0xffffffff (, а не ) и (фактически , а не )
Когда программа скомпилирована для неуправляемого кода, она дает следующий результат:
Способ №1 – самый простой. Используем функцию Now()
Самый простейший и наименее точный способ измерить время, затраченное на выполнение какой-либо операции в Delphi – воспользоваться функцией Now() из модуля System.SysUtils.
Исходный код может выглядеть, например, так:
uses System.DateUtils; .... var Start, Stop TDateTime; Elapsed int64; begin Start=Now; //засекли начало выполнения операции DoSomething;//выполняем что-либо Stop=Now; //засекли окончание выполнения операции Elapsed=SecondsBetween(Start, Stop);//время в секундах end;
Вполне вероятно, что у вас может возникнуть резонный вопрос: почему я использовал в примере SecondsBetween(), а не, например, MilliSecondsBetween() для большей точности? Сделал я это, опираясь исключительно, на описание функции Now() в официальной справке по Delphi, которая гласит следующее: “Несмотря на то, что в TDateTime могут передаваться миллисекунды, Now() имеет точность до ближайшей секунды“. То есть, если использовать Now(), то определять интервал времени с точностью до миллисекунд – не имеет смысла.
Способ №3 – продолжаем использовать Windows API. Функции QueryPerformanceCounter и QueryPerformanceFrequency
Об этих функциях я рассказывал давным-давно, но, повторюсь ещё раз.
QueryPerformanceCounter — извлекает текущее значение счетчика производительности, которое представляет собой метку времени с высоким разрешением (<1 мкс), которая может использоваться для измерения временных интервалов.QueryPerformanceFrequency — извлекает частоту счетчика производительности. Частота счетчика производительности фиксируется при загрузке системы и согласована во всех процессорах,поэтому значение нужно запрашивать только при инициализации приложения, а результат может быть кэширован.
Для того, чтобы воспользоваться этими функциями для отсчёта интервала времени, затраченного на выполнение какой-либо операции в Delphi нам необходимо оформить исходный код, например, таким образом:
var iCounterPerSec TLargeInteger; T1, T2 TLargeInteger; //значение счётчика ДО и ПОСЛЕ операции begin QueryPerformanceFrequency(iCounterPerSec);//определили частоту счётчика QueryPerformanceCounter(T1); //засекли время начала операции DoSomething; //выполнили что-то QueryPerformanceCounter(T2);//засекли время окончания ShowMessage(FormatFloat('0.0000', (T2 - T1)iCounterPerSec) + ' сек.');//вывели количество секунд на выполнение операции end;
С полученными значениями T1 и T2 можно “играться” как угодно, например, выводить отдельно минуты/секунды/миллисекунды и т.д. тут всё зависит от ваших потребностей и желаний, я же показал наиболее простой пример использования счётчика с высоким разрешением в Delphi.
Числовые типы данных
Тип данных | Объем памяти | Диапазон | Описание |
TINYINT (M) | 1 байт | от -128 до 127 или от 0 до 255 | Целое число. Может быть объявлено положительным с помощью ключевого слова UNSIGNED, тогда элементам столбца нельзя будет присвоить отрицательное значение. Необязательный параметр М — количество отводимых под число символов. Необязательный атрибут ZEROFILL позволяет свободные позиции по умолчанию заполнить нулями.Примеры: TINYINT — хранит любое число в диапазоне от -128 до 127. TINYINT UNSIGNED — хранит любое число в диапазоне от 0 до 255. TINYINT (2) — предполагается, что значения будут двузначными, но по факту будет хранить и трехзначные. TINYINT (3) ZEROFILL — свободные позиции слева заполнит нулями. Например, величина 2 будет отображаться, как 002. |
SMALLINT (M) | 2 байта | от -32768 до 32767 или от 0 до 65535 | Аналогично предыдущему, но с большим диапазоном.Примеры: SMALLINT — хранит любое число в диапазоне от -32768 до 32767. SMALLINT UNSIGNED — хранит любое число в диапазоне от 0 до 65535. SMALLINT (4) — предполагается, что значения будут четырехзначные, но по факту будет хранить и пятизначные. SMALLINT (4) ZEROFILL — свободные позиции слева заполнит нулями. Например, величина 2 будет отображаться, как 0002. |
MEDIUMINT (M) | 3 байта | от -8388608 до 8388608 или от 0 до 16777215 | Аналогично предыдущему, но с большим диапазоном.Примеры: MEDIUMINT — хранит любое число в диапазоне от -8388608 до 8388608. MEDIUMINT UNSIGNED — хранит любое число в диапазоне от 0 до 16777215. MEDIUMINT (4) — предполагается, что значения будут четырехзначные, но по факту будет хранить и семизначные. MEDIUMINT (5) ZEROFILL — свободные позиции слева заполнит нулями. Например, величина 2 будет отображаться, как 00002. |
INT (M) или INTEGER (M) | 4 байта | от -2147683648 до 2147683648 или от 0 до 4294967295 | Аналогично предыдущему, но с большим диапазоном.Примеры: INT — хранит любое число в диапазоне от -2147683648 до 2147683648. INT UNSIGNED — хранит любое число в диапазоне от 0 до 4294967295. INT (4) — предполагается, что значения будут четырехзначные, но по факту будет хранить максимально возможные. INT (5) ZEROFILL — свободные позиции слева заполнит нулями. Например, величина 2 будет отображаться, как 00002. |
BIGINT (M) | 8 байта | от -263 до 263-1 или от 0 до 264 | Аналогично предыдущему, но с большим диапазоном.Примеры: BIGINT — хранит любое число в диапазоне от -263 до 263-1. BIGINT UNSIGNED — хранит любое число в диапазоне от 0 до 264. BIGINT (4) — предполагается, что значения будут четырехзначные, но по факту будет хранить максимально возможные. BIGINT (7) ZEROFILL — свободные позиции слева заполнит нулями. Например, величина 2 будет отображаться, как 0000002. |
BOOL или BOOLEAN | 1 байт | либо 0, либо 1 | Булево значение. 0 — ложь (false), 1 — истина (true). |
DECIMAL (M,D) или DEC (M,D) или NUMERIC (M,D) | M + 2 байта | зависят от параметров M и D | Используются для величин повышенной точности, например, для денежных данных. M — количество отводимых под число символов (максимальное значение — 64). D — количество знаков после запятой (максимальное значение — 30).Пример: DECIMAL (5,2) — будет хранить числа от -99,99 до 99,99. |
FLOAT (M,D) | 4 байта | мин. значение +(-) 1.175494351 * 10-39 макс. значение +(-) 3. 402823466 * 1038 |
Вещественное число (с плавающей точкой). Может иметь параметр UNSIGNED, запрещающий отрицательные числа, но диапазон значений от этого не изменится. M — количество отводимых под число символов. D — количество символов дробной части. Пример: FLOAT (5,2) — будет хранить числа из 5 символов, 2 из которых будут идти после запятой (например: 46,58). |
DOUBLE (M,D) | 8 байт | мин. значение +(-) 2.2250738585072015 * 10-308 макс. значение +(-) 1.797693134862315 * 10308 |
Аналогично предыдущему, но с большим диапазоном. Пример: DOUBLE — будет хранить большие дробные числа. |
Техническая поддержка x64-версий Microsoft Windows
Если оборудование пришло с уже установленной Windows x64, производитель оборудования предоставляет техническую поддержку и помощь для Windows x64. В этом случае производитель оборудования предоставляет поддержку, так как Windows x64 был включен с вашим оборудованием. Производитель оборудования мог настроить установку Windows x64 с помощью уникальных компонентов. Уникальные компоненты могут включать определенные драйверы устройств или могут включать необязательные параметры для максимальной производительности оборудования. Корпорация Майкрософт предоставит необходимую помощь, если вам потребуется техническая помощь с помощью Windows x64. Однако вам может потребоваться связаться с производителем напрямую. Ваш производитель лучше всего может поддерживать программное обеспечение, установленное производителем на оборудовании. Если вы приобрели Windows x64, например версию Microsoft Windows Server 2003 x64 отдельно, обратитесь в Корпорацию Майкрософт за технической поддержкой.
Заявление об отказе от ответственности за сведения о продуктах сторонних производителей
В этой статье упомянуты программные продукты независимых производителей. Корпорация Майкрософт не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.
toUnixTimestamp
Переводит дату-с-временем в число типа UInt32 — Unix Timestamp (https://en.wikipedia.org/wiki/Unix_time).
Для аргумента String, строка конвертируется в дату и время в соответствии с часовым поясом (необязательный второй аргумент, часовой пояс сервера используется по умолчанию).
Синтаксис
Возвращаемое значение
Возвращает Unix Timestamp.
Тип: .
Пример
Запрос:
Результат:
Attention
или это возвращаемый тип функций , который описан ниже. Несмотря на то, что эти функции могут принимать в качестве аргумента, если переданное значение типа выходит за пределы нормального диапазона (с 1925 по 2283 год), то это даст неверный результат.
To pad an integer with a specific number of leading zeros
-
Determine how many leading zeros you want the integer value to display.
-
Determine whether you want to display the integer as a decimal value or a hexadecimal value.
-
Formatting it as a decimal value requires that you use the «D» standard format specifier.
-
Formatting it as a hexadecimal value requires that you use the «X» standard format specifier.
-
-
Determine the length of the unpadded numeric string by calling the integer value’s or method.
-
Add the number of leading zeros that you want to include in the formatted string to the length of the unpadded numeric string. Adding the number of leading zeros defines the total length of the padded string.
-
Call the integer value’s method, and pass the string «Dn» for decimal strings and «Xn» for hexadecimal strings, where n represents the total length of the padded string. You can also use the «Dn» or «Xn» format string in a method that supports composite formatting.
The following example pads an integer value with five leading zeros.
Вывод: Typeerror: объект ‘int’ не поддается подписке
Мы узнали все ключевые моменты о TypeError: объект ‘int’ не поддается подписке. Существуют такие объекты, как список, кортеж, строки и словари, которые могут быть подписаны. Эта ошибка возникает при попытке выполнить индексацию или нарезку целого числа.
Предположим, нам нужно выполнить такие операции, как индексация и нарезка целых чисел. Во-первых, мы должны преобразовать целое число в строку, список, кортеж или словарь.
Теперь вы можете легко решить этот python TypeError, как smartcode.
Однако, если у вас есть какие-либо сомнения или вопросы, дайте мне знать в разделе комментариев ниже. Я постараюсь помочь вам как можно скорее.
Счастливого Пифонирования!