2014-02-07 3 views
2

Я новичок и пробовал свои руки на python. Я написал программу на python, и когда я выполняю, я получаю ошибки. Кто-нибудь может мне помочь, пожалуйста!ТипError: 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

ну, из stdin вы получаете строки, а не цифры. Вам придется их конвертировать. ('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

Спасибо Макс, он сработал. И да, это будет х, а не я. веселит. :) –

+0

Будет здорово, если вы отметите ответ как принятый, если он поможет. :) – Max

+0

Эй, Макс ... У меня нет такой репутации, как публика. Итак, я надеюсь, вы понимаете. Я очень благодарен. –

Смежные вопросы