[Solved] Python can’t Multiply Sequence by non-int of type ‘str’

The TypeError: can’t multiply sequence by non-int of type ‘str’ occurs if we multiply a string by another string without converting into an integer or floating-point.

In this tutorial, we will learn what exactly TypeError: can’t multiply sequence by non-int of type ‘str’ error means and how to resolve this TypeError in your program with examples.

TypeError: can’t multiply sequence by non-int of type ‘str’

Python is one of the best programming languages because of its features and simplicity. One such fantastic feature in Python is we can multiply strings with numbers.

Multiplying string with an integer

Let’s take an example to demonstrate multiplying string with numbers.

The other popular programming languages will never let you to multiple strings and integers. However, we can perform a multiplication between string and integer in Python. After the multiplication, the string is repeated for n times, as shown below.

text = "ItsMyCode"
n = 3
print(text*n)

Output

ItsMyCodeItsMyCodeItsMyCode

Here the string “ItsMyCode” is repeated multiplied by three and repeated three times in the output.

If we try to multiply the string with another string then the Python interpreter will throw TypeError: can’t multiply sequence by non-int of type ‘str’.

Multiplying string with another string

You cannot multiply a string with a non-integer value in Python. If we multiply a string with another string without converting to integer or floating point, we get an error can’t multiply sequence by non-int of type ‘str’.

Let us take a simple example of multiplying two numbers.

num1 ='5'
num2 ='6'
output =num1 * num2
print(output)

Output

Traceback (most recent call last):
  File "C:\Personal\IJS\Code\main.py", line 3, in <module>
    output =num1 * num2
TypeError: can't multiply sequence by non-int of type 'str'

Even though the number entered here is equal to the integer values, the Python interpreter will still consider it as a string and raise a TypeError.

The simplest way to resolve this issue is by converting both the strings into an integer and then performing a multiplication operation, as shown below.

num1 ='5'
num2 ='6'
output = int(num1) * int(num2)
print(output)

Output

30

Solution TypeError: can’t multiply sequence by non-int of type ‘str’

Now we know that TypeError: can’t multiply sequence by non-int of type str is caused by multiplying a string with another string. Let us see how we can resolve this error with an example.

Usually, we get this error when we receive input from the user, and the input() method alway returns the data in a string format.

Consider we have to calculate the total tax amount paid based on the distance traveled and the fare price.

In the above example, we are reading the fare price and distance data as user input, and we are calculating the tax amount by multiplying the (fare_price * distance)*(tax_percentage/100)

Even though the user inputs valid data, the input() method returns a string, meaning that fare_price and distance values are in string format. Hence we end up multiplying two strings resulting in the TypeError: can’t multiply sequence by non-int of type ‘str’.

tax_percentage = 5
fare_price = input("Please enter the fare amount charged  ")
distance = input("Please enter the distance travelled to calculate the total fare -  ")
total_fare = (fare_price * distance) * (5/100)
print(total_fare)

Output

Please enter the fare amount charged  100
Please enter the distance travelled to calculate the total fare -  5
Traceback (most recent call last):
  File "C:\Personal\IJS\Code\main.py", line 4, in <module>
    total_fare = (fare_price * distance) * 0.05
TypeError: can't multiply sequence by non-int of type 'str'

The best way to resolve this error is to convert the user input string to a floating-point using the float() method. 

This allows us to multiply the order_value and discount because both are floating-point numbers.

tax_percentage = 5
fare_price = float(input("Please enter the fare amount charged  "))
distance = float(input("Please enter the distance travelled to calculate the total fare -  "))
total_fare = (fare_price * distance) * (5/100)
print(total_fare)

Output

Please enter the fare amount charged  250.50
Please enter the distance travelled to calculate the total fare -  3.4
42.585
Note: We cannot multiply strings with floating-point numbers,if we do Python interpreter will throw TypeError: can't multiply sequence by non-int of type 'float'. Hence in the above example we have to convert both the inputs into floating-point and then perform multiplication.

Conclusion

We cannot multiply strings with any non integers values such as float, string etc. If we multiply a string with another string without converting into an integer we get TypeError: can’t multiply sequence by non-int of type 'str'

In order to solve this issue, TypeError: can’t multiply sequence by non-int of type ‘str’ ensure that either you are performing a multiplication between string and integer or alternatively you can convert all the string values into a floating-point number before performing any calculations. 

Leave a Reply

Your email address will not be published.

Sign Up for Our Newsletters

Get notified of the best deals on our WordPress themes.

You May Also Like
Calculate Euclidean Distance In Python

Calculate Euclidean Distance in Python

Table of Contents Hide How to Calculate Euclidean Distance in Python?Method 1: Using linalg.norm() Method in NumPyMethod 2: Using dot() and sqrt() methodsMethod 3: Using square() and sum() methodsMethod 4:…
View Post
Python All()

Python all()

Table of Contents Hide all() Syntaxall() Parametersall() Return ValueDifference between any() and all() functions in PythonExample 1 – Using all() function on Python ListsExample 2 – Using all() function on…
View Post
Python String Istitle()

Python String istitle()

Table of Contents Hide What is titlecase?istitle() Syntaxistitle() Parameters istitle() Return valueExample 1: Python string istitle() working examplesExample 2: Program to check if the string is titlecase Python string istitle() method…
View Post
Python Ascii()

Python ascii()

Table of Contents Hide ascii() Syntax ascii() Parametersascii() Return ValueExample 1: How ascii() method works?Example 2: ascii() vs print() The ascii() in Python is a built-in function that returns a printable…
View Post
Python List Count()

Python List count()

Table of Contents Hide Syntax of List count() count() ParametersReturn Value from List count()Example 1: Use of count()Example 2: Count Tuple and List Elements Inside List Python List count() is a built-in…
View Post