Nov-09-2018, 09:20 AM
(This post was last modified: Nov-09-2018, 09:27 AM by captwiggum.)
(Nov-09-2018, 12:33 AM)Larz60+ Wrote: show what you have tried
here'a a simple for loop that starts at 2 increments by 6 up to 38
Since it is zero based, terminator is one more (39)
>>> for x in range(2, 39, 6): ... print(x) ... 2 8 14 20 26 32 38 >>>
Hi,
All I can achieve are various versions of this. Thanks again
def displayDigits(number): for i in range(number): number = number // 10 print(number) displayDigits(26)
(Nov-09-2018, 02:44 AM)stullis Wrote: An obvious implementation of a for loop would limit the number of digits you could count. To prevent that, your iterable should be based upon the number passed in. That would ensure that you have enough iterations for effectively cover the number of digits of any number you could provide.
Instead of repeatedly doing floor division, you could use the values in a range as exponents. This way, each iteration increases the divisor by a magnitude of ten and you simultaneously have your "count" for the output:
for x in range(20): divisor = 10 ** x print(f"For {x}, the divisor is {divisor}.")Now, how could you use that idea in your function?
On a side note, a function should always have a return. The print() call should be replaced by a return and then you call the function like this:
print(displayDigits(26))
Thanks for your advice but I honestly don't know how to use what you have shown me. I am totally stuck here.