b, судя по всему, используется как флаг того, что найден высокосный год. Только почему он не булевого типа, а текстовый - непонятно. Логичнее было бы использовать вместо “yes” и “no” True и False.
y=-1300 # присваиваем y значение -1300
b="No" # и присваиваем текстовое значение No
while y<2500: # условие цикла если y меньше 2500
if b=="yes": # условие b теперь тут зачем то приравнивающий с YES - проверка на состояние флага b
print "y-",y # печатать y- y
break # прерыванием
if y%400==0: # и задаём условие в котором y разделённый по модулю на 400 приравниваться к 0 // не приравнивается, а проверяется на равность
print y, "Good year" # если это произошло печатаем число - Good year
elif y%100==0: #условие как и через 1 строку выше
print y, "Bad year" # если это произошло печатаем число - Bad year
if y>=0: # проверяем y больше ли или равен 0 и
b="yes" # если больше или равен печатаем YES // не печатаем, а присваиваем флагу b значение "yes"
y=y+100 и прибавляем к полученному Y +100
В любом случае программа не верна и содержит ошибки в алгоритме.
PS: Пожалуйста, используй спеллчекер и расставляй знаки препинания. Читать же невозможно. (“матерьял”/“материал” “хаус”/“хаос”).
yurec_ppcНе надо писать все вопросы сюда. Один вопрос - одна тема.