TypeError: value() takes 3 positional arguments but 4 were given code example
Example 1: TypeError: takes 0 positional arguments but 1 was given python
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.
Example 2: how to fix takes 0 positional arguments but 2 were given
import turtle as trtl
import random as rand
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
timer_up = False
counter.hideturtle()
counter.penup()
counter.goto(-10,200)
reset_button = trtl.Turtle("circle")
reset_button.penup()
reset_button.goto(-100,-100)
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()
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()