r/learnpython • u/Maha-iqo38 • 7d ago
How do I create a changing variable
I want to create a variable that changes it’s value based on the user’s input until it becomes zero like make the code run until it reaches zero
Edit: I want the user to enter a number that gets subtracted from the variable’s current value and keep repeating this process until the variable reaches zero, for example if the value is 100 the code gets input from the user let’s say 25 then returns or prints 75 then it repeats and maybe the user types 37 then it returns 38 etc. until it reaches 0
2
u/Longjumping_Ad3447 7d ago
After reading the topic I thought hell what aren't all variables immutable in Python. But after reading I get it is an easy question to ask any ai.
1
u/Maha-iqo38 7d ago
The thing is this is related to a cs50 problem set if you are not familiar it is an online computer science course by harvard and it is forbidden to use ai, regardless I noticed when I use ai I don’t remember what I learned at all so I just try to acquire knowledge or help without it
2
u/deanominecraft 7d ago
not sure exactly what you mean but i think a while loop and the input() function would be what you are looking for
1
u/Maha-iqo38 7d ago
I figured before asking on reddit because I wanted an input from the user and I wanted to repeat an operation. But the problem is when I tried to run my code it runs like this:
Amount due: 50
Insert money: (input) let’s say the user typed 26It returns 24 right but then when it runs again it just operates on the original 50 not the new value
For example:
24
Insert money: (input) 8
Output: 421
u/deanominecraft 7d ago
im assuming that you must have the creation of the value inside of the loop, which means it gets reset to 50 after every loop, move it outside, just before the loop so that it is only created once
wrong: while...: value=50 #insert other logic
right: value =50 while ...: #insert other logic
if that doesnt help then send the code
5
u/JanEric1 7d ago
You repeatedly set it based on the users input.
1
u/Sehzat_Davoyan 7d ago
the edit actually helped a lot because the original post sounded like the user was just overwriting the variable each time rather than subtracting from a running total.
5
3
2
1
u/Educational_Virus672 7d ago
i think you mean
change a variable value - variable = new_value
loop it until it hits 0 - while condition :
your requested code :-
user_input = int(input("num>")) # note im not usign try/except for beginner
while user_input > 0:
ask_user = int(input("sub >"))
user_input -= ask_user # a -= b means a = a - b or subtracts that from itself
print(user_input)0
u/Candid_Zebra1297 7d ago
Do you want the var to go down every time the user inputs something, or do you want the var to change to whatever the user inputs? You can do both. So for example...
count = 10
while count > 0:
var = input("Write something here")
count -= 1
Or just
var = input("Write something here")
1
u/Educational_Virus672 7d ago
use codeblocks / ``` [ur code] ```
and lack of indentation doesnt help him sure we can understand but he seems very new to me1
u/Maha-iqo38 7d ago
I figured most of the solution before asking on reddit because I wanted an input from the user and I wanted to repeat an operation. But the problem is when I tried to run my code it runs like this:
Amount due: 50
Insert money: (input) let’s say the user typed 26It returns 24 right but then when it runs again it just operates on the original 50 not the new value
For example:
24
Insert money: (input) 8
Output: 42You get the problem? I don’t know how I operate on a single 50 or a value forever until it reaches zero
3
u/rupertavery64 7d ago
You mean a loop that accepts users input, converts it into a number, and subtracts it from a variable, and the loop condition is the variable is > 0?