Q:

how to fix takes 0 positional arguments but 2 were given

#Happens when a function expects only 1 value to be passed through it
#But multiple are passed through

class thing(object):
	def __init__(self):
    	pass
       
    def function(self)
		print("hello")

thingy = thing()
thingy.bind("<KeyPress>", thingy.function)

#You don't expect above to pass two values through, however it passes an event
#and self which is why it will give a positional argument error
1
When Python tells you "generatecode() takes 0 positional arguments but 1 was
given", it's telling you that your method is set up to take no arguments, but
the self argument is still being passed when the method is called, so in fact
it is receiving one argument.

Adding self to your method definition should resolve the problem.
1
#Positional arguments are the amount of arguments passed through a function
#For example

def function(value1, value2):
	print(value1)
	print(value2)

function("value1","value2","value3")
1
Dont do this I typed this in here by accident but if you can help me fix this for schools I will be grateful.
0
#-----import statements-----
import turtle as trtl
import random as rand

# creating diablo
diablo = trtl.Turtle("arrow")
diablo.shapesize(2)
diablo.fillcolor("pink")
score = 0

score_keeper = trtl.Turtle()
score_keeper.hideturtle()
score_keeper.penup()
score_keeper.goto(200,200)
score_keeper.pendown()  
counter = trtl.Turtle()
font_setup = ("Arial", 20, "normal")
timer = 5
counter_interval = 1000   #1000 represents 1 second
timer_up = False
counter.hideturtle()
counter.penup()
counter.goto(-10,200)

reset_button = trtl.Turtle("circle")
reset_button.penup()
reset_button.goto(-100,-100)


# making new x and y values for diablo
def scored():
    global score
    score += 1
    score_keeper.clear()
    score_keeper.write(score)

def change_position():
    a = rand.randint(-250,250)
    b = rand.randint(-250,250)
    diablo.penup()
    diablo.goto(a,b)

def countdown():
    global timer, timer_up
    counter.clear()
    if timer <= 0:
        counter.write("Time's Up", font=font_setup)
        timer_up = True
        diablo.hideturtle()
    else:
        counter.write("Timer: " + str(timer), font=font_setup)
        timer -= 1
        counter.getscreen().ontimer(countdown, counter_interval)

def reset_now(self):
    counter = 0
    score = 0
    diablo.showturtle()

# naming when diablo gets clicked then changing position
def diablo_clicked(x, y):
    scored()
    change_position()
    
diablo.onclick(diablo_clicked)
reset_button.onclick(reset_now)
wn = trtl.Screen()
wn.ontimer(countdown, counter_interval)
wn.bgcolor("#79F0FF") 
wn.mainloop()
0

New to Communities?

Join the community