There was no problem until I tried to make an input go through validity check and if invalid ask again for input
i’m counting on you for ideas thanks in advance 🙂
a=0
def reinp(a,b):
while True:
if a in [1,2,3,4,5,6]: #checking for valid input
return int(a)
break
a=input(b)
else:
return print("error")
tried, not working either
def reinp(a,b):
for c in [1,2,3,4,5,6]:
if int(c)==int(a):
return int(a)
break
else:
a=input(b)
a=reinp(a,'Test: ')
This one is the first to make a problem
def reinp2(a,b): #trying to check if it's a number and can be turned to float if not ask again
while check(a):
a=input(b)
return float(a)
def check(a):
try:
float(a)
return False
except ValueError:
return True
Right now the problem is after the check it never breaks free from any while loop
i tried in place of while True:if...break,
while correct:
if... correct=False
didn’t work
and it just asks again and again even a condition is met…
there is no raw_input in python 3.2 so i can’t use that either
reinp2() is there so if there a solution found for reinp() the same could apply for reinp2() as well a and b are just variables ans[n]=reinp2(ans[n],"Input n: ") the same with reinp() just for another type of variable (one that can be float as well)
The code as it is now show no syntax errors
P.S. i’m using Python 3.2
[EDIT: Deleted original answer, since no longer relevant with fixed formatting on question]
The problem with
reinpis thatawill be a string, and you’re checking it against integers.…so change:
to:
If you still have a problem with
reinp2, perhaps you can show some code that demonstrates the issue. It looks fine to me.