Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mencipta Julat dengan Langkah Bukan Integer dalam Python?

Bagaimana untuk Mencipta Julat dengan Langkah Bukan Integer dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-11 15:35:11611semak imbas

How to Create a Range with a Non-Integer Step in Python?

Cara Lelaran melalui Julat Bukan Integer

Apabila cuba mencipta julat dengan nilai langkah perpuluhan menggunakan julat(), anda mungkin menghadapi ralat yang menyatakan bahawa argumen langkah tidak boleh menjadi sifar. Ini timbul kerana julat() menjangkakan nilai integer untuk parameter mula, henti dan langkah.

Penyelesaian Menggunakan linspace NumPy

Untuk memintas isu ini dan mencipta julat dengan nilai langkah bukan integer, pertimbangkan untuk menggunakan fungsi linspace NumPy. linspace mengambil bilangan mata untuk dikembalikan dan membolehkan anda menentukan sama ada untuk memasukkan titik akhir yang betul atau tidak. Contohnya:

import numpy as np

# Create a range from 0 to 1 with 11 equally spaced points (including 1)
points = np.linspace(0, 1, 11)

# Create a range from 0 to 1 with 10 equally spaced points (excluding 1)
points_excl = np.linspace(0, 1, 10, endpoint=False)

Penyelesaian Menggunakan arange NumPy

Semasa menggunakan nilai langkah titik terapung secara amnya tidak disyorkan kerana kemungkinan ralat pembundaran, NumPy menyediakan arange fungsi yang direka khusus untuk tujuan ini. Walau bagaimanapun, maklum bahawa ralat pembundaran masih boleh timbul:

import numpy as np

# Create a range from 0.0 to 1.0 with a step value of 0.1
points = np.arange(0.0, 1.0, 0.1)

# Example of a potential rounding error using arange
points = np.arange(1, 1.3, 0.1)  # Expected length: 3, Actual length: 4

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Julat dengan Langkah Bukan Integer dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn