Hướng dẫn how do you convert an empty string to an int in python? - làm thế nào để bạn chuyển đổi một chuỗi rỗng thành một int trong python?

Để chuyển đổi một chuỗi thành một số nguyên, bạn sử dụng hàm int[] tiện dụng. Ví dụ: nếu bạn có một chuỗi như "79" và bạn chèn cái này như vậy vào hàm int[]: int["79"] bạn nhận được kết quả 79. Nhưng điều gì xảy ra khi bạn không có một chuỗi dễ dàng chuyển đổi thành một số?

Dưới đây là một số ví dụ trong đó việc chuyển đổi một chuỗi thành một loại số nguyên chỉ đơn giản sẽ không hoạt động trong Python [vì lý do rõ ràng]:

>>> int["Hello world"]
Traceback [most recent call last]:
  File "", line 1, in 
ValueError: invalid literal for int[] with base 10: 'Hello world'

>>> int["12.3"]
Traceback [most recent call last]:
  File "", line 1, in 
ValueError: invalid literal for int[] with base 10: '12.3'

>>> int["12%"]
Traceback [most recent call last]:
  File "", line 1, in 
ValueError: invalid literal for int[] with base 10: '12%'

>>> int["1+1"]
Traceback [most recent call last]:
  File "", line 1, in 
ValueError: invalid literal for int[] with base 10: '1+1'

>>> int[""]
Traceback [most recent call last]:
  File "", line 1, in 
ValueError: invalid literal for int[] with base 10: ''

Như bạn có thể thấy từ các kết quả trên, tất cả các lỗi tạo ra vì chuỗi được chèn không thể dễ dàng phân tích cú pháp vào một số nguyên.

Sau đó, nó trở lại với cách bạn muốn xác định số kết quả nếu có lỗi.

Do đó, bạn có thể kết thúc mỗi cuộc gọi int[] trong một khối

list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    try:
        e = int[i]
        result.append[e]
    except:
        result.append[0]

print[result]

> [1, 0, 0, 0]
1 để xem liệu có lỗi hay không và nếu có để trả về một số mặc định bạn muốn trả lại. Đây là một ví dụ:

list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    try:
        e = int[i]
        result.append[e]
    except:
        result.append[0]

print[result]

> [1, 0, 0, 0]

Trong ví dụ đơn giản của chúng tôi ở trên, chúng tôi có một danh sách các chuỗi mà chúng tôi muốn chuyển đổi sang số nguyên bằng hàm int[] Python. Chúng tôi lặp qua từng phần tử trong danh sách bằng cách sử dụng một vòng lặp đơn giản, nhưng trong vòng lặp bạn có thể thấy có một khối

list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    try:
        e = int[i]
        result.append[e]
    except:
        result.append[0]

print[result]

> [1, 0, 0, 0]
1.

Phần

list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    try:
        e = int[i]
        result.append[e]
    except:
        result.append[0]

print[result]

> [1, 0, 0, 0]
4 kiểm tra việc chuyển đổi phần tử trong danh sách thành một số nguyên và nếu nó thành công, nó sẽ chèn kết quả vào danh sách
list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    try:
        e = int[i]
        result.append[e]
    except:
        result.append[0]

print[result]

> [1, 0, 0, 0]
5 của chúng tôi.

Nếu nó không thành công thì nó sẽ chuyển sang phần

list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    try:
        e = int[i]
        result.append[e]
    except:
        result.append[0]

print[result]

> [1, 0, 0, 0]
6 trong đó, như được hiển thị trong ví dụ trên, chúng tôi biến tất cả các lỗi thành giá trị 0 được thêm vào danh sách kết quả của chúng tôi.

Tuy nhiên, chúng ta có thể kiểm tra thêm về lý do tại sao chuỗi không chuyển đổi thành số nguyên trong phần

list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    try:
        e = int[i]
        result.append[e]
    except:
        result.append[0]

print[result]

> [1, 0, 0, 0]
7. Ví dụ: chúng tôi có thể đã viết như sau để thực hiện nhiều kiểm tra hơn trong khối
list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    try:
        e = int[i]
        result.append[e]
    except:
        result.append[0]

print[result]

> [1, 0, 0, 0]
6 này và để đưa ra các câu trả lời khác nhau theo mỗi câu hỏi:

list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    try:
        e = int[i]
        result.append[e]
    except:
        if i == "":
            result.append[0]
        else:
            result.append[None]

print[result]

> [1, None, None, 0]

Ở đây tôi kiểm tra rõ ràng xem có một chuỗi trống trong danh sách không và nếu có để chuyển đổi nó thành số nguyên

list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    try:
        e = int[i]
        result.append[e]
    except:
        result.append[0]

print[result]

> [1, 0, 0, 0]
9, mọi thứ khác tôi chuyển đổi thành
list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    try:
        e = int[i]
        result.append[e]
    except:
        if i == "":
            result.append[0]
        else:
            result.append[None]

print[result]

> [1, None, None, 0]
0.

Mà không cần sử dụng khối thử

Nếu bạn muốn chuyển đổi chuỗi thành số nguyên trong Python mà không cần sử dụng khối thử thử thì bạn sẽ cần đặt nhiều kiểm tra hơn trên mỗi phần tử trước khi gọi hàm int[].prior to calling the int[] function.

Một cách thực hiện kiểm tra là sử dụng các biểu thức chính quy, như được hiển thị bên dưới:

import re
list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    r = re.findall[r'\D', i]
    if len[r] == 0 and len[i] > 0:
        e = int[i]
        result.append[e]
    else:
        if i == "":
            result.append[0]
        else:
            result.append[None]

print[result]

> [1, None, None, 0]

Trong phần khối trên, trước tiên, trước tiên, bạn cần nhập thư viện biểu thức thông thường trong Python, điều này được thực hiện ở đầu tập lệnh bằng cách sử dụng

list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    try:
        e = int[i]
        result.append[e]
    except:
        if i == "":
            result.append[0]
        else:
            result.append[None]

print[result]

> [1, None, None, 0]
2.

Thay đổi tiếp theo là chụp biểu thức chính quy với câu lệnh:

r = re.findall[r'\D', i]

Hàm

list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    try:
        e = int[i]
        result.append[e]
    except:
        if i == "":
            result.append[0]
        else:
            result.append[None]

print[result]

> [1, None, None, 0]
3 trả về danh sách các kết quả theo điều kiện biểu thức chính quy được chèn vào tham số thứ nhất được thực hiện trên chuỗi trong tham số thứ hai.

Biểu thức chính quy

list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    try:
        e = int[i]
        result.append[e]
    except:
        if i == "":
            result.append[0]
        else:
            result.append[None]

print[result]

> [1, None, None, 0]
4 có nghĩa là nắm bắt tất cả các chữ số.digits.

Do đó, nếu biến

list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    try:
        e = int[i]
        result.append[e]
    except:
        if i == "":
            result.append[0]
        else:
            result.append[None]

print[result]

> [1, None, None, 0]
5 chứa một danh sách trống thì chúng tôi biết rằng không có chữ số nào trong phần tử và đây là lý do tại sao trên dòng tiếp theo, chúng tôi kiểm tra xem độ dài của biến
list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    try:
        e = int[i]
        result.append[e]
    except:
        if i == "":
            result.append[0]
        else:
            result.append[None]

print[result]

> [1, None, None, 0]
5 là
list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    try:
        e = int[i]
        result.append[e]
    except:
        result.append[0]

print[result]

> [1, 0, 0, 0]
9. Tuy nhiên, chúng tôi cũng cần kiểm tra xem độ dài của phần tử lớn hơn 0 vì chuỗi trống của chúng tôi sẽ đáp ứng yêu cầu biểu thức chính quy, nhưng chúng tôi biết rằng nó sẽ lỗi khi được gửi qua để chuyển đổi số nguyên.will satisfy the regular expression requirement, but we know it will error when sent through for integer conversion.

Cuối cùng, chúng tôi trao đổi điều khoản

list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    try:
        e = int[i]
        result.append[e]
    except:
        result.append[0]

print[result]

> [1, 0, 0, 0]
6 của chúng tôi cho
list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    try:
        e = int[i]
        result.append[e]
    except:
        if i == "":
            result.append[0]
        else:
            result.append[None]

print[result]

> [1, None, None, 0]
9 và làm như chúng tôi đã làm với các yếu tố đó trong danh sách sẽ không chơi độc đáo với chức năng int[].

Như bạn có thể thấy kết quả của chúng tôi giống hệt như trước với khối

list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    try:
        e = int[i]
        result.append[e]
    except:
        result.append[0]

print[result]

> [1, 0, 0, 0]
1.

Bản tóm tắt

Việc chuyển đổi một chuỗi trống thành một số nguyên không thể được thực hiện trong Python bằng cách sử dụng hàm int[] và sẽ cần phải được lọc khỏi việc được đưa vào hàm int[]. Hai cách áp dụng bộ lọc này là sử dụng khối

list_strings = ["1", "2.2", "3%", ""]
result = []
for i in list_strings:
    try:
        e = int[i]
        result.append[e]
    except:
        result.append[0]

print[result]

> [1, 0, 0, 0]
1 hoặc một số hình thức lọc khác như biểu thức thông thường. Khi chuỗi trống được ghi lại, bạn có thể đặt thủ công giá trị theo trường hợp sử dụng của bạn.

Các giá trị chuỗi có thể được chuyển đổi thành int python không?

Trong Python, một chuỗi có thể được chuyển đổi thành một số nguyên bằng hàm int [] tích hợp.Hàm int [] có trong bất kỳ loại dữ liệu python nào và chuyển đổi nó thành một số nguyên.an strings can be converted into a integer using the built-in int[] function. The int[] function takes in any python data type and converts it into a integer.

Str int float trong python là gì?

Mỗi giá trị có một loại.Integer [int]: đại diện cho các số toàn bộ dương hoặc âm như 3 hoặc -512. Số điểm [Float]: đại diện cho các số thực như 3.14159 hoặc -2,5.Chuỗi ký tự [thường được gọi là chuỗi chuỗi, str]: văn bản.Được viết bằng trích dẫn đơn hoặc trích dẫn kép [miễn là chúng khớp].Integer [ int ]: represents positive or negative whole numbers like 3 or -512. Floating point number [ float ]: represents real numbers like 3.14159 or -2.5. Character string [usually called “string”, str ]: text. Written in either single quotes or double quotes [as long as they match].

Stoi trong Python là gì?

Tất cả mã MATLAB trong repo này được lấy từ hoặc điều chỉnh từ mã có sẵn ở đây [STOI-Biện pháp thông minh khách quan thời gian ngắn-] được viết bởi Cees Taal.Cảm ơn Cees Taal, người đã mở thực hiện MATLAB của mình và cho phép kiểm tra kỹ lưỡng mã Python này.Short-Time Objective Intelligibility Measure – ] written by Cees Taal. Thanks to Cees Taal who open-sourced his Matlab implementation and enabled thorough testing of this python code.

Bài Viết Liên Quan

Chủ Đề