What change is required in the source code?
def Update(): print('\n') print("Update") cmd = os.system('xterm -e apt-get update') print("Finish update") def AptUpdate(): print('\n') print("Update system? {Y/N}") print("Y or y") print("N or n") code = input("Command > ") if code == 'y' or code == 'Y': for i in Update(): return Update elif code == 'n' or code == 'N': return else: print("Warning!") AptUpdate() exception: Traceback (most recent call last): File "pybash.py", line 110, in AptUpdate() File "pybash.py", line 102, in AptUpdate for i in Update: TypeError: 'function' object is not iterable
What the traceback error is pointing out is the misuse of for statement:
for i in Updt():
for
in python 3 is as follows: "Python’s for statement iterates over the items of any sequence (a list or a string), in the order that they appear in the sequence." (source: python 3.3 documentation, section 4: More control structures Python 3Since a function is neither a list nor a string, you can't use the format:
for [variable] in [function]():
As far as what needs to be fixed, it depends on what those two functions are supposed to accomplish individually.