HomeLập trìnhPythonkhông thể nhân...

không thể nhân chuỗi với kiểu không int float [Solved Python Error]


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:

  1. cái gì TypeError: can't multiply sequence by non-int of type float lỗi trong Python?
    1. Làm thế nào để TypeError: can't multiply sequence by non-int of type float xảy ra lỗi trong Python?
  2. 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ể đó.

Đọc thêm  Cách tạo tiền điện tử của riêng bạn bằng Python

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.

Đọc thêm  Đường dẫn Python – Cách sử dụng Mô-đun Pathlib với các ví dụ

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.3sẽ 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 thêm  Danh sách Python .remove() - Cách xóa một mục khỏi danh sách trong Python

Cảm ơn bạn đã đọc và chúc bạn mã hóa vui vẻ!



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status