+ 2
float range
range(1.5, 10.5) does not work. So, how do I get all float values in the range(1.5, 10.5, 0.1)? any suggestions? abhinav Sω(ᗒ✧ᕙ☞Aᕗ✧ᗕ)ti Jan Markus Tibor Santa ▬▬▬ Rik Wittkopp Calvin T
12 Réponses
+ 9
Harsha S
Python range can only generate a set of integer numbers from a given band. Neither does it allow a float type parameter nor it can produce a float range of numbers.
You can use arange function from NumPy library
https://www.techbeamers.com/python-float-range/
+ 7
Harsha S
You can't get float value of a range because a range creates a number of iterations.
How can you get half an iteration?
You could assign a float to your code with each iteration
IE:
lst = []
for i in range(5):
lst.append(float(input())
+ 5
For numbers with only one dezimal, create a range from 15 to 105 by step 1. Then divide every number by 10.
+ 3
Harsha S we are programmers
def frange(a, b, c):
while a < b:
yield a
a += c
for i in frange(0.1, 10.5, 0.1):
print(i)
+ 2
♤♢☞ 𝐊𝐢𝐢𝐛𝐨 𝐆𝐡𝐚𝐲𝐚𝐥 ☜♢♤
Nice!
+ 1
Thank you all
+ 1
Rik Wittkopp what is half an iteration?
range(a, b, c) simply means (a, a+b, a+2b, ... upto a+nb < c ). It is a limitation of the range function that it supports only integer values and I believe it's due to floating point approximation.
+ 1
abhinav superb 👏 👏
+ 1
abhinav
a small change:
def frange(a,b,c):
while a<b:
yield float("%.1f"%a)
a += c
print(list(frange(1.5, 10.5, 0.1)))
- 4
Hello