Рубрики
Без рубрики

Как разрешить «Типерр»: может только ConcateNate STR (не «int») к ул “в Python?

У многих начинающих программистов возникла проблема с так называемым типором, они задаются вопросом, что они делают не так. Вот пример: Упражнение: Запустите скрипт и воспроизведите ошибку! Изучите эту статью, чтобы узнать, как это исправить! Эта статья ответит на все вопросы, что начинающие могут спросить об этой теме. О типоре, прежде чем показывать … Как разрешить «Типэррор»: может только ConcateNate STR (не «int») к Str “в Python? Читать далее “

Автор оригинала: Rafal Jasionowski.

Многие начинающие программисты имеют проблему с так называемыми Типеррор , они задаются вопросом, что они делают не так. Вот пример:

Упражнение : Запустите скрипт и воспроизведите ошибку! Изучите эту статью, чтобы узнать, как это исправить!

Эта статья ответит на все вопросы, что начинающие могут спросить об этой теме.

О типерроре

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

INT представляет целочисленные числа, например: -523, 123, 23232.

Если мы хотим, чтобы наша переменная была из int Тип, мы должны записать это таким образом:

integer = 5
print(integer)
print(type(integer))

Результатом этого сценария будет следующим образом:

5

Как мы видим, наша переменная – « » int ‘ тип.

Str (строка) представляет все виды текстов, слов, например: «кот» , «Мы идем спать» , «100 лет» Отказ

Итак, как мы это делаем в Python?

string = 'cat'
print(string)
print(type(string))

Выход:

cat

Как вы можете видеть, для нашей программы написать слово "Кошка" Мы должны использовать цитаты.

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

Когда в Python мы хотим сделать некоторые математические операции, мы должны использовать цифры (как вы точно знаете), поэтому наши номера не могут быть в кавычках, а именно, если мы хотим добавлять номера, например, 10 и 5 друг к другу, Тогда в Python это будет выглядеть так:

first_integer = 10
second_integer = 5
print(first_integer + second_integer)

Выход:

15

А Типеррор будет вызван этим сценарием:

first_integer = '10'
second_integer = 5
print(first_integer + second_integer)

Выход:

Traceback (most recent call last):
  File "location of your python file", line 3, in 
    print(first_integer + second_integer)
TypeError: can only concatenate str (not "int") to str

В этом скрипте произошла ошибка с кавычками, потому что First_integer сейчас ул ...| не int , так как мы можем это исправить?

Fix 1: преобразовать в правильный тип данных вручную

Проверьте свой скрипт и найдите потенциальную ошибку, а затем исправьте эту строку кода.

Во-первых, вы ищете то, что могло вызвать Типеррор Отказ Если вы найдете то, что вы считаете, возможно, привели к ошибке, например:

variable_name = '10'

Во-вторых, вы удалите цитаты, и наша программа должна работать.

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

Fix 2: конверсия строки

Узнайте, в какой строке кода Типеррор Появились и до того, как переменные вставьте тип данных, которые вас интересуют, когда вы хотите добавить номера для себя, давайте сделаем это:

print(int(first_variable) + int(second_variable))

Тогда вы уверены, что это номера и определенно будут добавлены друг к другу, и когда вы хотите добавить два слова друг другу, то вы делаете это:

print(str(first_variable) + str(second_variable))

Используя этот метод, два субтитра обязательно будут соединены вместе.

Однако этот метод не является оптимальным, когда у вас есть много данных, которые вы хотите объединить друг с другом, потому что вам нужно провести много времени. Итак, давайте перейдем к методу № 3!

Fix 3: Функция преобразования

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

def change_type(f_variable, s_variable, type_):
    f_variable = type_(f_variable)
    s_variable = type_(s_variable)
    return f_variable, s_variable

first_integer, second_integer = change_type(first_integer, second_integer, str)

print('First use:')
print(type(first_integer))
print(type(second_integer))

first_integer, second_integer = change_type(first_integer, second_integer, int)

print('\nSecond use:')
print(type(first_integer))
print(type(second_integer))

Выход:

First use:



Second use:

Как мы видим, нам удалось изменить наши переменные на указанный вами тип, первый ул ...| а потом int Так что мы можем продолжать писать программу.

Но что, если вы хотите сделать функцию, которая будет работать, например, на 5 переменных? В этом случае вам нужно написать функцию:

def change_type(list_of_variable_names, type_):
    for x in range(len(list_of_variable_names)):
        list_of_variable_names[x] = type_(list_of_variable_names[x])

first_integer = 2323
second_integer = '2333'
third_integer = '4423'
fourth_integer = 23231
fifth_integer = '-232'

list_of_numbers = [first_integer, second_integer, third_integer, fourth_integer, fifth_integer]
print('Type of values not changed:')
print([type(number) for number in list_of_numbers])
print(list_of_numbers)

print('\nType of values changed to str:')
change_type(list_of_numbers, str)
print([type(number) for number in list_of_numbers])
print(list_of_numbers)

print('\nType of values changed to int:')
change_type(list_of_numbers, int)
print([type(number) for number in list_of_numbers])
print(list_of_numbers)

Выход:

Type of values not changed:
[, , , , ]
[2323, '2333', '4423', 23231, '-232']
Type of values changed to str:
[, , , , ]
['2323', '2333', '4423', '23231', '-232']
Type of values changed to int:
[, , , , ]
[2323, 2333, 4423, 23231, -232]

Далее вы можете перезаписать наши переменные, чтобы вы могли использовать их без списка:

first_integer, second_integer, third_integer, fourth_integer, fifth_integer = list_of_numbers

или не перезаписать их и использовать список для E.G. Математические операции:

print(list_of_numbers[0] + list_of_numbers[1])

Выход:

4656

Исправить 4: Используйте IDE, как Pycharm

Используя IDE, которая проверяет наличие ошибок, таких как Pycharm. Если вы не знаете, куда есть ошибка, и вы не используете IDE, стоит загрузки, чтобы облегчить ошибку в коде.

Альтернативная причина типа «Видэрр»:

Если вы просто хотели написать что-то вроде «У меня 3 кошки» И вы использовали плюсы вместо запятых:

x =  'I have'
y = 3
z = 'cats'
print(x + y + z)

Просто измените плюсы на запятые:

print(x, y, z)

Резюме

Мы повторили основы int и ул ...| Типы в Python и обнаружили, что Python не изменит на нас тип переменной, мы должны использовать int () или str () Функция себя, в зависимости от того, что мы хотим достичь. Эта статья также предоставляет 4 метода, которые могут быть использованы для предотвращения Типеррор и еще одна причина этой ошибки.

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

Источники :

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

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

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

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

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!