2012-02-12 214 views
0

我努力学习Python, 我试图写C/C++代码我在Python之前使用,任何人都可以帮我找到什么是错在这段代码....错误while循环

#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") 

你可以建议一些商品的书籍学习Python,现在我正在读的文件和其不适合初学者...我知道的C/C++

+0

'print(3,“rd”)'outputs'3 rd'。使用例如'print(x,“rd”,sep ='')'来避免这个空间。 – 2012-02-12 16:04:01

回答

7

让我们来看看这个:

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

作品,使用一个例子(x=12345)。

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

所以这是一个无限循环!

要获得最后一个数字(这可能是你想要什么)只是这样做:

temp = x%10 
0

关于好书学习Python,我会建议Head First Python。在C/C++中理解和利用你的知识是非常容易的。