while loop is not reading the variable
import numpy as np def RVs(): #s = 0 s = 1 f = 0 while s!=0: z = np.random.random() if z<=0.5: x = -1 else: x = 1 s = s + x f = f + 1 return(f) RVs()
The code is running smoothly if I put
s=1 but since the while loop is for
s!=0, if I start with
s=0 the loop is not even running. So, what should I do in this case when I have to run the code for
s=0. (Or more precisely, I need to while loop to read
s=0 is the second time.)
The other solution is great. Here's a different approach:
import numpy as np def RVs(): # s = 0 s = 1 f = 0 while True: # will always run the first time... z = np.random.random() if z <= 0.5: x = -1 else: x = 1 s = s + x f = f + 1 if s == 0: break # ... but stops when s becomes 0 return(f) RVs()
return(f) needs to be indented in your original code to be inside the
while loop is not reading the variable, The other solution is great. Here's a different approach: import numpy as np def RVs(): # s = 0 s = 1 f = 0 while True: # will always run the first The code I am running this in has a over 30 loops used throughout but there is only one location where this issue is occurring. Is it possible that the program is lagging and not reading the variable before it executes the while loop?
From what I can understand you are trying to emulate a do while loop, where the loop will run at least one time(and you want the starting value of s to be 0)
If this is the case you can run the loop infinitely and break from the loop if your condition is true. For example:
while True: #code here if (s != 0): break
this will run your loop no matter what at least once, and will run the loop again at the end until your condition passes
Typical errors with 'While' Loops, So we need to declare a variable loops outside the loop setting it to 0 like so: Could we not just use a while loop to repeat the logging process? After, reading your 22nd post about empty parametersi FINALLY understand..lolthanks so # Pipe command into while-read loop count= ls -1 | while read line; do count=$((count + 1)) done echo "Count = $count" In this case, $count is null outside the loop. The loop set up a separate variable named count and ignored the global variable named count. Note: Yes, there are better ways to count files in a directory.
Python does not have a do.... while() as in other languages. So just use a "first-time" operator.
import numpy as np def RVs(): s = 0 t = 1 # first time in loop f = 0 while s!=0 or t==1: t = 0 # not first time anymore z = np.random.random() if z<=0.5: x = -1 else: x = 1 s = s + x f = f + 1 return(f) RVs()
3.3. While Statements, A Python while loop behaves quite similarly to common English usage. The variable i is increased before it is printed, so the first number printed is 6. while NOT the termination condition lines.append(line) line = input('Next line: ') # !! reset value at There is an issue with reading in numbers with the input statement. Pipes create SubShells, so the while read is running on a different shell than your script, that makes your CNT variable never changes (only the one inside the pipe subshell). Group the last echo with the subshell while to fix it (there are many other way to fix it, this is one.
import numpy as np def RVs(): #s = 0 s = 1 f = 0 while s!=0 or f==0: #will always run it the first time z = np.random.random() if z<=0.5: x = -1 else: x = 1 s = s + x f = f + 1 return(f) RVs()
Modify global variable in while loop, i=1 while read x; do i=$(($i + 1)) echo $i done <<<$(find tmp -type f) echo $i. And here is the same A variable modified inside a while loop is not remembered. if you don't mind the while loop executing in a subshell (any variables you modify won't be visible in the parent after the done). share | improve this answer | follow | | | | edited Nov 2 '12 at 17:14
Bash: reading input within while read loop doesn't work, execution does not pause like it would had the read been outside the loop. Why is this? Is there a workaround for reading input within a while read loop? share. Do not forget to increase the variable used in the condition, otherwise the loop will never end! Comparing For and While If you have read the previous chapter, about the for loop, you will discover that a while loop is much the same as a for loop, with statement 1 and statement 3 omitted.
Bash while Loop, One of the most common usages of the while loop is to read a file, data stream, or variable line by line. Here is an A read-while loop is a variation of the above, Not yet anyway. Refer to the loop variable. Let's look to the left of the in keyword, and at that x.
BashFAQ/001, Don't try to use "for". Use a while loop and the read command. If that is not desired, the IFS variable may be cleared, as in the example above. ----- Post updated at 03:49 PM ----- Previous update was at 03:27 PM -----Is there any way that the value of the variable i be stored in a file or a variable that can be read by the while loop. I have tried writing to a file and it does not work.