Trong bài viết này, bạn sẽ tìm hiểu lỗi Python là gì TypeError: can't multiply sequence by non-int of type float
có nghĩa.
Đầu tiên, tôi sẽ giải thích tại sao lỗi này xuất hiện. Bạn cũng sẽ học cách giải quyết lỗi và cách tránh nó ngay từ đầu.
Đây là những gì chúng tôi sẽ đề cập:
- cái gì
TypeError: can't multiply sequence by non-int of type float
lỗi trong Python?- Làm thế nào để
TypeError: can't multiply sequence by non-int of type float
xảy ra lỗi trong Python?
- Làm thế nào để
- Làm thế nào để giải quyết
TypeError: can't multiply sequence by non-int of type float
lỗi trong Python
cái gì là TypeError: can't multiply sequence by non-int of type float
Lỗi trong Python?
Có hai loại số trong Python:
- số nguyên – số nguyên có thể dương, âm hoặc không.
- số dấu phẩy động – số dương hoặc số âm có dấu thập phân.
Bạn có thể nhân một số nguyên với một chuỗi để tạo một chuỗi ký tự lặp lại:
print("Python" * 3)
# output
# PythonPythonPython
Và xin nhắc lại, chuỗi là bất kỳ ký tự nào được đặt trong dấu ngoặc kép đơn hoặc kép – bao gồm cả số:
print("3" * 3)
# output
# 333
Nhưng hãy xem điều gì sẽ xảy ra khi bạn cố gắng nhân một chuỗi với một số dấu phẩy động:
print("3" * 3.3)
# output
# Traceback (most recent call last):
# File "main.py", line 1, in <module>
# print("3" * 3.3)
# TypeError: can't multiply sequence by non-int of type 'float'
Một lỗi được đưa ra – cụ thể là một TypeError
.
Một TypeError
là một ngoại lệ trong Python xuất hiện khi bạn cố gắng thao tác trên một kiểu dữ liệu không hỗ trợ thao tác cụ thể đó.
Như thông báo lỗi cho bạn biết, bạn không thể thực hiện phép nhân giữa một chuỗi (hoặc chuỗi) và một số dấu phẩy động (hoặc float), vì Python không hỗ trợ thao tác đó giữa hai loại dữ liệu đó.
làm thế nào TypeError: can't multiply sequence by non-int of type float
Lỗi xảy ra trong Python?
Các TypeError: can't multiply sequence by non-int of type float
lỗi thường xảy ra khi bạn sử dụng Python input()
chức năng, lấy đầu vào của người dùng. Điều này là do, theo mặc định, input()
trả về đầu vào của người dùng dưới dạng một chuỗi.
Hãy lấy một ví dụ giả định sau đây. Giả sử tôi yêu cầu người dùng nhập tuổi của họ và lưu câu trả lời của họ vào một biến có tên user_age
:
user_age = input("Please enter your age: ")
Tôi có thể kiểm tra kiểu dữ liệu của giá trị được lưu trữ trong biến user_age
bằng cách sử dụng type()
chức năng và sau đó in kết quả ra bàn điều khiển:
user_age = input("Please enter your age: ")
print(type(user_age))
# output
# Please enter your age: 29
# <class 'str'>
Từ đầu ra, bạn có thể thấy rằng mặc dù tôi đã nhập một số nguyên, kiểu dữ liệu trả về là kiểu chuỗi.
Nếu sau đó, vì bất kỳ lý do gì, tôi muốn nhân tuổi của người dùng với một số dấu phẩy động, tôi sẽ nhận được TypeError: can't multiply sequence by non-int of type float
lỗi:
user_age = input("Please enter your age: ")
print(user_age * 0.5)
# output
# Please enter your age: 29
# Traceback (most recent call last):
# File "main.py", line 3, in <module>
# print(user_age * 0.5)
# TypeError: can't multiply sequence by non-int of type 'float'
Làm thế nào để giải quyết TypeError: can't multiply sequence by non-int of type float
Lỗi trong Python
Để giải quyết TypeError: can't multiply sequence by non-int of type float
lỗi, hãy chuyển đổi chuỗi thành số dấu phẩy động trước khi nhân nó với số float.
Như bạn đã thấy trước đó, phần sau sẽ ném TypeError: can't multiply sequence by non-int of type float
lỗi:
print("3" * 3.3)
# output
# Traceback (most recent call last):
# File "main.py", line 1, in <module>
# print("3" * 3.3)
# TypeError: can't multiply sequence by non-int of type 'float'
Nếu bạn chuyển đổi chuỗi "3"
thành số float trước khi nhân nó với số dấu phẩy động 3.3
sẽ không có lỗi.
Để chuyển đổi một chuỗi thành một float, hãy sử dụng float()
chức năng:
print(float("3") * 3.3)
# output
# 9.899999999999999
Và bạn có thể làm tương tự khi bạn sử dụng input()
chức năng. Chuyển đổi giá trị người dùng nhập thành số dấu phẩy động bằng cách sử dụng float()
chức năng.
Đây là cách bạn sẽ viết lại ví dụ bằng cách sử dụng input()
chức năng từ trước đó:
user_age = float(input("Please enter your age: "))
print(user_age * 0.5)
# output
# Please enter your age: 29
# 14.5
Các float()
hàm chuyển đổi giá trị chuỗi được trả về bởi input()
thành một số dấu phẩy động và bạn có thể nhân giá trị đó với một số dấu phẩy động.
Phần kết luận
Và bạn có nó rồi đấy! Bây giờ bạn đã biết cách giải TypeError: can't multiply sequence by non-int of type float
lỗi trong Python!
Tôi hy vọng bạn tìm thấy hướng dẫn này hữu ích.
Để tìm hiểu thêm về ngôn ngữ lập trình Python, hãy xem chứng chỉ Python của freeCodeCamp.
Bạn sẽ bắt đầu từ những điều cơ bản và học theo cách tương tác và thân thiện với người mới bắt đầu. Cuối cùng, bạn cũng sẽ xây dựng năm dự án để đưa vào thực tế và giúp củng cố những gì bạn đã học được.
Cảm ơn bạn đã đọc và chúc bạn mã hóa vui vẻ!