Возведение числа в степень на Python
В этом руководстве разберем процесс возведения в степень в Python.
В математике возведение в степень — это операция, при которой число умножается само на себя несколько раз. Python предоставляет встроенные операторы и функции для выполнения возведения в степень.
Оператор ** для возведения в степень
Многие разработчики считают, что символ карет ( ^ ) — это оператор возведения числа в степень, ведь именно он обозначает эту операцию в математике. Однако в большинстве языков программирования этот знак выступает в качестве побитового xor .
В Python оператор возведения в степень обозначается двумя символами звездочки ** между основанием и числом степени.
Функциональность этого оператора дополняет возможности оператора умножения * : разница лишь в том, что второй оператор указывает на то, сколько раз первые операнд будет умножен сам на себя.
print(5**6)
Чтобы умножить число 5 само на себя 6 раз, используется ** между основанием 5 и операндом степени 6. Вывод:
15625
Проверим оператор с другими значениями.
Инициализируем целое число, отрицательное целое, ноль, два числа с плавающей точкой float , одно больше нуля, а второе — меньше. Степеням же присвоим случайные значения.
num1 = 2 num2 = -5 num3 = 0 num4 = 1.025 num5 = 0.5 print(num1, '^12 =', num1**12) print(num2, '^4 =', num2**4) print(num3, '^9999 =', num3**9999) print(num4, '^-3 =', num4**-3) print(num5, '^8 =', num5**8)2 ^12 = 4096 -5 ^4 = 625 0 ^9999 = 0 1.025 ^-3 = 0.928599410919749 0.5 ^8 = 0.00390625pow() или math.power() для возведения в степень
Также возводить в степень в Python можно с помощью функции pow() или модуля math, в котором есть своя реализация этого же модуля.
В обе функции нужно передать два аргумента: основание и саму степень. Попробуем вызвать обе функции и посмотрим на результат.
import math print(pow(-8, 7)) print(math.pow(-8, 7)) print(pow(2, 1.5)) print(math.pow(2, 1.5)) print(pow(4, 3)) print(math.pow(4,3)) print(pow(2.0, 5)) print(math.pow(2.0, 5))-2097152 -2097152.0 2.8284271247461903 2.8284271247461903 64 64.0 32.0 32.0Отличие лишь в том, что math.pow() всегда возвращает значение числа с плавающей точкой, даже если передать целые числа. А вот pow() вернет число с плавающей точкой, если таким же был хотя бы один из аргументов.
numpy.np() для возведения в степень
В модуле numpy есть своя функция power() для возведения в степень. Она принимает те же аргументы, что и pow() , где первый — это основание, а второй — значение степени.
Выведем те же результаты.
print(np.power(-8, 7)) print(np.power(2, 1.5)) print(np.power(4, 3)) print(np.power(2.0, 5))-2097152 2.8284271247461903 64 32.0Как получить квадрат числа в Python?
Для возведения числа в квадрат, нужно указать 2 в качестве степени. Встроенной функции для получения квадрата в Python нет.
Например, квадрат числа 6 — 6**2 —> 36.Сравнение времени работы разных решений
Теперь сравним, сколько занимает выполнение каждой из трех функций и оператора ** . Для этого используем модуль timeit .
Основанием будет 2, а значением степени — 9999999.
import numpy as np import math import time start = time.process_time() val = 2**9999999 print('** за', time.process_time() - start, 'ms') start = time.process_time() val = pow(2, 9999999) print('pow() за', time.process_time() - start, 'ms') start = time.process_time() val = np.power(2, 9999999) print('np.power() за', time.process_time() - start, 'ms') start = time.process_time() val = math.pow(2, 9999999) print('math.pow() за', time.process_time() - start, 'ms')** за 0.078125 ms pow() за 0.0625 ms np.power() за 0.0 ms Traceback (most recent call last): File "C:\Programs\Python\Python38\test.py", line 18, in val = math.pow(2, 9999999) OverflowError: math range errorВ первую очередь можно обратить внимание на то, что math.pow() вернула ошибку OverflowError . Это значит, что функция не поддерживает крупные значения степени.
Различия между остальными достаточно простые, но можно увидеть, что np.power() — самая быстрая.
Как сделать квадрат в python
Блог веб разработки статьи | видеообзоры | исходный код
- Главная /
- PYTHON /
- tkinter python рисование
tkinter python рисование

Всем привет! Сегодня мы с вами познакомимся с элементом canvas который переводится как холст. Именно на данном холсте мы можем производить отрисовку различных фигур и текста. Итак, поехали!
Для того чтобы начать отрисовку в окне необходимо создать элемент canvas.
canvas = Canvas(window, width=600,height=600,bg="gray", cursor="pencil")
C помощью виджета canvas у нас создается холст. В него мы передали следующие параметры:
window - главное окно
width, height - ширина и высота холста
bg - заливка холста(gray - серый цвет)
cursor - курсор в фокусе холста(pencil - карандаш)
from tkinter import * window = Tk() window.title('Работа с canvas') canvas = Canvas(window,width=600,height=600,bg="gray", cursor="pencil") canvas.pack() window.mainloop()

C помощью метода pack() мы выводим наш холст в главное окно.
Все теперь мы можем переходить к отрисовке. Начнем с простых линий.
canvas.create_line(0,0,600,600,width=5,fill="yellow") canvas.create_line(0,600,600,0,width=5,fill="yellow")

Здесь мы создали две прямых линии. Для их создания воспользовались методом create_line() который принимает в себя следующие параметры.
Первые два параметра это координаты x,y первой точки начало отрезка.
Вторые два параметры это координаты x,y второй точки конец отрезка.
width - толщина линии.
fill - заливка, цвет линии(yellow - желтый).
Для того чтобы на холсте нарисовать прямоугольник или квадрат, нужно воспользоваться методом create_rectangle().
canvas.create_rectangle(50,250,300,500,fill="white",outline="blue")

C помощью метода create_rectangle()мы нарисовали квадрат. Данный метод принимает в себя следующие параметры:
Первые два параметра координаты левого верхнего угла прямоугольника.
Вторые два параметра координаты правого нижнего угла прямоугольника.
fill - цвет заливки прямоугольника.
outline - цвет рамки прямоугольника.
Теперь переходим к отрисовке эллипсов и кругов.
Для того чтобы нарисовать круг или овал нам достаточно воспользоваться методом create_oval().
canvas.create_oval([400,250],[450,300],fill="pink")

В основе отрисовки круга с помощью данного метода лежит отрисовка прямоугольника. То есть по сути мы отрисовываем невидимый квадрат куда может быть помещен в полную высоту и ширину квадрат или овал.
Данный метод принимает собой следующие аргументы:
Первые два аргумента в квадратных скобочках координаты x,y левого верхнего угла квадрата.
Вторые два аргумента в квадратных скобочках координаты x, y правого нижнего угла квадрата.
fill - цвет заливки овала.
Для отрисовки более сложных фигур треугольников, многоугольников, многогранников.
Мы можем воспользоваться методом create_polygon().
canvas.create_polygon([400,400],[300,400],[350,300],fill="gray", outline="yellow")

Здесь мы нарисовали треугольник. В качестве параметров данный метод принимает пары значений координат точек которые последовательно между собой соединяются прямыми.
Точек в разных координатах можно создавать сколько угодно. В результате можно нарисовать фигуру практически любой сложности. Свойство fill отвечает за цвет заливки фигуры, а outline за ее контур. Заметьте мы указали цвет заливки точно такой же как и цвет холста и в результате у нас получился эффект не закрашенной фигуры.
И напоследок рассмотрим отрисовку текста в canvas.
canvas.create_text(250,280,text="Текст в canvas", font="Verdana 12",justify=CENTER,fill="red")

За отрисовку текста в canvas отвечает метод create_text(). В него передаются следующие параметры:
Первые два параметра координаты x, y расположения текста на холсте.
text - текст который мы хотим нарисовать
font - шрифт и размер текста
justify - выравнивание текста(слева, справа, по центру)
fill - цвет текста
Весь написанный за сегодня код выглядит так:
from tkinter import * window = Tk() window.title('Работа с canvas') canvas = Canvas(window,width=600,height=600,bg="gray", cursor="pencil") canvas.create_line(0,0,600,600,width=5,fill="yellow") canvas.create_line(0,600,600,0,width=5,fill="yellow") canvas.create_rectangle(50,250,300,500,fill="white",outline="blue") canvas.create_oval([400,250],[450,300],fill="pink") canvas.create_polygon([400,400],[300,400],[350,300],fill="gray", outline="yellow") canvas.create_text(250,280,text="Текст в canvas", font="Verdana 12",justify=CENTER,fill="red") canvas.pack() window.mainloop()
Отлично! Сегодня мы с вами познакомились с основами рисования canvas библиотеки tkinter.
Если у вас появились какие либо вопросы пишите в группу
или оставляйте их в комментариях к данной статье.
Также у меня есть канал на
где я каждую неделю публикую новые видео посвященные веб разработке. Так что переходите и будем развиваться вместе.
На этом у меня на сегодня все. Желаю вам успехов и удачи! Пока!
Оцените статью:
Статьи
- target CSS
- GIT для начинающих
- GIT удаленный репозиторий
- Библиотека tkinter python
- MediaRecorder
- BeautifulSoup4 python
- Python сервер
- mail php
Комментарии
Внимание. Комментарий теперь перед публикацией проходит модерацию
Евгений
12:00 12-11-2019
Не подскажите как повернуть текст на 90 градусов чтобы подписать ось Y
© 2017-2023 webfanat.com Все права защищены.

Запись экрана
Данное расширение позволяет записывать экран и выводит видео в формате webm
Добавить приложение на рабочий стол
Как сделать движение нарисованного квадрата в python с помощью библиотеки turtle
Прошу помощи, хочу сделать движение квадрата в python с помощью библиотеки turtle. Задумка такая: рисуем квадрат с помощью черепахи, делаем ему цвет, а дальше проблема, надо чтобы этот квадрат уходил вправо за пределы экрана, а появлялся слева и опять двигался вправо, в целом движение по кругу. Прикрепляю то, что "получилось" сделать.
import turtle MyTur = turtle.Turtle() MyTur.hideturtle() MyScreen = turtle.Screen() MyScreen.bgcolor("white") MyScreen.screensize(500, 500) MyScreen.tracer(0) def square(): MyTur.begin_fill() MyTur.fillcolor("blue") for i in range(4): MyTur.forward(50) MyTur.right(90) MyTur.end_fill() MyTur.penup() x = -350 MyTur.goto(x, 0) MyTur.pendown() while True: MyTur.clear() square() MyScreen.update() MyTur.forward(0.05)
Отслеживать
задан 11 янв в 18:56
13 3 3 бронзовых знака
У вас уже получилось нарисовать квадрат. Теперь можно просто рисовать его той же функцией, только немного смещенным, а предыдущий стирать с экрана. Вызывать функцию рисования можно по таймеру 20-50 раз в секунду. docs.python.org/3/library/turtle.html#turtle.ontimer. Ну и затем обработать события около границ экрана.
11 янв в 19:22
Получился такой код, но не могу обработать события около границ. import turtle MyTur = turtle.Turtle() MyTur.hideturtle() MyScreen = turtle.Screen() MyScreen.bgcolor("white") MyScreen.screensize(500, 500) MyScreen.tracer(0) def square(): MyTur.begin_fill() MyTur.fillcolor("blue") for i in range(4): MyTur.forward(50) MyTur.right(90) MyTur.end_fill() MyTur.penup() x = -350 MyTur.goto(x, 0) MyTur.pendown() while True: MyTur.clear() square() MyScreen.update() MyTur.forward(0.05)
11 янв в 19:56
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
После того, как передвинули квадрат, нужно проверить вышли ли мы за правую границу (x > 500): если вышли, то x = -500
import turtle MyTur = turtle.Turtle() MyTur.hideturtle() MyScreen = turtle.Screen() MyScreen.bgcolor("white") MyScreen.screensize(500, 500) MyScreen.tracer(0) def square(): MyTur.begin_fill() MyTur.fillcolor("blue") for i in range(4): MyTur.forward(50) MyTur.right(90) MyTur.end_fill() MyTur.penup() x = -350 MyTur.goto(x, 0) MyTur.pendown() while True: MyTur.clear() square() MyScreen.update() MyTur.forward(0.05) # Сдвинули квадрат # Проверяем выходит ли за границу новая координата x if MyTur.pos()[0] > 500: # Если вышли, то передвигаем квадрат на -500 MyTur.penup() x = -500 MyTur.goto(x, 0) MyTur.pendown()
По поводу MyTur.pos()[0] :
MyTur.pos() возвращает кортеж из двух элементов: например, (-349.90,-0.00). Первое значение - x, второе - y. Нам нужен x, отчет в питоне начинается с 0, поэтому x = MyTur.pos()[0]
Как сделать движение нарисованного квадрата в python с помощью библиотеки turtle?
Прошу помощи, хочу сделать движение квадрата в python с помощью библиотеки turtle. Задумка такая: рисуем квадрат с помощью черепахи, делаем ему цвет, а дальше проблема, надо чтобы этот квадрат уходил вправо за пределы экрана, а появлялся слева и опять двигался вправо, в целом движение по кругу. Прикрепляю то, что "получилось" сделать.
import turtle MyTur = turtle.Turtle() MyTur.hideturtle() MyScreen = turtle.Screen() MyScreen.bgcolor("white") MyScreen.screensize(500, 500) MyScreen.tracer(0) step = 5 speed = 2 def move(): MyTur.begin_fill() MyTur.fillcolor("blue") for i in range(4): MyTur.forward(50) MyTur.right(90) MyTur.end_fill() global x, xdir x = x + xdir if x >= right_edge: xdir = left_edge MyTur.goto(x, 0) MyScreen.ontimer(move, speed) MyScreen.update() x = 65 xdir = step right_edge = MyScreen.window_width() // 2 left_edge = -turtle.window_width() // 2 move() turtle.exitonclick()
- Вопрос задан 11 янв.
- 91 просмотр
1 комментарий
Средний 1 комментарий

