How do you make a conditional loop with onkeypress()?

when I click, it becomes true and keeps looping without me having to click again.

We can make a separate event handler that is a toggle, using a global to switch between on and off on subsequent clicks. We'll combine that with a timer event to keeps the flakes coming:

from turtle import Screen, Turtle
from random import randint, choice

COLOURS = ['light gray', 'white', 'pink', 'light blue']

is_snowing = False

def toggle_snowing(x, y):
    global is_snowing

    if is_snowing := not is_snowing:
        screen.ontimer(drop_flake)

def drop_flake():
    flake_radius = randint(1, 5)

    x = randint(-250, 250)
    y = randint(-300, 300)

    turtle.setposition(x, y)
    turtle.color(choice(COLOURS))

    turtle.begin_fill()
    turtle.circle(flake_radius)
    turtle.end_fill()

    if is_snowing:
        screen.ontimer(drop_flake)

turtle = Turtle()
turtle.hideturtle()
turtle.speed('fastest')
turtle.penup()

screen = Screen()
screen.setup(500, 600)
screen.bgcolor('dark blue')
screen.onclick(toggle_snowing)
screen.listen()

screen.mainloop()

When you click on the screen, the flakes will start appearing. When you click again, they will stop.