Hướng dẫn python extract integer from float - số nguyên trích xuất python từ float

Tôi đã có các giá trị cường độ liều lượng như ________ 14, ________ 15 trong chuỗi. Tôi chỉ muốn trích xuất giá trị số nguyên hoặc float.

Dưới đây là những gì tôi đã thử cho đến nay

def parseint(self,string):
   return int(''.join([x for x in string if x.isdigit()]))   

Nhưng điều này không hoạt động trong mọi trường hợp.

ex1)

parseint('2 mg')
o/p- 2

EX2)

parseint('10.2 mg')
o/p - 102 

Đầu ra dự kiến:

i/p "20.5 MG" o/p- 20.5
i/p "20.0 MG" o/p - 20.0
i/p "20.0 MG" o/p - 20.0

Hỏi ngày 11 tháng 10 năm 2018 lúc 6:13Oct 11, 2018 at 6:13

Hướng dẫn python extract integer from float - số nguyên trích xuất python từ float

5

Sử dụng Regex.

Ex:

import re


def parseint(string):
    m = re.search(r"(\d*\.?\d*)", string)
    return m.group() if m else None

s1 = "20.5 mg,"
s2 = "20 mg"

print(parseint(s1))
print(parseint(s2))

Output:

20.5
20

Đã trả lời ngày 11 tháng 10 năm 2018 lúc 6:26Oct 11, 2018 at 6:26

Hướng dẫn python extract integer from float - số nguyên trích xuất python từ float

RakeshrakeshRakesh

79,8K17 Huy hiệu vàng72 Huy hiệu bạc109 Huy hiệu đồng17 gold badges72 silver badges109 bronze badges

def parseint(string):
    return float(''.join([x for x in string if x.isdigit() or x == '.']))

Một cái gì đó như thế này nên làm việc.

Đã trả lời ngày 11 tháng 10 năm 2018 lúc 6:19Oct 11, 2018 at 6:19

Hướng dẫn python extract integer from float - số nguyên trích xuất python từ float

Ninad Gaikwadninad GaikwadNinad Gaikwad

4.0162 Huy hiệu vàng13 Huy hiệu bạc22 Huy hiệu đồng2 gold badges13 silver badges22 bronze badges

1

Sử dụng danh sách hiểu, với ____ ____ 16Float ________ 17int`

res = [float(i.split()[0]) if '.' in i else int(i.split()[0]) for i in lst]

Giải thích mở rộng

lst = ['2 mg', '10.2 mg', '20.5 MG']
for i in lst:
    if '.' in i:
        print(float(i.split()[0]))
    else:
        print(int(i.split()[0]))
# 2
# 10.2
# 20.5

Đã trả lời ngày 11 tháng 10 năm 2018 lúc 6:24Oct 11, 2018 at 6:24

Hướng dẫn python extract integer from float - số nguyên trích xuất python từ float

Sau khi làm tròn phao, chúng ta có thể lấy sự khác biệt giữa phao gốc và số làm tròn để tìm phần phân số.

1. Sử dụng toán tử modulo (parseint('2 mg') o/p- 2 8)

Toán tử

parseint('2 mg')
o/p- 2
8 là một toán tử số học tính toán và trả về phần còn lại sau khi phân chia hai số.
parseint('2 mg')
o/p- 2
8 operator
is an arithmetic operator that calculates and returns the remainder after the division of two numbers.

Nếu một số được chia cho 1, phần còn lại sẽ là phần phân số. Vì vậy, sử dụng toán tử modulo sẽ cung cấp phần phân đoạn của một chiếc phao.

Mã số

decNum = 3.14159265359

frac = decNum % 1

print(frac)

2. Sử dụng parseint('10.2 mg') o/p - 102 0

Cú pháp

parseint('2 mg')
o/p- 2
0

Thông số

Chức năng được xây dựng vòng () có hai tham số:

  1. parseint('10.2 mg')
    o/p - 102 
    
    1: Số float cần được làm tròn
    : The float number that needs to be rounded
  2. parseint('10.2 mg')
    o/p - 102 
    
    2: Đây là một đối số tùy chọn chỉ định vị trí thập phân mà hàm sẽ làm tròn phao. Nếu đối số này không xác định, phao sẽ được làm tròn đến số nguyên gần nhất.
    : This is an optional argument that specifies the decimal place to which the function should round the float. If this argument is unspecified, the float will be rounded to the nearest integer.

Hàm sẽ làm tròn phao đến giá trị số nguyên gần nhất khi đối số thứ hai không được đưa ra, tương đương với việc sử dụng

parseint('10.2 mg')
o/p - 102 
3.

Sau khi làm tròn phao, chúng ta có thể lấy sự khác biệt giữa phao gốc và số làm tròn để tìm phần phân số.

Mã số

parseint('2 mg')
o/p- 2
1

2. Sử dụng parseint('10.2 mg') o/p - 102 0

Cú pháp

Cú pháp

parseint('2 mg')
o/p- 2
2

Thông số

Chức năng được xây dựng vòng () có hai tham số:

  • parseint('10.2 mg')
    o/p - 102 
    
    1: Số float cần được làm tròn

parseint('10.2 mg')
o/p - 102 
2: Đây là một đối số tùy chọn chỉ định vị trí thập phân mà hàm sẽ làm tròn phao. Nếu đối số này không xác định, phao sẽ được làm tròn đến số nguyên gần nhất.

Hàm sẽ làm tròn phao đến giá trị số nguyên gần nhất khi đối số thứ hai không được đưa ra, tương đương với việc sử dụng

parseint('10.2 mg')
o/p - 102 
3.

Mã số

parseint('2 mg')
o/p- 2
3

2. Sử dụng

parseint('10.2 mg')
o/p - 102 
0

Cú pháp

float

Thông số

Bạn có thể chuyển đổi phao thành số nguyên trong Python không?

Chuyển đổi phao sang số nguyên Python cũng có chức năng tích hợp để chuyển đổi phao sang số nguyên: int ().Trong trường hợp này, 390.8 sẽ được chuyển đổi thành 390.Python also has a built-in function to convert floats to integers: int() . In this case, 390.8 will be converted to 390 .

Float có thể lấy các giá trị số nguyên không?

Có, một giá trị tích phân có thể được thêm vào giá trị nổi.Các hoạt động toán học cơ bản ( +, -, *, /), khi được cung cấp một toán hạng phao và int, INT được chuyển đổi thành float trước.. The basic math operations ( + , - , * , / ), when given an operand of type float and int , the int is converted to float first.