6

Possible Duplicate:
Python decimal range() step value

I have a cycle in C:

for (float i = 0; i < 2 * CONST; i += 0.01) { // ... do something } 

I need the same cycle in python, but:

for x in xxx 

not the same.

How can i make it in python?

0

4 Answers 4

5

You are almost on the line. This is how you do it on a list: -

your_list = [1, 2, 3] for eachItem in your_list: print eachItem 

If you want to iterate over a certain range: -

for i in xrange(10): print i 

To give a step value you can use a third parameter, so in your case it would be: -

for i in xrange(2 * CONST, 1): print i 

But you can only give an integer value as step value.

If you want to use float increment, you would have to modify your range a little bit:-

for i in xrange(200 * CONST): print i / 100.0 
Sign up to request clarification or add additional context in comments.

4 Comments

I suggest range in favor of xrange because range actually creates an array wasting space
Thx, you gave me a point how to do that.
@MrSil. You're welcome :) You should take the update code. I mistakenly wrote incorrect range in the last code. Corrected now. :)
@Rohit Jain already solved my problem, thx.
5
for i in xrange(200*CONST): i = i/100.0 

Comments

4

Write your own range generator. This helps you deal with non-integer step values with ease, all across your program, solving multiple issues of the same kind. It also is more readable.

def my_range(start, end, step): while start <= end: yield start start += step for x in my_range(1, 2 * CONST, 0.01): #do something 

For-loop reference

3 Comments

This looks the most correct; both range and xrange work on integers and a custom range-like generator allows to work around that. See also stackoverflow.com/questions/477486/…
Adding lots of floats together is a recipe for inaccuracy. Following link shows a better way to create a float range: code.activestate.com/recipes/66472
Yes, that way's nice, and it's easy to turn that function into a generator too.
3

numpy has a method that can be used to create a range of floats.

from numpy import arange for x in arange(0, 2*CONST, 0.01): do_something(x) 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.