from tkinter import *
from random import uniform
from math import sqrt
#создаем окно
window = Tk()
c = Canvas(window, width = 600, height = 600, bg = 'yellow')
c.pack()
#рисуем квадрат и внутри него круг
c.create_rectangle(30, 30, 570, 570,
outline="black")
c.create_oval(30, 30, 570, 570)
count = 0
point_id = []
point_in_the_oval = []
#Создаем точки на холсте, для лучшей точности можно изменять предел count, но python, ограничивает это, округляя значение конечного числа(пи) очень неточно.
while count < 2000:
count += 1
# генератор случайных чисел
x = uniform(30,570)
y = uniform(30,570)
id1 = c.create_oval(x, y, x+1, y+1, fill = 'black')
point_id.append(id1)
#вычисляем, находится ли точка внутри круга?
#Если да то добавляем ее в список, для дальнейшего подсчета
for i in point_id:
pos = c.coords(i)
x1 = (pos[0] + pos[2])/2
y1 = (pos[1] + pos[3])/2
radius = sqrt((300 - x1)**2 + (300 - y1)**2 )
if radius < 270:
point_in_the_oval.append(1)
#Выводим полученное число. В этом способе я использовал,знание того,что отношение площади квадрата к площади круга равно отношению общего числа точек к числу точек, которые попали в радиус круга.
#Так же мы знаем,что площадь круга к площади квадрата равно pi/4, следовательно кол-во точек попавших в радиус круга и умноженное на 4 и деленное на общее число точек должно показать число пи!
pi = ( (4*len(point_in_the_oval) / len(point_id)))
print("Мы получили экспериментально число 'пи', равное - ",pi)
set_output = False:
def sms(message):
if message.text == "/sms":
global set_output
set_output = True
elif message.text == "/stop":
global set_ooutput
set_output = False
if set_output == True:
if message.text != "/sms":
bot.send_message(message.chat.id, message.text)
или по-другому. Как изменить тип данных?
Как видите, возвращается строка типа str.
Я мне хочется строку типа new_string