Why does Python give recursion error for using a method that belongs to an external package





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







1















I'm trying to build functions that calculate the mean, median and mode of a given list. For mode only, I'm using from statistics import mode (everything else is manual) but when it comes to outputting the result, only the line of code using the mode() method gives me a recursion error.



This is my code:



import pandas as pd
from statistics import mode

dataFrame = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/forest-fires/forestfires.csv")

area = dataFrame['area'].tolist()
rain = dataFrame['rain'].tolist()

months = dataFrame['month'] = dataFrame['month'].map({'jan': 1, 'feb': 2, 'mar': 3, 'apr': 4, 'may': 5, 'jun': 6, 'jul': 7, 'aug': 8, 'sep': 9, 'oct': 10, 'nov': 11, 'dec': 12}).tolist()

def mean(numbers):
meanOfNumbers = (sum(numbers))/(len(numbers))
return meanOfNumbers

def median(numbers):
if(len(numbers) % 2 == 0):
medianOfNumbers = (numbers[int((len(numbers))/2)] + numbers[int((len(numbers))/2-1)])/2
else:
medianOfNumbers = numbers[int((len(numbers)-1)/2)]
return medianOfNumbers

def mode(numbers):
modeOfNumbers = int(mode(numbers))
return modeOfNumbers

print("The mean of the months is: " + str("%.2f" % round(mean(months))))
print("The median of the months is: " + str("%.2f" % round(median(months))))
print("The mode of the months is: " + str(mode(months)))


And this is the error:



The mean of the months is: 7.00
The median of the months is: 8.00
---------------------------------------------------------------------------
RecursionError Traceback (most recent call last)
<ipython-input-29-ad10a2f4e71b> in <module>()
33 print("The mean of the months is: " + str("%.2f" % round(mean(months))))
34 print("The median of the months is: " + str("%.2f" % round(median(months))))
---> 35 print("The mode of the months is: " + str(mode(months)))
36
37

<ipython-input-29-ad10a2f4e71b> in mode(numbers)
28
29 def mode(numbers):
---> 30 modeOfNumbers = int(mode(numbers))
31 return modeOfNumbers
32

... last 1 frames repeated, from the frame below ...

<ipython-input-29-ad10a2f4e71b> in mode(numbers)
28
29 def mode(numbers):
---> 30 modeOfNumbers = int(mode(numbers))
31 return modeOfNumbers
32

RecursionError: maximum recursion depth exceeded









share|improve this question























  • You have no exit condition in mode()

    – Kuba
    Jan 3 at 9:00











  • What do you mean?

    – user10851318
    Jan 3 at 9:02











  • Inside your mode, you're trying to call statistics.mode, but when you write mode(numbers) it means the function you have defined called mode. So it's an infinite recursion.

    – khelwood
    Jan 3 at 9:02













  • THank you.......

    – user10851318
    Jan 3 at 9:05


















1















I'm trying to build functions that calculate the mean, median and mode of a given list. For mode only, I'm using from statistics import mode (everything else is manual) but when it comes to outputting the result, only the line of code using the mode() method gives me a recursion error.



This is my code:



import pandas as pd
from statistics import mode

dataFrame = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/forest-fires/forestfires.csv")

area = dataFrame['area'].tolist()
rain = dataFrame['rain'].tolist()

months = dataFrame['month'] = dataFrame['month'].map({'jan': 1, 'feb': 2, 'mar': 3, 'apr': 4, 'may': 5, 'jun': 6, 'jul': 7, 'aug': 8, 'sep': 9, 'oct': 10, 'nov': 11, 'dec': 12}).tolist()

def mean(numbers):
meanOfNumbers = (sum(numbers))/(len(numbers))
return meanOfNumbers

def median(numbers):
if(len(numbers) % 2 == 0):
medianOfNumbers = (numbers[int((len(numbers))/2)] + numbers[int((len(numbers))/2-1)])/2
else:
medianOfNumbers = numbers[int((len(numbers)-1)/2)]
return medianOfNumbers

def mode(numbers):
modeOfNumbers = int(mode(numbers))
return modeOfNumbers

print("The mean of the months is: " + str("%.2f" % round(mean(months))))
print("The median of the months is: " + str("%.2f" % round(median(months))))
print("The mode of the months is: " + str(mode(months)))


And this is the error:



The mean of the months is: 7.00
The median of the months is: 8.00
---------------------------------------------------------------------------
RecursionError Traceback (most recent call last)
<ipython-input-29-ad10a2f4e71b> in <module>()
33 print("The mean of the months is: " + str("%.2f" % round(mean(months))))
34 print("The median of the months is: " + str("%.2f" % round(median(months))))
---> 35 print("The mode of the months is: " + str(mode(months)))
36
37

<ipython-input-29-ad10a2f4e71b> in mode(numbers)
28
29 def mode(numbers):
---> 30 modeOfNumbers = int(mode(numbers))
31 return modeOfNumbers
32

... last 1 frames repeated, from the frame below ...

<ipython-input-29-ad10a2f4e71b> in mode(numbers)
28
29 def mode(numbers):
---> 30 modeOfNumbers = int(mode(numbers))
31 return modeOfNumbers
32

RecursionError: maximum recursion depth exceeded









share|improve this question























  • You have no exit condition in mode()

    – Kuba
    Jan 3 at 9:00











  • What do you mean?

    – user10851318
    Jan 3 at 9:02











  • Inside your mode, you're trying to call statistics.mode, but when you write mode(numbers) it means the function you have defined called mode. So it's an infinite recursion.

    – khelwood
    Jan 3 at 9:02













  • THank you.......

    – user10851318
    Jan 3 at 9:05














1












1








1








I'm trying to build functions that calculate the mean, median and mode of a given list. For mode only, I'm using from statistics import mode (everything else is manual) but when it comes to outputting the result, only the line of code using the mode() method gives me a recursion error.



This is my code:



import pandas as pd
from statistics import mode

dataFrame = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/forest-fires/forestfires.csv")

area = dataFrame['area'].tolist()
rain = dataFrame['rain'].tolist()

months = dataFrame['month'] = dataFrame['month'].map({'jan': 1, 'feb': 2, 'mar': 3, 'apr': 4, 'may': 5, 'jun': 6, 'jul': 7, 'aug': 8, 'sep': 9, 'oct': 10, 'nov': 11, 'dec': 12}).tolist()

def mean(numbers):
meanOfNumbers = (sum(numbers))/(len(numbers))
return meanOfNumbers

def median(numbers):
if(len(numbers) % 2 == 0):
medianOfNumbers = (numbers[int((len(numbers))/2)] + numbers[int((len(numbers))/2-1)])/2
else:
medianOfNumbers = numbers[int((len(numbers)-1)/2)]
return medianOfNumbers

def mode(numbers):
modeOfNumbers = int(mode(numbers))
return modeOfNumbers

print("The mean of the months is: " + str("%.2f" % round(mean(months))))
print("The median of the months is: " + str("%.2f" % round(median(months))))
print("The mode of the months is: " + str(mode(months)))


And this is the error:



The mean of the months is: 7.00
The median of the months is: 8.00
---------------------------------------------------------------------------
RecursionError Traceback (most recent call last)
<ipython-input-29-ad10a2f4e71b> in <module>()
33 print("The mean of the months is: " + str("%.2f" % round(mean(months))))
34 print("The median of the months is: " + str("%.2f" % round(median(months))))
---> 35 print("The mode of the months is: " + str(mode(months)))
36
37

<ipython-input-29-ad10a2f4e71b> in mode(numbers)
28
29 def mode(numbers):
---> 30 modeOfNumbers = int(mode(numbers))
31 return modeOfNumbers
32

... last 1 frames repeated, from the frame below ...

<ipython-input-29-ad10a2f4e71b> in mode(numbers)
28
29 def mode(numbers):
---> 30 modeOfNumbers = int(mode(numbers))
31 return modeOfNumbers
32

RecursionError: maximum recursion depth exceeded









share|improve this question














I'm trying to build functions that calculate the mean, median and mode of a given list. For mode only, I'm using from statistics import mode (everything else is manual) but when it comes to outputting the result, only the line of code using the mode() method gives me a recursion error.



This is my code:



import pandas as pd
from statistics import mode

dataFrame = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/forest-fires/forestfires.csv")

area = dataFrame['area'].tolist()
rain = dataFrame['rain'].tolist()

months = dataFrame['month'] = dataFrame['month'].map({'jan': 1, 'feb': 2, 'mar': 3, 'apr': 4, 'may': 5, 'jun': 6, 'jul': 7, 'aug': 8, 'sep': 9, 'oct': 10, 'nov': 11, 'dec': 12}).tolist()

def mean(numbers):
meanOfNumbers = (sum(numbers))/(len(numbers))
return meanOfNumbers

def median(numbers):
if(len(numbers) % 2 == 0):
medianOfNumbers = (numbers[int((len(numbers))/2)] + numbers[int((len(numbers))/2-1)])/2
else:
medianOfNumbers = numbers[int((len(numbers)-1)/2)]
return medianOfNumbers

def mode(numbers):
modeOfNumbers = int(mode(numbers))
return modeOfNumbers

print("The mean of the months is: " + str("%.2f" % round(mean(months))))
print("The median of the months is: " + str("%.2f" % round(median(months))))
print("The mode of the months is: " + str(mode(months)))


And this is the error:



The mean of the months is: 7.00
The median of the months is: 8.00
---------------------------------------------------------------------------
RecursionError Traceback (most recent call last)
<ipython-input-29-ad10a2f4e71b> in <module>()
33 print("The mean of the months is: " + str("%.2f" % round(mean(months))))
34 print("The median of the months is: " + str("%.2f" % round(median(months))))
---> 35 print("The mode of the months is: " + str(mode(months)))
36
37

<ipython-input-29-ad10a2f4e71b> in mode(numbers)
28
29 def mode(numbers):
---> 30 modeOfNumbers = int(mode(numbers))
31 return modeOfNumbers
32

... last 1 frames repeated, from the frame below ...

<ipython-input-29-ad10a2f4e71b> in mode(numbers)
28
29 def mode(numbers):
---> 30 modeOfNumbers = int(mode(numbers))
31 return modeOfNumbers
32

RecursionError: maximum recursion depth exceeded






python recursion statistics






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Jan 3 at 8:54







user10851318




















  • You have no exit condition in mode()

    – Kuba
    Jan 3 at 9:00











  • What do you mean?

    – user10851318
    Jan 3 at 9:02











  • Inside your mode, you're trying to call statistics.mode, but when you write mode(numbers) it means the function you have defined called mode. So it's an infinite recursion.

    – khelwood
    Jan 3 at 9:02













  • THank you.......

    – user10851318
    Jan 3 at 9:05



















  • You have no exit condition in mode()

    – Kuba
    Jan 3 at 9:00











  • What do you mean?

    – user10851318
    Jan 3 at 9:02











  • Inside your mode, you're trying to call statistics.mode, but when you write mode(numbers) it means the function you have defined called mode. So it's an infinite recursion.

    – khelwood
    Jan 3 at 9:02













  • THank you.......

    – user10851318
    Jan 3 at 9:05

















You have no exit condition in mode()

– Kuba
Jan 3 at 9:00





You have no exit condition in mode()

– Kuba
Jan 3 at 9:00













What do you mean?

– user10851318
Jan 3 at 9:02





What do you mean?

– user10851318
Jan 3 at 9:02













Inside your mode, you're trying to call statistics.mode, but when you write mode(numbers) it means the function you have defined called mode. So it's an infinite recursion.

– khelwood
Jan 3 at 9:02







Inside your mode, you're trying to call statistics.mode, but when you write mode(numbers) it means the function you have defined called mode. So it's an infinite recursion.

– khelwood
Jan 3 at 9:02















THank you.......

– user10851318
Jan 3 at 9:05





THank you.......

– user10851318
Jan 3 at 9:05












1 Answer
1






active

oldest

votes


















2














Inside your mode, you're trying to call statistics.mode, but when you write mode(numbers) it means the function you have defined called mode. So it's an infinite recursion.



If you must have a function called mode and also make use of statistics.mode, you can use its qualified name to distinguish which one you mean.



import statistics

...

def mode(numbers):
return int(statistics.mode(numbers))





share|improve this answer
























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54019010%2fwhy-does-python-give-recursion-error-for-using-a-method-that-belongs-to-an-exter%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown
























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    2














    Inside your mode, you're trying to call statistics.mode, but when you write mode(numbers) it means the function you have defined called mode. So it's an infinite recursion.



    If you must have a function called mode and also make use of statistics.mode, you can use its qualified name to distinguish which one you mean.



    import statistics

    ...

    def mode(numbers):
    return int(statistics.mode(numbers))





    share|improve this answer




























      2














      Inside your mode, you're trying to call statistics.mode, but when you write mode(numbers) it means the function you have defined called mode. So it's an infinite recursion.



      If you must have a function called mode and also make use of statistics.mode, you can use its qualified name to distinguish which one you mean.



      import statistics

      ...

      def mode(numbers):
      return int(statistics.mode(numbers))





      share|improve this answer


























        2












        2








        2







        Inside your mode, you're trying to call statistics.mode, but when you write mode(numbers) it means the function you have defined called mode. So it's an infinite recursion.



        If you must have a function called mode and also make use of statistics.mode, you can use its qualified name to distinguish which one you mean.



        import statistics

        ...

        def mode(numbers):
        return int(statistics.mode(numbers))





        share|improve this answer













        Inside your mode, you're trying to call statistics.mode, but when you write mode(numbers) it means the function you have defined called mode. So it's an infinite recursion.



        If you must have a function called mode and also make use of statistics.mode, you can use its qualified name to distinguish which one you mean.



        import statistics

        ...

        def mode(numbers):
        return int(statistics.mode(numbers))






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Jan 3 at 9:05









        khelwoodkhelwood

        32.3k74465




        32.3k74465
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54019010%2fwhy-does-python-give-recursion-error-for-using-a-method-that-belongs-to-an-exter%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            MongoDB - Not Authorized To Execute Command

            How to fix TextFormField cause rebuild widget in Flutter

            Npm cannot find a required file even through it is in the searched directory