پرسش

چگونه از مقدار گام اعشاری در تابع range استفاده کنم؟

How do I use a decimal step value for range?

می‌خوام از تابع range در پایتون استفاده کنم تا یک محدوده عددی ایجاد کنم که با گام‌های اعشاری (مثل 0.1) حرکت کنه. اما متوجه شدم که range فقط گام‌های صحیح رو قبول می‌کنه. چطور می‌تونم از مقادیر اعشاری به عنوان گام استفاده کنم؟

1403/06/06
پاسخ
رضا دولتی عاشق برنامه نویسی و هوش مصنوعی!
بیوگرافی رضا دولتی

توابع range در پایتون فقط با اعداد صحیح کار می‌کنن و نمی‌تونن گام‌های اعشاری رو مدیریت کنن. اما برای ایجاد یک محدوده با گام‌های اعشاری، می‌تونی از numpy.arange یا یک list comprehension استفاده کنی. در اینجا هر دو روش رو برات توضیح می‌دم:

  1. استفاده از numpy.arange:

این تابع در کتابخانه‌ی numpy موجوده و می‌تونه با گام‌های اعشاری کار کنه.

import numpy as np
result = np.arange(0, 1, 0.1)
print(result)

این کد یک آرایه numpy ایجاد می‌کنه که از 0 شروع می‌شه و تا 1 با گام‌های 0.1 ادامه پیدا می‌کنه.

  1. استفاده از list comprehension:

این روش نیازی به نصب کتابخانه‌های اضافی نداره و فقط از ویژگی‌های خود پایتون استفاده می‌کنه.

start = 0
stop = 1
step = 0.1
result = [x * step for x in range(int(start / step), int(stop / step))]
print(result)

در این روش، از یک list comprehension استفاده می‌کنیم که مقادیر رو با ضرب در step ایجاد می‌کنه.

این دو روش بهت کمک می‌کنه که محدوده‌ای با گام‌های اعشاری داشته باشی. اگر کتابخانه‌ی numpy رو نصب نکردی و نمی‌خوای ازش استفاده کنی، روش دوم بسیار کاربردیه و به خوبی کار می‌کنه.

پاسخ: 1403/06/06
آخرین آپدیت: 1403/08/12