Roman Formicola
Roman Formicola

Reputation: 95

Why do I get an error about 'unsupported operand types for /'?

This program is supposed to check whether an entered number is a prime number.

def checkPrime():
    primeASK = raw_input('''Please enter a prime number.''')
    print 'Your Number is %s.' %(primeASK)

    if primeASK.isdigit():
        primeASK = int(primeASK)
        number = 1

        while primeASK > number:
            print primeASK / number

            number += 1 


checkPrime()

Here is the error I keep receiving (obviously the program isn't complete)

Traceback (most recent call last):
  File "C:/Python27/Lib/idlelib/primeChecker.py", line 14, in <module>
    checkPrime()
  File "C:/Python27/Lib/idlelib/primeChecker.py", line 5, in checkPrime
    if primeASK.isdigit():
AttributeError: 'int' object has no attribute 'isdigit'

Upvotes: 0

Views: 61

Answers (2)

levi
levi

Reputation: 22697

You are trying to divide a string by an integer, so, you need to parse your input to int first.

def checkPrime():
    primeASK = raw_input('''Please enter a prime number.''')
    print 'Your Number is %s.' %(primeASK)

    if primeASK.isdigit():
        primeASK = int(primeASK)
        number = 1

Also, number + 1 it should be number += 1

Upvotes: 2

deadboy
deadboy

Reputation: 859

primeAsk is a String because that's what raw_input() returns. Your error is that you are dividing a String by an Integer.

Upvotes: 2

Related Questions