- Задача. Функция 2 (Python)
- Решение задачи:
- Задача «Рамка» (использование графической библиотеки PIL)
- Решение задачи по Python с рамкой
- Python-сообщество
- #1 Март 22, 2021 18:19:19
- Изменение рамки при помощи вводимых значений
- #2 Март 23, 2021 09:07:31
- Изменение рамки при помощи вводимых значений
- #3 Март 23, 2021 13:07:51
- Изменение рамки при помощи вводимых значений
- #4 Март 23, 2021 13:56:05
- Изменение рамки при помощи вводимых значений
- #5 Март 23, 2021 14:20:31
- Изменение рамки при помощи вводимых значений
- Задача. Спецшифр (Python)
- Решение задачи:
Задача. Функция 2 (Python)
В прошлый раз мы написали Саше программу, которая считает функцию в каждой точке отрезка и выводит значение на экран. Но теперь ему нужно, чтобы значения считались в обратном порядке. Также Саше важно настроить шаг, с которым он скачет по точкам отрезка.
Напишите программу, которая получает на вход начало и конец отрезка, а также шаг. Затем высчитывает функцию игрек в каждой точке отрезка и с нужным шагом, начиная с конца, выводит ответ на экран.
Сама функция выглядит так:
В точке 2 функция равна 9
В точке 1 функция равна 0
В точке 0 функция равна 1
В точке -1 функция равна 6
В точке -2 функция равна 9
Что оценивается
Задание считается успешно выполненным, если:
- результат вывода соответствует условию;
- вывод содержит описание результата (выведенные числа сопровождаются текстовым описанием);
- input содержит корректное приглашение для ввода;
- в программе происходит проверка границ перед созданием range, и, возможно, их разворот, как и изменение знака шага;
- формат вывода соответствует примеру (не выведены числа без описания);
- переменные имеют значащие имена, не только a, b, c, d.
Решение задачи:
a = int(input('Введите начало отрезка: ')) b = int(input('Введите конец отрезка: ')) c = int(input('Введите шаг: ')) y = 0 for x in range(b, a - 1, c): y = (x **3 ) + 2 * (x ** 2) - (4 * x) +1 print('В точке ',x, 'функция равна ', y )
Задача «Рамка» (использование графической библиотеки PIL)
Если на картинке самое главное находится в центре, а остальное пусто или не интересно, то можно вырезать центральную часть и заключить в рамочку.
Напишите функцию frame(), которая принимает имя файла и ширину рамки, вырезает центральную часть изображения (треть размера по ширине и по высоте, используйте целочисленное деление) и добавляет рамку переданной ширины по контуру, цвет рамки – средний цвет вырезанной центральной части. Затем сохраняет его в файл done.png.
Для определения среднего цвета нужно найти сумму красной составляющей всех пикселей и поделить нацело на количество пикселей, затем то же сделать для остальных составляющих.
Примеры изображений: bug.png и done.png в прикрепленном файле
Задача «Отражения» (PIL)
Задача "Отражения" (PIL) В зависимости от того, как вы поставите зеркало (или зеркала!), вы.
Задача «Умножатор» (Библиотеки Python. Встроенные модули)
Умножатор Напишите функцию multiplier() для нахождения произведения элементов списка, подходящих.
Использование «нестандартной» библиотеки для регулярных выражений в VBA
Возможно ли? "Стандартный" вариант Microsoft VBScript Regular Expression 5.5 не поддерживает.
Использование в VBA библиотеки, написанной на Delphi и ошибка «Out of stack space»
Использую свою dll, написаную на pascal в макросах Excel. Код VBA: Public Declare Sub test Lib.
from PIL import Image, ImageOps
def frame(name, ramka):
im = Image.open(name)
pixels = im.load() # список с пикселями
x, y = im.size # ширина (x) и высота (y) изображения
im2 = im.crop(((x — x // 3) // 2, (y — y // 3) // 2, (x + x // 3) // 2, (y + y // 3) // 2))
pixels = im2.load()
x, y = im2.size
border_color = (sum([pixels[i, j][0] for j in range(y) for i in range(x)])
// (x * y), sum([pixels[i, j][1] for j in range(y) for i in range(x)])
// (x * y), sum([pixels[i, j][2] for j in range(y) for i in range(x)]) // (x * y))
img_border = ImageOps.expand(im2, border=ramka, fill=(border_color)) # рамка
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
from PIL import Image def get_color(img): x, y = img.size rr = [] gg = [] bb = [] pix = img.load() for i in range(x): for j in range(y): r, g, b = pix[i, j] rr.append(r) gg.append(g) bb.append(b) rr, gg, bb = sum(rr) // len(rr), sum(gg) // len(gg), sum(bb) // len(bb) return rr, gg, bb def frame(text, n): im = Image.open(text) x, y = im.size im1 = im.crop((x // 3, y // 3, (x // 3) * 2, (y // 3) * 2)) x, y = im1.size im2 = Image.new("RGB", (x + n * 2, y + n * 2), color=get_color(im1)) im2.paste(im1, (n, n)) im2.save("done.png")
Добавлено через 3 минуты
Сделал без функции .expand, используя логику вставки вырезанной картинки1 в картинку2(с средним цветом), которая больше картинки1 на n * 4. (x + n * 2, y + n * 2)
from PIL import Image, ImageOps, ImageStat def frame(name, frame_size): im = Image.open(name) w, h = im.size im2 = im.crop((w//3, h//3, 2*w//3, 2*h//3)) avg_color=tuple(map(int, ImageStat.Stat(im2).mean)) img_border = ImageOps.expand(im2, border=frame_size, fill=avg_color) img_border.save('done.png') frame("bug.png", 20)
Использование графической библиотеки С
Нужна помощь Построить график функции f(x),xє . Значение xmin xmax вводятся с клавиатуры. На.
Использование графической библиотеки
Здравствуйте, можете подсказать, как подключить библиотеку graphics в CodeBlocks 10.05?
Использование графической библиотеки C++
Помогите пожалуйста зделать лабу! Построить график функции f (x), x∈ . Значение xmin, xmax.
Использование графической библиотеки Pascal ABC
Используя библиотеку графических примити- вов, построить узор. Обязательно предусмотреть воз-.
Решение задачи по Python с рамкой
Решение задачи на Python 3
решаю задачу с сайта CodeForces "71A" Вот сама задача: Иногда некоторые слова вроде.
Решение задачи на Python
Даны пять одномерных массива вещественных элементов. Размер каждого массива не превосходит 100.
решение задачи (сырки, python)
Сырок стоит х рублей. Сырки продаются упаковками по т и п штук. Задание Напишите программу.
Решение Задачи на Python 2 курс
Помогите пожалуйста с задачей не знаю как решить. Заранее спасибо. П.5.4. Правил Запрещено.
Решение геодезической задачи в Python 2.7
Всем доброго времени суток. У меня возник ступор при создании программы, которая сможет в простом.
Потому, что при a=b=1 цикл прокрутится один раз (а печать у тебя разбита на условия в одном if; срабатывает первое)
1 2 3 4 5 6 7 8 9 10 11 12 13
a = int(input('Введите высоту рамки: ')) b = int(input('Введите ширину рамки: ')) ud="" for _ in range(b): ud=ud+"-" ud="+"+ud+"+" print(ud) for _ in range(a): print("|",end="") for _ in range(b): print(" ",end="") print("|") print(ud)
a = int(input('Введите высоту рамки: ')) b = int(input('Введите ширину рамки: ')) pattern=[' |','-+'] for i in range(a+2): for j in range(b+2): print(pattern[i%(a+1)==0][j%(b+1)==0], end='') print()
Python-сообщество
- Начало
- » Python для новичков
- » Изменение рамки при помощи вводимых значений
#1 Март 22, 2021 18:19:19
Изменение рамки при помощи вводимых значений
Помогите с задачей, пожалуйста! Ни черта не понимаю в питоне…
Напишите скрипт, генерирующий в окне два текстовых поля и рамку. Размер рамки можно менять с помощью вводимых значений в текстовые поля (определяют длину и ширину) и нажатии клавиши пробел на клавиатуре.
Буду очень признателен.
#2 Март 23, 2021 09:07:31
Изменение рамки при помощи вводимых значений
DarkNeco
начните по порядку, для начала напишите скрипт, генерирующий в окне два текстовых поля и рамку.
#3 Март 23, 2021 13:07:51
Изменение рамки при помощи вводимых значений
PEHDOM
DarkNecoначните по порядку, для начала напишите скрипт, генерирующий в окне два текстовых поля и рамку.
from tkinter import * root=Tk() fra=Frame(root,width=300,height=300,bg="lightgreen",bd=20) ent1=Entry(fra,width=20) ent2=Entry(fra,width=20) def spc(event): fra.pack() ent1.pack() ent2.pack() root.mainloop()
Но я не просто так попросил помочь, потому что в учебном материале колледжа не объясняют, как одно привязать к другому и как привязать параметры одного элемента к другим, не говоря уже о вводимых значениях.
Помогите, пожалуйста!
#4 Март 23, 2021 13:56:05
Изменение рамки при помощи вводимых значений
Как заставить строчку реагировать на пробел? Я в курсе, что это делается через bind, но я нигде не могу найти обозначение кнопки пробела.
from tkinter import * root=Tk() fra=Frame(root,width=300,height=300,bg="lightgreen",bd=20) ent1=Entry(fra,width=20) ent2=Entry(fra,width=20) def spc1(event): fra['height']=ent1.get() def spc2(event): fra['width']=ent2.get() fra.pack() ent1.bind("",spc1) ent2.bind("",spc2) ent1.pack() ent2.pack() root.mainloop()
на значении Space питон выдает ошибку. Не знаю, что делать. И будет ли работать эта программа в соответствии с заданием, тоже вопрос!
Отредактировано DarkNeco (Март 23, 2021 13:56:37)
Прикреплённый файлы:
Screenshot_20210323-144357.jpg (338,7 KБ)
#5 Март 23, 2021 14:20:31
Изменение рамки при помощи вводимых значений
ну в таком виде оно не будет работать, у вас виджеты внутри рамки и рамка будет автоматически подстраиваться под размер виджетов. Хотя оно фикситься одной строчкой,сомневаюсь что именно это имелось ввиду, наверное всетаки рамка должна была быть отдельно, но ладно как есть уже. А так почти правильно.
from tkinter import * root=Tk() fra=Frame(root,width=300,height=300,bg="lightgreen",bd=20) fra.pack_propagate(False) # делаем чтобы рамка не подстраивалась пдо размер виджетов ent1=Entry(fra,width=20) ent2=Entry(fra,width=20) def spc1(event): fra['height']=ent1.get() fra['width']=ent2.get() root.bind("",spc1) ent1.pack() ent2.pack() fra.pack() root.mainloop()
Отредактировано PEHDOM (Март 23, 2021 14:34:12)
Задача. Спецшифр (Python)
Два сотрудника спецслужб переписываются необычным шифром. Каждую букву они шифруют в виде строки, внутри которой есть длинная последовательность букв “s”, а длина самой длинной — это и есть номер буквы алфавита, которую хотят отправить.
Напишите программу, которая получает на вход строку, подсчитывает в ней самую длинную последовательность подряд идущих букв “s” и выводит ответ на экран.
Введите строку: ssbbbsssbc Самая длинная последовательность: 3
Что оценивается
Задание считается успешно выполненным, если:
- результат вывода соответствует условию;
- input содержит корректное приглашение для ввода;
- вывод содержит описание результата (выведенные числа сопровождаются текстовым описанием);
Решение задачи:
string = input('Введите строку: ') s = string + ' ' result = 0 tmp = 0 for symbol in s: if symbol == 's': tmp += 1 elif tmp > result: result = tmp tmp = 0 print('Самая длинная последовательность: ', result)
Для проверки немного усложним, сделаем с окончанием на ssssssss? Например: sskljlkdlkjkljssssslkjlkjlddyssssssssss