Kodomo

Пользователь

Первая графическая программа. Модули, функции.

Конспекты

План

Пример

   1 import random
   2 from Tkinter import Tk, Button, Canvas, PhotoImage
   3 
   4 def put_box():
   5         x = random.randrange(1, 200)
   6         y = random.randrange(1, 200)
   7         w = random.randrange(1, 201 - x)
   8         h = random.randrange(1, 201 - y)
   9         color = random.choice(["red", "green", "yellow", "blue", "black"])
  10         button.configure(text="MORE!")
  11         image.put(color, to=[x, y, x+w, y+h])
  12 
  13 root = Tk()
  14 canvas = Canvas(root, width=199, height=199, background="white")
  15 image = PhotoImage(width=200, height=200)
  16 canvas.create_image(0, 0, image=image, anchor="nw")
  17 canvas.pack()
  18 button = Button(root, text="Put box", command=put_box)
  19 button.pack()
  20 root.mainloop()

Контрольная работа

  1. Имя, Фамилия:
  2. У Алисы есть репозиторий. Его состояние можно понять из диалога с меркуриалом:
    • $ hg log
      changeset:   1:9ca57747c5c0
      user:        Alice
      summary:     2
      
      changeset:   0:d74cffef847c
      user:        Alice
      summary:     1
      
      $ hg cat file
      2
      
      $ cat file
      3
      
      $ hg st
      M file
    У Боба состояние репозитория такое:
    $ hg log
    changeset:   1:dae357da6aac
    user:        Bob
    summary:     4
    
    changeset:   0:d74cffef847c
    user:        Alice
    summary:     1
    
    $ cat file
    5
    
    $ hg cat file
    4
    
    $ hg st
    M file

    Какое состояние будет у репозитория после того, как Боб скажет hg pull?

Задание

Памятка: задание – то, что обязательно выполнить для получения зачёта; упражнения – необязательные, но как правило задание решить проще, если сначала выполнить все упражнения; если вы меня пнёте, выдам вам комментарии про то, что и как лучше, и по заданию, и по упражнениям.

Начиная с этого момента все задания вы будете выполнять в репозитории. Если в задании (или упражнении) сказано "напишите скрипт x", это значит, что вы должны сделать файл с именем x и положить его в ваш именной репозиторий.

  1. Получите к себе копию репозитория ssh://hg@kodomo.fbb.msu.ru/py2011/логин, где слово логин нужно заменить на ваш логин

  2. Напишите скрипт more_buttons.py, которая рисует окошко, в котором есть кнопка "More", которая добавляет в это окошко ещё одну такую же кнопку

Упражнения

  1. Сохраните пример (данный выше) в файле boxes.py, убедитесь, что он у вас запускается

  2. Экспериментальным путём выясните, включает ли randrange а) левую, б) правую границы диапазона. (Особая плюшка тем, кто скажет свой ответ с уверенностью P < 5%)

  3. Напишите скрипт circle.py (вида "полотно + кнопка"), который в несколько нажатий кнопки в некотором приближении рисует круг.