Автор оригинала: Shubham Sayon.
✯ Обзор
Проблема: Фиксирование TypeError: не может умножить последовательность без int of type 'float'
в питоне.
Пример: Подумайте, что вы хотите рассчитать окружность круга, используя радиус, введенный пользователем, как показано ниже.
Как вы можете видеть выше, мы столкнулись с Типеррор
выполняя наш код.
Похоже, ошибок могут быть действительно разочарованными! 😡 Но после того, как вы закончите прочитать эту статью, эти глупые жуки больше не будут проблемой для вас. Поэтому, чтобы понять, что вызывает такие ошибки и как их избежать, важно ответить на несколько вопросов:
- Что такое А.
Типерр
в Python? - Почему Python поднимает
Типерр: Не может умножить последовательность без int типа 'float'
? - Как мы исправим
Типерр: Не может умножить последовательность без int типа 'float'
?
Давайте погрузимся в каждый вопрос один за другим.
✯ Что такое типа в Python?
Python поднимает Типеррор
Когда вы пытаетесь использовать функцию или позвонить оператору на то, что является неверным типом.
Пример:
print('Python'+3.8)
Выход:
Traceback (most recent call last): File "D:/PycharmProjects/PythonErrors/TypeError Can't Multiply Sequence by non-int of Type 'float' In Python.py", line 1, inprint('Python'+3.8) TypeError: can only concatenate str (not "float") to str
⮞ Мы столкнулись с вышеуказанной ошибкой, потому что Python ожидает, что +
Оператор между двумя цифрами. Однако в приведенном выше примере мы пытались добавить строка
и а плавать
ценить. Таким образом, Python бросает Типеррор
Сказав нас, что один из параметров был неверным типом.
Это приводит нас к следующему вопросу!
✯ Почему Python Rissing – ‘TypeError: может только ConcateNate Str (не «плавать») к ул.
Python позволяет умножить строку и значение поплавка. Это означает, что он генерирует повторяющуюся последовательность строки такой, что данное значение строки повторяется столько раз, как упоминалось как целое значение.
Пример:
print('Finxter '*5)
Выход:
Finxter Finxter Finxter Finxter Finxter
🤔 Но Можете ли вы умножить плавающее значение и строковое значение в Python?
Ответ: Нет, Вы не можете умножить строковое значение и значение поплавка в Python Отказ Вы получите TypeError: не может умножить последовательность нельзя int типа 'float'
Если вы попытаетесь сделать это.
Пример:
radius = input("Enter the radius: ") # string input print('Circumference = ', 2 * 3.14 * radius)
Выход:
Enter the radius: 5 Traceback (most recent call last): File "D:/PycharmProjects/PythonErrors/TypeError Can't Multiply Sequence by non-int of Type 'float' In Python.py", line 2, inprint('Circumference = ',2*3.14*radius) TypeError: can't multiply sequence by non-int of type 'float'
Решение: Пожалуйста, пройдите это решение только после того, как вы пройдете сквозь сценарии, упомянутые ниже Отказ
radius = float(input("Enter the radius: ")) print('Circumference = ', 2 * 3.14 * radius) # OUTPUT: # Enter the radius: 5 # Circumference = 31.400000000000002
➥ Точно так же, когда вы пытаетесь умножить значение поплавка и последовательный тип данных (строка/кортеж/списки), Python поднимется в систему: не может размножаться последовательностью неблагоприятной последовательностью.
Пример:
my_list = [100, 200, 300, 400] # list my_tup = (9, 99, 999, 9999, 99999) # tuple print(2.0 * my_list) print(2.0 * my_tup) # DESIRED OUTPUT: # [100, 200, 300, 400, 100, 200, 300, 400] # (9, 99, 999, 9999, 99999, 9, 99, 999, 9999, 99999)
Выход:
Traceback (most recent call last): File "D:/PycharmProjects/PythonErrors/TypeError Can't Multiply Sequence by non-int of Type 'float' In Python.py", line 3, inprint(2.0 * my_list) TypeError: can't multiply sequence by non-int of type 'float'
✯ Как исправить – TypeError: не может умножить последовательность нельзя int типа ‘float’?
👉 Чтобы избежать возникновения TypeError: не может умножить последовательность без int of type 'float'
Вы должны Убедитесь, что пользовательский ввод является плавающее – точка ценить путем опечатки ввода строки для плавания .
Давайте посмотрим на решения этой ошибки с помощью многочисленных сценариев.
⮞ Тип 1: Преобразование температуры Фаренгейта в Целью
Проблема: Дана температура в Фаренгейте; Как преобразовать его в Цельсию?
Наш код:
Celsius = input("Enter the temperature: ") print(Celsius, "°C = ", Celsius * 1.8 + 32, "°F")
Выход:
Traceback (most recent call last): File "D:/PycharmProjects/PythonErrors/TypeError Can't Multiply Sequence by non-int of Type 'float' In Python.py", line 2, inprint(Celsius, "°C = ", Celsius * 1.8 + 32, "°F") TypeError: can't multiply sequence by non-int of type 'float'
Решение:
Celsius = float(input("Enter the temperature: ")) print(Celsius, "°C = ", Celsius * 1.8 + 32, "°F")
Выход:
Enter the temperature: 37 37.0 °C = 98.60000000000001 °F
Вуаля! Мы успешно решили нашу проблему. 🤗
⮞ Тип 2: Умножьте любой последовательный тип данных (строка, кортеж или списки) и Значение с плавающей точкой
Python поднимает TypeError: не может умножить последовательность без int of type 'float'
Каждый раз, когда последовательные данные умножаются на значение плавающего точка.
➥ Пример 1:
li = ['a', 'b', 'c'] # list tup = (100, 200, 300) # tuple print(2.0 * li) print(2.0 * tup) # DESIRED OUTPUT: # ['a', 'b', 'c', 'a', 'b', 'c'] # (100, 200, 300,100, 200, 300)
Выход:
C:\Users\DELL\AppData\Local\Programs\Python\Python38\python.exe "D:/PycharmProjects/PythonErrors/TypeError Can't Multiply Sequence by non-int of Type 'float' In Python.py" Traceback (most recent call last): File "D:/PycharmProjects/PythonErrors/TypeError Can't Multiply Sequence by non-int of Type 'float' In Python.py", line 3, inprint(2.0 * li) TypeError: can't multiply sequence by non-int of type 'float'
Решение: Ошибка можно избежать от литья типа Float I.e., 2.0
до целочисленного значения I.e. 2
Отказ
li = ['a', 'b', 'c'] # list tup = (100, 200, 300) # tuple print(int(2.0) * li) print(int(2.0) * tup)
Выход:
['a', 'b', 'c', 'a', 'b', 'c'] (100, 200, 300, 100, 200, 300)
➥ Пример 2: Давайте попробуем рассчитать общий налог @ 10% от заданного списка цен.
price = [100, 200, 300] print('Tax = $%.2f' % sum(price) * 0.1) # DESIRED OUTPUT: # Tax = $60.00
Выход:
Traceback (most recent call last): File "D:/PycharmProjects/PythonErrors/TypeError Can't Multiply Sequence by non-int of Type 'float' In Python.py", line 2, inprint('Tax = $%f' % sum(price) * 0.1) TypeError: can't multiply sequence by non-int of type 'float'
Решение:
Так как у вас есть %
Оператор в вашем выражении, призыв к сумма ()
привязан к строка и эффективно у вас есть:
* tax
Решение заключается в добавлении правильных скобок, чтобы заставить приоритет, который вы хотите, как показано ниже.
price = [100, 200, 300] print('Tax = $%.2f' % (sum(price) * 0.1))
Выход:
Tax = $60.00
Заключение
Я надеюсь, что вы нашли эту статью полезную. Пожалуйста, Подписаться и Оставайтесь настроиться Для более интересных статей в будущем. Счастливое обучение! 📚
Куда пойти отсюда?
Достаточно теории, давайте познакомимся!
Чтобы стать успешным в кодировке, вам нужно выйти туда и решать реальные проблемы для реальных людей. Вот как вы можете легко стать шестифункциональным тренером. И вот как вы польские навыки, которые вам действительно нужны на практике. В конце концов, что такое использование теории обучения, что никто никогда не нуждается?
Практические проекты – это то, как вы обостряете вашу пилу в кодировке!
Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?
Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.
Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.
Присоединяйтесь к свободному вебинару сейчас!
Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.
Вы можете связаться со мной @:
Оригинал: “https://blog.finxter.com/how-to-fix-typeerror-cant-multiply-sequence-by-non-int-of-type-float-in-python/”