Python Forum
What's the meaning of this coding?
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
What's the meaning of this coding?
#1
What's the meaning of this code? Could someone please explain this to me? Thanks! Huh

temp = input('Please enter a number:')
number = int(temp)
i = 1
while number:
    print(i)
    i = i + 1
    number = number - 1
I could write the first two lines but the later on of i = i +1 & number = number -1
What's the relationship between the number and i?
Reply
#2
i keeps count of the number of iterations,
while number is one less after each iteration.

this could also be written as:
number = int(input('Please enter a number: '))
i = 1
while number:
    print(i)
    i += 1
    number -= 1
Output:
>>> number = int(input('Please enter a number: ')) Please enter a number: 5 >>> i = 1 >>> while number: ... print(i) ... i += 1 ... number -= 1 ... 1 2 3 4 5 >>>
Reply
#3
But why this output will stop at five? Ah, is it due to that after 5 times of iteration, the number will become 0 and it means False in the bool so the iteration stops? Does that mean right?
Reply
#4
(Feb-01-2018, 06:41 PM)xin2408 Wrote: Ah, is it due to that after 5 times of iteration, the number will become 0 and it means False in the bool so the iteration stops? Does that mean right?
yes, that is correct. when number becomes 0 it is evaluated as False and it will exit the while loop. That is also correct for empty list, empty dict, empty str, etc.
Reply
#5
Usually, you want to use a for loop for this kind of task:

for i in reversed(range(1, number)):
  print(i)
Reply
#6
Or you can do it direct with the range function.

list(range(10, 0, -1))
Means: count from 10 till exclusive 0. Each step counts -1.
Almost dead, but too lazy to die: https://sourceserver.info
All humans together. We don't need politicians!
Reply
#7
(Feb-02-2018, 01:07 PM)Kebap Wrote: Usually, you want to use a for loop for this kind of task:
for i in reversed(range(1, number)): print(i)

However, this way the number u enter could not be printed right?:-D
Reply
#8
You can fiddle with the parameters to the range() function to set the start and end boundaries. There is even an optional third parameter, but I'll leave that for you to figure out
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Syntax meaning SUHIN 1 2,001 Sep-22-2018, 08:08 AM
Last Post: Gribouillis

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020