FAQ
I'm trying to write a simple program to calculate permutations. I created a file called "mod.py" and put the following in it:

def factorial(n):
a = n
b = n
while a>0 and b>1:
n = (n)*(b-1)
b = b-1

def perm(n, r):
a = factorial(n)
b = factorial(n-r)
q = a / b
print q

Then I went back to IDLE and input the following:
import mod
mod.perm(5, 4)
I recieved the following error message:

Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
mod.perm(5, 4)
File "C:\Python25\mod.py", line 27, in perm
q = a / b
TypeError: unsupported operand type(s) for /: 'NoneType' and 'NoneType'

I have no idea how to fix it. I'm pretty new to Python. I have IDLE 1.2.2 and Python 2.5.2,

## Search Discussions

• at May 2, 2008 at 1:17 am ⇧ On May 1, 5:21?pm, "Jordan Harry" wrote:
I'm trying to write a simple program to calculate permutations. ?I created a file called "mod.py" and put the following in it:

def factorial(n):
? ? a = n
? ? b = n
? ? while a>0 and b>1:
? ? ? ? n = (n)*(b-1)
? ? ? ? b = b-1

def perm(n, r):
? ? a = factorial(n)
? ? b = factorial(n-r)
? ? q = a / b
? ? print q

Then I went back to IDLE and input the following:
import mod
mod.perm(5, 4)
I recieved the following error message:

Traceback (most recent call last):
? File "<pyshell#1>", line 1, in <module>
? ? mod.perm(5, 4)
? File "C:\Python25\mod.py", line 27, in perm
? ? q = a / b
TypeError: unsupported operand type(s) for /: 'NoneType' and 'NoneType'

I have no idea how to fix it. ?I'm pretty new to Python. ?I have IDLE 1.2.2 and Python 2.5.2,

Your factorial function needs to return something.

~Sean
• at May 2, 2008 at 1:31 am ⇧ "Jordan Harry" <jharry at EmeryWeiner.org> writes:

I'm trying to write a simple program to calculate permutations. I
created a file called "mod.py" and put the following in it:

def factorial(n):
a = n
b = n
while a>0 and b>1:
n = (n)*(b-1)
b = b-1
A function that does some calculations internally, but has no 'return'
statement and thus implicitly returns 'None'.
def perm(n, r):
a = factorial(n)
b = factorial(n-r)
These statements bind the 'None' returned by the 'factorial' function
to the names 'a' and 'b'.
q = a / b
This attempts to use the '/' operator on 'None' with 'None', which
raises the exception you saw.

(good sigmonster, have a cookie)

--
\ "Pinky, are you pondering what I'm pondering?" "I think so, |
`\ Brain, but Zero Mostel times anything will still give you Zero |
_o__) Mostel." -- _Pinky and The Brain_ |
Ben Finney

## Related Discussions

 view thread | post
Discussion Overview
 group python-list categories python posted May 2, '08 at 12:21a active May 2, '08 at 1:31a posts 3 users 3 website python.org

### 3 users in discussion

Content

People

Support

Translate

site design / logo © 2022 Grokbase