Python 3.7 Bug
Bassam Abdul-Baki
babdulbaki at gmail.com
Mon Mar 25 08:14:25 EDT 2019
Greetings,
In the following code, there's a bug on certain parameters.
----------
def per(n, steps = 0):
digits = [int(i) for i in str(n)]
result = 1
for j in digits:
result *= j
steps += 1
print(steps, result, sep=" - ")
if result == 0:
print(result, str(result), len(str(result)), sep=" - ")
if len(str(result)) == 1:
print(" --- DONE ---")
return "DONE"
else:
per(result, steps)
----------
What the program does:
If I run per(X) and X is a multiple of 10, I should end up with 0 in a
finite amount of steps.
The problem:
If I run per(54), I do not get 'DONE' printed through the return
statement. WRONG!
If I run per(20), I do get 'DONE' printed through the return statement.
CORRECT!
20, 30, etc. are correct. 25, 45, etc. are not.
Is this a bug?
Thanks,
Bassam
More information about the Python-list
mailing list