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 Show
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 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 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ừ Phạm vi Python nổi. Làm cách nào để tạo số dấu phẩy động trong Python?
Sử dụng phương pháp numpy.linspace()Phương thức 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ố Phương thức này có trong thư viện Đoạn mã sau sử dụng phương thức 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ố Sử dụng phương pháp numpy.arange()Phương thức Theo mặc định, Phương thức này có trong thư viện Đoạn mã sau sử dụng phương thức 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áchHiể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 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 Đ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ệnKhả 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 Đ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ấtMộ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ố Đ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ĩaThay 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 Sử dụng mô-đun itertools và các chức năng của nóMô-đun Để 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 Đoạn mã sau sử dụng phương thức 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 TypeError0Hàm 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 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 float1Hàm 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à Do đó, hàm 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. |