Size: a a a

Хирьянов Т.Ф., Практика программирования на Python 3 (2019)

2020 May 17

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Кирилл Картвелишвили
ещё важно понимать, что при импорте модуля все команды в нём выполняются. и если какой-то дурак не реализовал там if __name__ == '__main__' и у нас в коде есть генерация списка простых чисел до 10000000000, то наш код застопорится на долгие минуты, а при импорте конкретных нужных функций, будет выполнено только само объявление этих функций в контексте файла
я так уверено сказал, но чот хз может всё равно код выполнится, надо проверить
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Oleg Makarikhin
а ты работал телеге с разметочкой?
не-а
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
😍
хммм) просто подскажи мне же надо дробную часть еще как то округлить верно?)
нет, из исходного числа нужно вычесть число с отбрасыванием всех знаков после запятой
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
x - int(x)
или x - math.trunc(x)
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
скорее второе будет правильнее
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
плавающая точка наносит ответный удар
источник

😍

😍 in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Кирилл Картвелишвили
x - int(x)
или x - math.trunc(x)
че то не то
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
mr.slavik
import math

SCALE_FACTOR_X = 1_000
SCALE_FACTOR_Y = 1_000

f = []  # массив со значениями функции
z = []  # массив со значениями Х
eps = int(SCALE_FACTOR_X * 1 // 1000)  # шаг при смене знака
l = int(-5 * SCALE_FACTOR_X)  # начало промежутка
r = int(5 * SCALE_FACTOR_X)  # конец промежутка
x = l
step = int(SCALE_FACTOR_X * 5 // 10)  # шаг


def f1(x):
   return int(SCALE_FACTOR_Y * ((x ** 3 - 8 * x * SCALE_FACTOR_X ** 2) / (SCALE_FACTOR_X ** 3) + 1 - (
               5 * math.sin(x / SCALE_FACTOR_X))))  # уравнение 1


def sign(o):  # функция проверки на смену знака
   if o < 0:
       return (-1)
   elif o > 0:
       return (1)
   else:
       return (0)


def find_the_root(l_b, r_b):  # функция, которая ищет корень в промежутке,  но не работает
   x = l_b
   f_prev = f1(x)
   while x <= r_b:
       if sign(f1(x)) != sign(f_prev):  # привожу к одинаковому кол-ву знаков после .
           print(f'{(x) / SCALE_FACTOR_X}')  # печатает корень типо
           return
       f_prev = f1(x)
       x += eps  # шагает дальше


while x <= r:  # заполнение массивов
   f.append(f1(x))
   z.append(x)
   x += step

for i in range(1, len(z)):
   if sign(f[i]) != sign(f[i - 1]):  # если происходит смена знака
       # print(z[i-1], z[i]); - отладочный вывод, промежутки смены знака находит правильно, в формате "2.5"
       find_the_root(z[i - 1], z[i])  # вызываю функцию для промежутка со сменой знака, которая почему-то не работает
обновил
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
исправил дичь с проверкой на ноль
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
а вообще - нужно бинарный поиск использовать
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
округлять нужно
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
домножать лучше в данном случае
источник

😍

😍 in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
главное тест то прошел
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
😍
хммм) просто подскажи мне же надо дробную часть еще как то округлить верно?)
x = str(input())
_, out = x.split('.')
print(f'0.{out}')
источник

😍

😍 in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
mr.slavik
x = str(input())
_, out = x.split('.')
print(f'0.{out}')
Оо классно придумал) я его использую в этой зажаче)
источник

😍

😍 in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Цена товара обозначена в рублях с точностью до копеек, то есть действительным числом с двумя цифрами после десятичной точки. Запишите в две целочисленные переменные стоимость товара в виде целого числа рублей и целого числа копеек и выведите их на экран. При решении этой задачи нельзя пользоваться условными инструкциями и циклами.
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
mr.slavik
x = str(input())
_, out = x.split('.')
print(f'0.{out}')
сильно, не догадался бы, спасибо
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
x = str(input())
print(f"0.{x.split('.')[1]}")
источник