[Tutor] TypeError: generatePersonID() takes exactly 1 argument (0 given)

Alex Kleider akleider at sonic.net
Thu Nov 14 18:24:50 CET 2013


On 2013-11-14 07:54, Thabile Rampa wrote:
> Hi,
> 
> So I'm learning how to define my own functions, and in an exercise I
> was given, I get this error:
> 
> Traceback (most recent call last):
>   File "X:/X/xxx/Xxxxx/function_practice.py", line 36, in <module>
>      main ()
>   File "X:/X/xxx/Xxxxx/function_practice.py/function_practice.py
> [1]", line 34, in main
>     generatePersonID ()
> TypeError: generatePersonID() takes exactly 1 argument (0 given)
> 
> Here is the code:
> 
> def getUserInput():
>     """
>     Get input from the user, i.e fullname, grossSalary, costs.
>     Returns: fullName, grossSalary, costs
>     """
>     
>     grossSalary =None ;
>     costs =None
>     fullName=""
>    
>     while not fullName:
>        
>         fullName = raw_input ("First and Last Names: ")
> 
>     while not grossSalary:
>          #TODO
>         grossSalary = int (raw_input ("Annual Gross Salary: "))
> 
>     while not costs:
>                 #TODO
>         costs = int(raw_input ("Yearly costs: "))
> 
>     return fullName, grossSalary, costs
> 
> def generatePersonID (fullName):
>     """generates unique ID"""
>     global id
>     id = (fullName) + 1
>     personID = str (id) + fullName
>     return personID
> 
> def main ():
>      getUserInput ()
>     generatePersonID ()
>    
> main ()
> 
> raw_input ("Press the enter key to exit.")

You define 'generatePersonID' as a function that requires one parameter 
but you do not give it a parameter when you call it with in your 'main' 
function.  That's exactly what your error message is trying to tell you.



More information about the Tutor mailing list