Turtle и onscreenclick

Абубачир

Новичок
Пользователь
Фев 15, 2022
2
0
1
Python:
from turtle import*

def star(len):

    n=7

    ang=180-180/n

    for i in range(n):

        forward(len)

        right(ang)

onscreenclick(star(int(textinput('side len','Enter side lenght '))),2)

exitonclick()

Задали задание: рисовать звезду по клику. Проблема заключается в том, что в моём коде onscreenclick странно работает. Звезда рисуется как только запускается программа, вне зависимости от клика
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Проблема заключается в том, что в моём коде onscreenclick странно работает. Звезда рисуется как только запускается программа, вне зависимости от клика
Чтобы звезда рисовалась по клику нужно добавить лямбду в вызов функции onscreenclick:
Python:
from turtle import*

def star(len):

    n=7

    ang=180-180/n

    for i in range(n):

        forward(len)

        right(ang)

onscreenclick(lambda x, y: star(int(textinput('side len','Enter side lenght '))),2)

exitonclick()
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
Можешь еще подсказать как мне сделать так, чтоб окно сразу не закрывалось, но не exitonclick, ибо он не даёт мне нажать на лкм, дабы запустить программу
Можно так:
Python:
from turtle import*

def star(len):

    n=7

    ang=180-180/n

    for i in range(n):

        forward(len)

        right(ang)

onscreenclick(lambda x, y: star(int(textinput('side len','Enter side lenght '))),2)

done()
 
  • Мне нравится
Реакции: Абубачир

Абубачир

Новичок
Пользователь
Фев 15, 2022
2
0
1
Чтобы звезда рисовалась по клику нужно добавить лямбду в вызов функции onscreenclick:
Python:
from turtle import*

def star(len):

    n=7

    ang=180-180/n

    for i in range(n):

        forward(len)

        right(ang)

onscreenclick(lambda x, y: star(int(textinput('side len','Enter side lenght '))),2)

exitonclick()
спасибо. Можешь еще подсказать как мне сделать так, чтоб окно сразу не закрывалось, но не exitonclick, ибо он не даёт мне нажать на лкм, дабы запустить программу
 

Форум IT Специалистов