Size: a a a

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

2020 May 17

КК

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

😍

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

КК

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

КК

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

КК

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

КК

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

😍

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

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
from module import * нарушает принципы инкапсуляции, как и using namespace ... в плюсах
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
first last
import math;
def f1(x):
   return (x**3 - (8*x) + 1 - (5 * math.sin(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;
   while x <= r_b:
       if float('{:.3f}'.format(f1(x))) == float('{:.3f}'.format(0)):    #привожу к одинаковому кол-ву знаков после .
           print(x);    #печатает корень типо
       x += eps;       #шагает дальше

f = [];       #массив со значениями функции
z = [];      #массив со значениями Х
eps = 0.001;    #шаг при смене знака
l = float('{:.3f}'.format(-5));    #начало промежутка
r = float('{:.3f}'.format(5));    #конец промежутка
x = l;
step = float('{:.3f}'.format(0.5));    #шаг

while x <= r:    #заполнение массивов
   f.append(float('{:.3f}'.format(f1(x))));
   z.append(float('{:.3f}'.format(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]);    #вызываю функцию для промежутка со сменой знака, которая почему-то не работает
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])  # вызываю функцию для промежутка со сменой знака, которая почему-то не работает
источник

😍

😍 in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Кирилл Картвелишвили
from module import * нарушает принципы инкапсуляции, как и using namespace ... в плюсах
и еще уточнение которое он не сказал from mobule as asd это просто переименовать модуль?
источник

m

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

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
😍
и еще уточнение которое он не сказал from mobule as asd это просто переименовать модуль?
создать синоним модуля
источник

КК

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

КК

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

😍

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

КК

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

КК

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

КК

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

OM

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

😍

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