2014-02-07 78 views
2

我是新的,並試圖在我的手在python上。 我用python編寫了一個程序,當我執行的時候出現錯誤。誰能幫幫我嗎?TypeError:range()整數結束參數期望,得到str在Python中

計劃:

first = raw_input("Enter the first no:") 
second = raw_input("Enter Second no:") 
if first <= 0: 
     print "Enter a valid number" 
if second <= first: 
     print "Sencond number should be greater than first" 
for x in range(first,second): 
     for i in range(2, i): 
       if x % i == 0: 
         j = x/i 
         print x, " is not a prime no" 
         print "%d = %d*%d" % (x, i, j) 
         break; 
       else: 
         print x, " is not a prime number" 

輸入和錯誤:

Enter the first no:1 
Enter Second no:9 
Traceback (most recent call last): 
    File "today1.py", line 7, in <module> 
    for x in range(first,second): 
TypeError: range() integer end argument expected, got str. 

預先感謝您。

+0

好吧,從標準輸入您得到字符串,而不是數字。你必須轉換它們。 (想到'int()') – Ronald

回答

5

raw_input()返回一個字符串。

試試這個代碼:

first = int(raw_input("Enter the first no:")) 
    second = int(raw_input("Enter Second no:")) 

而且你肯定,那for i in range(2, i):不應該for i in range(2, x):

+0

感謝Max,它工作。是的,那將是x,而不是我。乾杯。 :) –

+0

如果您的答案被接受,如果它有幫助,這將是非常好的。 :) – Max

+0

嘿馬克斯......我沒有那麼多的聲望喜歡一個職位。所以,我希望你明白。我非常感謝。 –

相關問題