Hướng dẫn cast object as int python - ép đối tượng dưới dạng int python

Tôi đang sử dụng mô -đun Numpy để lấy vị trí của giá trị tối đa trong mảng 2D. Nhưng mảng 2D này bao gồm myObjects. Bây giờ tôi gặp lỗi:

TypeError: Các loại không thể đặt hàng: int ()> myObject ()

Tôi đã cố gắng ghi đè chức năng INT với mã này:

def int(self):
    return self.score

Nhưng điều này không giải quyết được vấn đề của tôi. Tôi có phải chuyển đổi mảng MYObjects 2D của mình thành một mảng 2D của số nguyên không, tôi có phải mở rộng đối tượng số nguyên (nếu điều này là có thể trong Python) hoặc tôi có thể ghi đè hàm int () này theo cách khác không?

[EDIT]

Đối tượng đầy đủ:

class MyObject:
def __init__(self, x, y, score, direction, match):
    self.x = x
    self.y = y
    self.score = score
    self.direction = direction
    self.match = match

def __str__(self):
    return str(self.score)

def int(self):
    return self.score

Cách tôi gọi là đối tượng này:

 def traceBack(self):
    self.matrix = np.array(self.matrix)
    maxIndex = self.matrix.argmax()
    print(self.matrix.unravel_index(maxIndex))

Hướng dẫn cast object as int python - ép đối tượng dưới dạng int python

Khi bạn lập trình, bạn sẽ thường cần chuyển đổi giữa các loại dữ liệu.

Khả năng chuyển đổi loại dữ liệu này sang loại dữ liệu khác mang lại cho bạn sự linh hoạt tuyệt vời khi làm việc với thông tin.

Có nhiều cách tích hợp khác nhau để chuyển đổi, hoặc diễn viên, các loại trong ngôn ngữ lập trình Python.

Trong bài viết này, bạn sẽ học cách chuyển đổi một chuỗi thành số nguyên.

Bắt đầu nào!

Các loại dữ liệu trong Python

Python hỗ trợ nhiều loại dữ liệu.

Các loại dữ liệu được sử dụng để chỉ định, đại diện và phân loại các loại dữ liệu khác nhau tồn tại và được sử dụng trong các chương trình máy tính.

Ngoài ra, các hoạt động khác nhau có sẵn với các loại dữ liệu khác nhau - một hoạt động có sẵn trong một loại dữ liệu thường không có sẵn trong một loại khác.

Một ví dụ về kiểu dữ liệu là chuỗi.

Chuỗi là chuỗi các ký tự được sử dụng để truyền tải thông tin văn bản.

Chúng được đặt trong các dấu ngoặc kép đơn hoặc kép, như SO:

fave_phrase = "Hello world!"

#Hello world! is a string,enclosed in double quotation marks

Ints, hoặc số nguyên, là số lượng toàn bộ.

Chúng được sử dụng để đại diện cho dữ liệu số và bạn có thể thực hiện bất kỳ hoạt động toán học nào (chẳng hạn như bổ sung, trừ, nhân và chia) khi làm việc với các số nguyên.

Số nguyên không được đặt trong các dấu ngoặc kép đơn hoặc kép.

fave_number = 7

#7 is an int
#"7" would not be an int but a string, despite it being a number. 
#This is because of the quotation marks surrounding it

Chuyển đổi kiểu dữ liệu

Đôi khi khi bạn lưu trữ dữ liệu hoặc khi bạn nhận được đầu vào từ người dùng theo một loại, bạn sẽ cần thao tác và thực hiện các loại hoạt động khác nhau trên dữ liệu đó.

Vì mỗi kiểu dữ liệu có thể được thao tác theo những cách khác nhau, điều này thường có nghĩa là bạn sẽ cần chuyển đổi nó.

Chuyển đổi một kiểu dữ liệu sang loại khác cũng được gọi là loại đúc hoặc chuyển đổi loại. Nhiều ngôn ngữ cung cấp các toán tử đúc tích hợp để làm điều đó-để chuyển đổi rõ ràng một loại này sang loại khác.

Để chuyển đổi hoặc đúc, một chuỗi thành một số nguyên trong Python, bạn sử dụng hàm tích hợp ____1010.

Hàm nhận được như một tham số, chuỗi ban đầu bạn muốn chuyển đổi và trả về số nguyên tương đương với giá trị bạn đã vượt qua.

Cú pháp chung trông giống như thế này:

class MyObject:
def __init__(self, x, y, score, direction, match):
    self.x = x
    self.y = y
    self.score = score
    self.direction = direction
    self.match = match

def __str__(self):
    return str(self.score)

def int(self):
    return self.score
1.

Hãy lấy ví dụ sau, trong đó có phiên bản chuỗi của một số:

#string version of the number 7
print("7")

#check the data type with type() method
print(type("7"))

#output

#7
#<class 'str'>

Để chuyển đổi phiên bản chuỗi của số thành số nguyên tương đương, bạn sử dụng hàm

class MyObject:
def __init__(self, x, y, score, direction, match):
    self.x = x
    self.y = y
    self.score = score
    self.direction = direction
    self.match = match

def __str__(self):
    return str(self.score)

def int(self):
    return self.score
0, như vậy:

#convert string to int data type
print(int("7"))

#check the data type with type() method
print(type(int("7")))

#output

#7
#<class 'int'>

Một ví dụ thực tế về việc chuyển đổi một chuỗi thành một int

Giả sử bạn muốn tính độ tuổi của người dùng. Bạn làm điều này bằng cách nhận đầu vào từ họ. Đầu vào đó sẽ luôn ở định dạng chuỗi.

Vì vậy, ngay cả khi họ nhập một số, số đó sẽ là

class MyObject:
def __init__(self, x, y, score, direction, match):
    self.x = x
    self.y = y
    self.score = score
    self.direction = direction
    self.match = match

def __str__(self):
    return str(self.score)

def int(self):
    return self.score
3.

Nếu bạn muốn thực hiện các hoạt động toán học trên đầu vào đó, chẳng hạn như trừ đầu vào từ một số khác, bạn sẽ gặp lỗi vì bạn không thể thực hiện các hoạt động toán học trên chuỗi.

Kiểm tra ví dụ dưới đây để xem điều này trong hành động:

current_year = 2021

#ask user to input their year of birth
user_birth_year_input = input("What year were you born? ")

#subtract the year the user filled in from the current year 
user_age = current_year - user_birth_year_input

print(user_age)

#output

#What year were you born? 1993
#Traceback (most recent call last):
#  File "demo.py", line 9, in <module>
#    user_age = current_year - user_birth_year_input
#TypeError: unsupported operand type(s) for -: 'int' and 'str'

Lỗi đề cập rằng phép trừ không thể được thực hiện giữa INT và một chuỗi.

Bạn có thể kiểm tra kiểu dữ liệu của đầu vào bằng cách sử dụng phương thức

class MyObject:
def __init__(self, x, y, score, direction, match):
    self.x = x
    self.y = y
    self.score = score
    self.direction = direction
    self.match = match

def __str__(self):
    return str(self.score)

def int(self):
    return self.score
4:

current_year = 2021

#ask user to input their year of birth
user_birth_year_input = input("What year were you born? ")

print(type(user_birth_year_input))

#output

#What year were you born? 1993
#<class 'str'>

Cách xung quanh này và để tránh lỗi là chuyển đổi đầu vào của người dùng thành số nguyên và lưu trữ bên trong một biến mới:

current_year = 2021

#ask user to input their year of birth
user_birth_year_input = input("What year were you born? ")

#convert the raw user input to an int using the int() function and store in new variable
user_birth_year = int(user_birth_year_input)

#subtract the converted user input from the current year
user_age = current_year - user_birth_year

print(user_age)

#output

#What year were you born? 1993
#28

Sự kết luận

Và ở đó bạn có nó - bây giờ bạn biết cách chuyển đổi chuỗi sang số nguyên trong Python!

Nếu bạn muốn tìm hiểu thêm về ngôn ngữ lập trình Python, Freecodecamp có chứng nhận Python để giúp bạn bắt đầu.

Bạn sẽ bắt đầu với các nguyên tắc cơ bản và tiến tới các chủ đề nâng cao hơn như cấu trúc dữ liệu và cơ sở dữ liệu quan hệ. Cuối cùng, bạn sẽ xây dựng năm dự án để thực hành những gì bạn đã học.

Cảm ơn bạn đã đọc và mã hóa hạnh phúc!



Học mã miễn phí. Chương trình giảng dạy 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

Bạn có thể đúc một đối tượng cho một int?

Bạn không được chọn vào INT, không có đối tượng nào có thể được chọn vào INT. Bạn thực sự là số nguyên và sau đó autobox vào int.no Object can ever be cast to an int. You're actually to Integer and then autoboxing to an int.

Làm thế nào để bạn thay đổi một đối tượng thành int in python?

Cách tốt nhất để chuyển đổi một hoặc nhiều cột của DataFrame thành các giá trị số là sử dụng pandas.to_numeric ().Chức năng này sẽ cố gắng thay đổi các đối tượng không phải là số (như chuỗi) thành số nguyên hoặc số điểm nổi nếu thích hợp.pandas. to_numeric(). This function will try to change non-numeric objects (such as strings) into integers or floating-point numbers as appropriate.

Làm thế nào để bạn thay đổi một loại đối tượng trong Python?

Python là tất cả về các đối tượng do đó các đối tượng có thể được chuyển đổi trực tiếp thành các chuỗi bằng các phương thức như str () và repr ().Phương thức str () được sử dụng để chuyển đổi tất cả các đối tượng tích hợp thành chuỗi.Tương tự, phương thức repr () như một phần của phương thức chuyển đổi đối tượng cũng được sử dụng để chuyển đổi một đối tượng trở lại một chuỗi.str() and repr(). Str() method is used for the conversion of all built-in objects into strings. Similarly, repr() method as part of object conversion method is also used to convert an object back to a string.

Làm thế nào để bạn chuyển đổi một lớp thành int in python?

Nếu bạn quyết định chuyển đổi biến này thành một số nguyên, tất cả những gì bạn phải làm là sử dụng hàm int (): b = int (a).Chuyển đổi này là có thể bởi vì Python biết cách chuyển đổi một biến nổi thành một số nguyên.b = int(a) . This conversion is possible because Python knows how to convert a float variable into an integer.