Yagnesh Mistry
Yagnesh Mistry

Reputation: 1

Error in while loop

I am trying to learn python, I was trying write C/C++ code i used before in python, can anyone help me find whats wrong in this code....

#print 1st for 1 -> st or 2nd for 2 -> nd , etc

x = int(input('Enter a number :'))
temp = x
while temp>0:
    temp = temp % 10

if temp == 1:
    print (x, "st")
elif temp == 2:
    print (x, "nd")
elif temp == 3:
    print (x, "rd") 
else:
    print (x, "th")

and can you suggest few goods books to learn python, for now i was reading the documentation and its not for beginners...and i know C/C++

Upvotes: 0

Views: 112

Answers (2)

Ruofeng
Ruofeng

Reputation: 2350

Regarding good books to learn Python, I would recommend Head First Python. It is very easy to understand and make use of your knowledge in C/C++.

Upvotes: 0

Oleh Prypin
Oleh Prypin

Reputation: 34116

Let's see how this:

temp = x
while temp>0:
    temp = temp % 10

works, using an example (x=12345).

temp = 12345
12345>0
temp = 12345%10 = 5
5>0
temp = 5%10 = 5
5>0
temp = 5%10 = 5
...

So it's an endless loop!

To get the last digit (which is probably what you want) just do this:

temp = x%10

Upvotes: 7

Related Questions