Phạm vi Python nổi

Trong hướng dẫn phạm vi Python (), chúng tôi đã thấy rằng chúng tôi có thể tạo một lần lặp cho một chuỗi các số nguyên. Đó là bởi vì hàm range() chỉ chấp nhận các số nguyên cho các đối số bắt đầu, dừng và bước

Vì vậy, để tạo Phạm vi của các số dấu phẩy động, chúng ta phải sử dụng hàm range() để tạo chuỗi các số dấu phẩy động. Chúng ta sẽ xem xét một ví dụ cho cách giải quyết này

Ngoài ra, có một hàm trong thư viện numpy(), hàm arange(), có thể tạo ra một chuỗi các số dấu phẩy động. Chúng tôi cũng sẽ xem xét điều này với một số ví dụ

Phạm vi Python của số nổi bằng cách sử dụng numpy. sắp xếp()

Trong ví dụ này, chúng tôi sẽ sử dụng numpy. hàm arange() để tạo một trình vòng lặp cho chuỗi các số dấu phẩy động

Chương trình Python

import numpy

start = 0
stop = 0.9
step = 0.1

for i in numpy.arange(start, stop, step) :
    print(i)
Dùng thử trực tuyến

đầu ra

0.0
0.1
0.2
0.30000000000000004
0.4
0.5
0.6000000000000001
0.7000000000000001
0.8

Phạm vi Python của số nổi sử dụng phạm vi ()

Trong ví dụ này, chúng ta sẽ sử dụng hàm range() để tạo một chuỗi các số dấu phẩy động. Ý tưởng là, chúng ta sẽ nhân với một số nguyên, chẳng hạn như hệ số tỷ lệ, sẽ biến các giá trị dấu phẩy động này thành số nguyên, sau đó chúng ta sẽ tạo một đối tượng range(). Trong quá trình lặp, nếu chúng ta chia từng phần tử với cùng một hệ số tỷ lệ, chúng ta sẽ nhận được chuỗi các số dấu phẩy động

Chương trình Python

start = 0
stop = 0.9
step = 0.1

scale = 10

for i in range(int(scale*start), int(scale*stop), int(scale*step)) :
    print(i/scale)
Dùng thử trực tuyến

đầu ra

0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8

Bạn có thể phải thay đổi tỷ lệ dựa trên các giá trị bắt đầu, dừng và bước. Hoặc bạn có thể viết một hàm để tính toán tỷ lệ được tối ưu hóa dựa trên các giá trị bắt đầu, dừng và bước này. Hoặc bạn luôn có thể lấy một giá trị tỷ lệ rất cao như 1000000000000

Đôi khi bạn cần tạo một dải số dấu phẩy động, để làm cho các mã khác nhau dễ triển khai và thực thi hơn. Ở đây, trọng tâm là tạo ra một loạt các số dấu phẩy động

Hướng dẫn này trình bày một số phương pháp có sẵn để tạo một dải số dấu phẩy động

Mục lục

Số dấu phẩy động trong Python là gì?

Số dấu phẩy động, thường được phân loại và lưu trữ theo kiểu dữ liệu float, có khả năng biểu diễn các số thực chứa cả phần nguyên và phần phân số. Một float có thể lưu trữ các số có chứa dấu thập phân mà không có bất kỳ lỗi hoặc mất dữ liệu nào

Tại sao không sử dụng hàm range() đơn giản và phổ biến?

Để đơn giản thực hiện thao tác trả về một dãy số trong Python, chúng ta thường sử dụng hàm range(). Tuy nhiên, hàm range() không được áp dụng để sử dụng với số dấu phẩy động và không có khả năng chấp nhận số dấu phẩy động làm đầu vào của nó

Nếu một số dấu phẩy động được nhập làm đầu vào cho hàm, nó sẽ tự động tạo ra lỗi hiển thị các từ TypeError

Phạm vi Python nổi. Làm cách nào để tạo số dấu phẩy động trong Python?

  1. Sử dụng phương pháp numpy.linspace()
  2. Sử dụng phương pháp numpy.arange()
  3. Sử dụng hiểu danh sách
  4. Sử dụng hiểu máy phát điện
  5. Sử dụng trình tạo năng suất
  6. Sử dụng hàm do người dùng định nghĩa
  7. Sử dụng mô-đun itertools và các chức năng của nó
  8. Sử dụng hàm map() cùng với hàm float0
  9. Sử dụng chức năng float1

Sử dụng phương pháp numpy.linspace()

Phương thức numpy.linspace() nhận các giá trị float4 và float5 rồi tiếp tục trả về một dãy số theo chỉ định của người dùng

Các thông số kỹ thuật khác về chức năng này được thực hiện bằng cách chỉ định đối số float6 mà hàm sử dụng, được sử dụng để chỉ định số lượng giá trị cần được tạo trong phạm vi đã cho

Phương thức này có trong thư viện float7, được sử dụng để xử lý các mảng và ma trận và cần được nhập vào mã Python trước khi sử dụng phương thức này

Đoạn mã sau sử dụng phương thức numpy.linspace() để tạo một dải số dấu phẩy động trong Python

1

2

3

4

5

 

nhập numpy as np

x = np. linspace(0, 1, 10, endpoint=0)

in(x)

 

Đoạn mã trên cung cấp đầu ra sau

mảng ([0. , 0. 1, 0. 2, 0. 3, 0. 4, 0. 5, 0. 6, 0. 7, 0. 8, 0. 9]

Như đã thấy trong đoạn mã trên, đối số float9 có thể được chỉ định tùy chọn theo nhu cầu của người dùng cụ thể. Đối số này cho biết giá trị cuối cùng của chuỗi có cần được đưa vào hay không và giữ giá trị mặc định là range()0

Sử dụng phương pháp numpy.arange()

Phương thức numpy.arange(), tương tự như phương thức numpy.linspace(), nhận các giá trị float4 và float5 rồi chuyển sang trả về một dãy số do người dùng chỉ định. Tuy nhiên, thay vì đối số float6, phương thức numpy.arange() nhận một đối số range()8 khác được sử dụng để chỉ định kích thước bước giữa trình tự

Theo mặc định, float4 giữ giá trị range()0 trong khi float5 giữ giá trị range()2

Phương thức này có trong thư viện float7 và không phải là hàm mặc định của Python, điều đó có nghĩa là cần phải nhập thư viện float7 vào mã Python trước khi sử dụng phương thức này

Đoạn mã sau sử dụng phương thức numpy.arange() để tạo một dải số dấu phẩy động trong Python

1

2

3

4

5

 

nhập numpy as np

x = np. sắp xếp(0, 1 . 1, 0.1)

in(x)

 

Đoạn mã trên cung cấp đầu ra sau

[0. 0. 1 0. 2 0. 3 0. 4 0. 5 0. 6 0. 7 0. 8 0. 9]

Sử dụng hiểu danh sách

Hiểu danh sách là một cách tương đối ngắn hơn và rất duyên dáng để tạo các danh sách sẽ được hình thành trên cơ sở các giá trị đã cho của một danh sách đã tồn tại

Phương pháp này tạo ra một tập hợp các chỉnh sửa để cho phép thực hiện tác vụ đã cho với sự trợ giúp của phương pháp range()

Với sự trợ giúp của việc hiểu danh sách, chúng tôi chia gọn tất cả các kết quả của hàm range() ban đầu và chuyển đổi nó sang dạng thập phân. Ở đây, chúng ta chia kết quả của hàm range() cho 10 để đơn giản dễ hiểu, nhưng có thể sử dụng bất kỳ số nào khác thay thế

Đoạn mã sau sử dụng khả năng hiểu danh sách để tạo một dải số dấu phẩy động trong Python

1

2

3

4

 

x = [i / 10 for i in range(0, 10)]

in(x)

 

Đoạn mã trên cung cấp đầu ra sau

[0. 0, 0. 1, 0. 2, 0. 3, 0. 4, 0. 5, 0. 6, 0. 7, 0. 8, 0. 9]

Sử dụng hiểu máy phát điện

Khả năng hiểu của trình tạo hoạt động theo cách tương tự như khả năng hiểu danh sách và sử dụng cách tiếp cận nhỏ gọn và cú pháp để tạo đối tượng trình tạo có thể lặp lại. Toàn bộ trình tự có thể được xem xét và tạo ra với sự trợ giúp của vòng lặp range()9 cùng với khả năng hiểu Trình tạo

Đoạn mã sau sử dụng khả năng hiểu của trình tạo để tạo một dải số dấu phẩy động trong Python

1

2

3

4

5

6

 

x = (i / 10 for i in range(0, 10))

cho i trong x.

    in(i, end= " ")

in(x)

 

Đoạn mã trên cung cấp đầu ra sau

0. 0 0. 1 0. 2 0. 3 0. 4 0. 5 0. 6 0. 7 0. 8 0. 9

Sử dụng trình tạo năng suất

Một đối tượng trình tạo lặp đơn giản có thể được truy cập và triển khai thêm với sự trợ giúp của trình tạo hiểu. Tuy nhiên, bộ tạo năng suất là một cách tốt hơn đáng kể và có thể tái sử dụng để tạo phạm vi giá trị dấu phẩy động với sự trợ giúp của ba đối số float4, float5 và range()8

Đoạn mã sau sử dụng từ khóa suất để tạo và triển khai hàm tạo tạo ra một loạt các số dấu phẩy động trong Python

1

2

3

4

5

6

7

8

 

nhập thập phân

def float_range(sta, sto, stp):

  trong khi sta < sto:

    lợi nhuận thả nổi(sta)

    sta += thập phân. Số thập phân(stp)

in(danh sách(float_range(0, 1, '0.1')))

 

Đoạn mã trên cung cấp đầu ra sau

[0. 0, 0. 1, 0. 2, 0. 3, 0. 4, 0. 5, 0. 6, 0. 7, 0. 8, 0. 9]

Sử dụng hàm do người dùng định nghĩa

Thay vì nhập các mô-đun khác nhau và sử dụng một số hàm từ chúng, chúng ta chỉ cần nghĩ về logic và tạo một hàm do người dùng xác định để thực hiện tác vụ đã cho

Đoạn mã sau tạo một hàm do người dùng định nghĩa và sử dụng nó để tạo một dải số dấu phẩy động trong Python

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

 

def fl_range(A, L=None, D=None):

    nếu L == Không:

        L = A + 0.0

        A = 0. 0

    nếu D == Không:

        Đ = 1. 0

    while Đúng.

        nếu Đ > 0 and A >= L:

            nghỉ

        elif D < 0 and A <= L:

            nghỉ

        hiệu suất ("%g" % A)

        A = A + D

in ("\nIn")

in ("\nKiểm tra. ", kết thúc = " ")

for x in fl_range(0.1, 1. 0, 0. 1).

    in (x, end=", ")

in(fl_range(0. 1, 1. 0, 0. 1))

 

Đoạn mã trên cung cấp đầu ra sau

in ấn
Bài kiểm tra. 0. 1, 0. 2, 0. 3, 0. 4, 0. 5, 0. 6, 0. 7, 0. 8, 0. 9, 1

Sử dụng mô-đun itertools và các chức năng của nó

Mô-đun itertools là một mô hình tích hợp thường được sử dụng trong thế giới lập trình Python và nó chứa một số chức năng cho phép chúng ta làm việc trên các trình vòng lặp để tạo các trình vòng lặp phức tạp

Để thực hiện nhiệm vụ tạo ra một chuỗi các số dấu phẩy động, chúng tôi sẽ sử dụng phương pháp range()5 từ kho phương pháp được cung cấp bởi mô-đun itertools

Đoạn mã sau sử dụng phương thức range()5 từ mô-đun itertools để tạo một dải số dấu phẩy động trong Python

1

2

3

4

5

6

7

8

9

10

11

 

từ itertools nhập islice, count

def irange(bắt đầu, stop, step):

    nếu bước == 0:

        tăng Lỗi Giá trị("Bước không được NULL)

    độ dài = int(abs(stop - start) / step)

    return islice(count(start, step), length)

cho x in irange(0, 1, 0.1).

    in ("{0. 1f}". định dạng(x), end = " ")

in(irange(0, 1, 0.1))

 

Đoạn mã trên cung cấp đầu ra sau

0. 0 0. 1 0. 2 0. 3 0. 4 0. 5 0. 6 0. 7 0. 8 0. 9

Sử dụng hàm map() cùng với một TypeError0

Hàm map() được cung cấp bởi Python và nó có thể được sử dụng để tìm kiếm một hàm được chỉ định cụ thể cho tất cả các phần tử hiện có trong bất kỳ lần lặp cụ thể nào. Nó tạo ra kết quả như chính iterator

Hàm lambda có thể được định nghĩa đơn giản là một hàm ẩn danh nhỏ gọn có khả năng nhận bất kỳ số lượng đối số nào trong khi chỉ bao gồm một biểu thức duy nhất

Đoạn mã sau sử dụng hàm map() cùng với TypeError0 để tạo một dải số dấu phẩy động trong Python

1

2

3

4

5

6

 

in(danh sách(bản đồ(lambda val: val / 10. 0, phạm vi(1, 10, 1))))

RL = danh sách(bản đồ(lambda val: val / 10. 0, phạm vi(1, 10, 1)))

cho x in RL.

    in(x,end=",")

 

Đoạn mã trên cung cấp đầu ra sau

[0. 1, 0. 2, 0. 3, 0. 4, 0. 5, 0. 6, 0. 7, 0. 8, 0. 9]

Sử dụng hàm float1

Hàm float1 là một hàm dựng sẵn trong Python được sử dụng để làm tròn số đã cho làm đối số cho một số có dấu phẩy động

Số lượng số thập phân cũng có thể được chỉ định bằng phương pháp này, với giá trị mặc định là range()0

Do đó, hàm float1 có hai đối số và cú pháp của nó trông như thế này

1

2

3

 

vòng(số, chữ số)

 

Tiếp tục, bây giờ chúng ta hãy xem cách chúng ta có thể sử dụng chức năng này để tạo một loạt các số dấu phẩy động trong Python

Bạn có thể sử dụng float trong phạm vi Python không?

Dải Python() chỉ hoạt động với số nguyên. Nó không hỗ trợ kiểu float , tôi. e. , chúng ta không thể sử dụng giá trị dấu phẩy động/thập phân trong bất kỳ đối số nào của nó. Ví dụ: Nếu bạn sử dụng phạm vi () với đối số bước float, bạn sẽ nhận được TypeError 'đối tượng 'float' không thể được hiểu là số nguyên.

Phạm vi của số float trong Python là gì?

Ví dụ: 97. 98, 32. 3+e18, -32. 54e100 tất cả đều là số dấu chấm động. Các giá trị float của Python được biểu diễn dưới dạng các giá trị có độ chính xác kép 64 bit. Giá trị lớn nhất mà bất kỳ số dấu phẩy động nào cũng có thể đạt được là khoảng 1. 8 x 10 308.

Phạm vi của float 32 trong Python là gì?

Số dấu phẩy động 32 bit có độ chính xác thấp hơn số 64 bit. Cũng có giới hạn về mức độ lớn hoặc nhỏ của số dấu phẩy động mà bạn có thể biểu thị. Đối với biểu diễn 32 bit, phạm vi là (+/-) 3. 4E38 và đối với biểu diễn 64 bit, phạm vi là (+/-) 1. 8E308.

phạm vi cho float là gì?

Vì bit bậc cao của phần định trị luôn là 1 nên nó không được lưu trong số. Đại diện này cung cấp một phạm vi xấp xỉ 3. 4E-38 đến 3. 4E+38 cho loại float.