Cách nhân với một số thập phân trong Python

Đầu tiên, tôi sẽ giải thích tại sao lỗi này lại 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. Lỗi
    print("3" * 3.3)
    
    # output
    
    # Traceback (most recent call last):
    #  File "main.py", line 1, in 
    #    print("3" * 3.3)
    # TypeError: can't multiply sequence by non-int of type 'float'
    
    4 trong Python là gì?
    1. Lỗi
      print("3" * 3.3)
      
      # output
      
      # Traceback (most recent call last):
      #  File "main.py", line 1, in 
      #    print("3" * 3.3)
      # TypeError: can't multiply sequence by non-int of type 'float'
      
      4 xảy ra như thế nào trong Python?
  2. Cách khắc phục lỗi
    print("3" * 3.3)
    
    # output
    
    # Traceback (most recent call last):
    #  File "main.py", line 1, in 
    #    print("3" * 3.3)
    # TypeError: can't multiply sequence by non-int of type 'float'
    
    4 trong Python

Lỗi print("3" * 3.3) # output # Traceback (most recent call last): # File "main.py", line 1, in # print("3" * 3.3) # TypeError: can't multiply sequence by non-int of type 'float' 4 trong Python là gì?

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 dãy 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 đơn hoặc dấu ngoặ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 
#    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

print("3" * 3)

# output

# 333
4

print("3" * 3)

# output

# 333
4 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ỗi print("3" * 3.3) # output # Traceback (most recent call last): # File "main.py", line 1, in # print("3" * 3.3) # TypeError: can't multiply sequence by non-int of type 'float' 4 xảy ra như thế nào trong Python?

Lỗi

print("3" * 3.3)

# output

# Traceback (most recent call last):
#  File "main.py", line 1, in 
#    print("3" * 3.3)
# TypeError: can't multiply sequence by non-int of type 'float'
4 thường xảy ra khi bạn sử dụng hàm
print("3" * 3)

# output

# 333
8 của Python, hàm này nhận đầu vào của người dùng. Điều này là do, theo mặc định, hàm
print("3" * 3)

# output

# 333
8 trả về đầu vào của người dùng dưới dạng một chuỗi

Hãy lấy ví dụ giả định sau. 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

print("3" * 3.3)

# output

# Traceback (most recent call last):
#  File "main.py", line 1, in 
#    print("3" * 3.3)
# TypeError: can't multiply sequence by non-int of type 'float'
0

________số 8

Tôi có thể kiểm tra kiểu dữ liệu của giá trị được lưu trữ trong biến

print("3" * 3.3)

# output

# Traceback (most recent call last):
#  File "main.py", line 1, in 
#    print("3" * 3.3)
# TypeError: can't multiply sequence by non-int of type 'float'
0 bằng cách sử dụng hàm
print("3" * 3.3)

# output

# Traceback (most recent call last):
#  File "main.py", line 1, in 
#    print("3" * 3.3)
# TypeError: can't multiply sequence by non-int of type 'float'
2 và sau đó in kết quả ra bàn điều khiển

print("3" * 3)

# output

# 333
1

Từ đầu ra, bạn có thể thấy rằng mặc dù tôi đã nhập một số nguyên nhưng 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ố có dấu phẩy động, tôi sẽ gặp lỗi

print("3" * 3.3)

# output

# Traceback (most recent call last):
#  File "main.py", line 1, in 
#    print("3" * 3.3)
# TypeError: can't multiply sequence by non-int of type 'float'
4

print("3" * 3)

# output

# 333
2

Cách giải quyết lỗi print("3" * 3.3) # output # Traceback (most recent call last): # File "main.py", line 1, in # print("3" * 3.3) # TypeError: can't multiply sequence by non-int of type 'float' 4 trong Python

Để giải quyết lỗi

print("3" * 3.3)

# output

# Traceback (most recent call last):
#  File "main.py", line 1, in 
#    print("3" * 3.3)
# TypeError: can't multiply sequence by non-int of type 'float'
4, 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ẽ đưa ra lỗi

print("3" * 3.3)

# output

# Traceback (most recent call last):
#  File "main.py", line 1, in 
#    print("3" * 3.3)
# TypeError: can't multiply sequence by non-int of type 'float'
4

print("3" * 3.3)

# output

# Traceback (most recent call last):
#  File "main.py", line 1, in 
#    print("3" * 3.3)
# TypeError: can't multiply sequence by non-int of type 'float'

Nếu bạn chuyển đổi chuỗi

print("3" * 3.3)

# output

# Traceback (most recent call last):
#  File "main.py", line 1, in 
#    print("3" * 3.3)
# TypeError: can't multiply sequence by non-int of type 'float'
7 thành số float trước khi nhân nó với số dấu phẩy động
print("3" * 3.3)

# output

# Traceback (most recent call last):
#  File "main.py", line 1, in 
#    print("3" * 3.3)
# TypeError: can't multiply sequence by non-int of type 'float'
8, sẽ không có lỗi

Để chuyển đổi một chuỗi thành float, hãy sử dụng hàm

print("3" * 3.3)

# output

# Traceback (most recent call last):
#  File "main.py", line 1, in 
#    print("3" * 3.3)
# TypeError: can't multiply sequence by non-int of type 'float'
9

print("3" * 3)

# output

# 333
7

Và bạn có thể làm tương tự khi sử dụng hàm

print("3" * 3)

# output

# 333
8. Chuyển đổi giá trị người dùng nhập thành số dấu phẩy động bằng hàm
print("3" * 3.3)

# output

# Traceback (most recent call last):
#  File "main.py", line 1, in 
#    print("3" * 3.3)
# TypeError: can't multiply sequence by non-int of type 'float'
9

Đây là cách bạn sẽ viết lại ví dụ bằng cách sử dụng hàm

print("3" * 3)

# output

# 333
8 từ trước đó

print("3" * 3.3)

# output

# Traceback (most recent call last):
#  File "main.py", line 1, in 
#    print("3" * 3.3)
# TypeError: can't multiply sequence by non-int of type 'float'
1

Hàm

print("3" * 3.3)

# output

# Traceback (most recent call last):
#  File "main.py", line 1, in 
#    print("3" * 3.3)
# TypeError: can't multiply sequence by non-int of type 'float'
9 chuyển đổi giá trị chuỗi do hàm
print("3" * 3)

# output

# 333
8 trả về thành một số có dấu phẩy động và bạn có thể nhân giá trị đó với một số có 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 quyết lỗi

print("3" * 3.3)

# output

# Traceback (most recent call last):
#  File "main.py", line 1, in 
#    print("3" * 3.3)
# TypeError: can't multiply sequence by non-int of type 'float'
4 trong Python

Tôi hy vọng bạn 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ảm ơn bạn đã đọc và chúc bạn mã hóa vui vẻ

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO


Cách nhân với một số thập phân trong Python
Dionysia Lemonaki

Học một cái gì đó mới mỗi ngày và viết về nó


Nếu bài viết này hữu ích, hãy tweet nó

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu