Python Forum
subprogram issues: cannot unpack non-iterable function object error
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
subprogram issues: cannot unpack non-iterable function object error
#10
yes, they are defined in the function signature as parameters you expect. However, they are not used in the body of the said function (or at least what you have show us):
correct = 0 
    attempts = 0
    while correct < 4:
        answer1 = False
        while answer1 == False:
            if guess1 == c1: # if answer is correct
                print("Colour in position 1 correct") # print this message 
                correct = correct + 1 # adds 1 to correct total
                attempts = attempts + 1 # adds 1 to attempts total
                answer1 = True # closes while loop
            elif guess1 == c2 or guess1 == c3 or guess1 == c4: # if answer is correct but in wrong place
                print("Colour correct but in wrong place position 1") # prints this message
                attempts = attempts + 1 # adds 1 to attempts total
                guess1 = input("Please enter your choice for the 1st colour: ") # asks user for another guess
            else: # if answer is wrong
                print("Wrong colour chosen") # print this message 
                attempts = attempts + 1 # adds 1 to attempts total
                guess1 = input("Please enter your choice for the 1st colour: ") # asks user for another guess
        answer2 = False # code repeats this process for the other 3 answers 
        while answer2 == False:
            if guess2 == c2:
                print("Colour in position 2 correct")
                correct = correct + 1
                attempts = attempts + 1
                answer2 = True
            elif guess2 == c1 or guess1 == c3 or guess1 == c4:
                print("Colour correct but in wrong place position 2")
                attempts = attempts + 1
                guess2 = input("Please enter your choice for the 2nd colour: ")
            else:
                print("Wrong colour chosen")
                attempts = attempts + 1
                guess2 = input("Please enter your choice for the 2nd colour: ")
        answer3 = False
        while answer3 == False:
            if guess3 == c3:
                print("Colour in position 3 correct")
                correct = correct + 1
                attempts = attempts + 1
                answer3 = True
            elif guess3 == c1 or guess1 == c2 or guess1 == c4:
                print("Colour correct but in wrong place position 3")
                attempts = attempts + 1
                guess3 = input("Please enter your choice for the 3rd colour: ")
            else:
                print("Wrong colour chosen")
                attempts = attempts + 1
                guess3 = input("Please enter your choice for the 3rd colour: ")
        answer4 = False
        while answer4 == False:
            if guess4 == c4:
                print("Colour in position 2 correct")
                correct = correct + 1
                attempts = attempts + 1
                answer4 = True
            elif guess4 == c1 or guess1 == c2 or guess1 == c3:
                print("Colour correct but in wrong place position 4")
                attempts = attempts + 1
                guess2 = input("Please enter your choice for the 4th colour: ")
            else:
                print("Wrong colour chosen")
                attempts = attempts + 1
                guess4 = input("Please enter your choice for the 4th colour: ")
    print("Well done! You got all the colours right") # prints this message when all colours are correct 
    print("The number of guesses taken was: ", attempts) # tells them how many guesses they took 
    data2 = (correct,attempts) # stores these variables as data2 
    return data2 # returns data2 for use in other subprograms 
so, you take 2 arguments and just discard them.
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs

Reply


Messages In This Thread
RE: subprogram issues: cannot unpack non-iterable function object error - by buran - Aug-20-2020, 12:07 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Too much values to unpack actualpy 3 573 Feb-11-2024, 05:38 PM
Last Post: deanhystad
  Need help with 'str' object is not callable error. Fare 4 951 Jul-23-2023, 02:25 PM
Last Post: Fare
  cx_oracle Error - AttributeError: 'function' object has no attribute 'cursor' birajdarmm 1 2,640 Apr-15-2023, 05:17 PM
Last Post: deanhystad
  Error in Int object is not subscript-able. kakut 2 1,239 Jul-06-2022, 08:31 AM
Last Post: ibreeden
Question how to solve `'TypeError: 'int' object is not iterable`? netanelst 2 1,694 May-24-2022, 12:03 PM
Last Post: deanhystad
  unpack dict menator01 1 1,267 Apr-09-2022, 03:10 PM
Last Post: menator01
  AttributeError: 'function' object has no attribute 'metadata 3lnyn0 5 4,860 Mar-28-2022, 04:42 PM
Last Post: Larz60+
  ValueError: not enough values to unpack (expected 4, got 1) vlearner 2 6,460 Jan-28-2022, 06:36 PM
Last Post: deanhystad
  Conjugate Gradient having issues with defining A (function to solve [A]{x} = {b} ) DimosG 2 2,890 Sep-21-2021, 08:32 PM
Last Post: 1968Edwards
  Trying to understand how isinstance(values, collections.Iterable) work. quazirfan 7 4,334 Aug-10-2021, 08:10 AM
Last Post: snippsat

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020