Để 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.