От продавца до Big Data Scientist #2

Прошлый пост – От продавца до Big Data Scientist #1


Итак, я начал проходить базовый курс по Пайтону на сайте степик. Курс №67, вроде. Мне всё нравится =D Хочется стравнить его с практикумом, но наверное пока рановато. Я прошёл первую "неделю" за 4 дня. А всё потому, что достаточно много из пройденного было уже изучено в практикуме. Но! Были и новые для меня штуки. Например input(). Наконец-то меня научили как вводить собственные данные, а не только работать уже с исходными. Я написал свою первую программку, которая решает квадратные уравнения. Принимает на вход 3 аргумента и выдаёт два корня квадратного уравнения, или один =) Зачем мне это нужно было? Потому что, лет 20 назад мой старший брат написал похожую программку на бейсике и я был просто восхищён :) Теперь пришло время и мне написать похожую:


a = float(input('введите первый аргумент'))

b = float(input('введите второй аргумент'))

c = float(input('введите третий аргумент'))

d = b**2 - (4 * a * c)

x1 = (-b + d**0.5) / (2 *a)

x2 = (-b - d**0.5) / (2 *a)

if d < 0:

print('Уравнение корней не имеет')

elif d == 0:

print('Корень уравнения = {:.2f}'.format(x1))

else:

print('Первый корень уравнения = {:.2f}'.format(x1))

print('Второй корень уравнения = {:.2f}'.format(x2))


Вооот.. что ещё нового? Разбирался с логическими операциями: Это даётся не просто, но вроде начал понимать. Прорешал все задания по окончанию недели. Нравится, что потом можно посмотреть решения других учащихся. Все решения можно разделить на 3 типа: Человек такой же как ты и решает весьма примитивно; человек знает гораздо больше и выпендривается решая в одну строчку, но так, что ничего не понятно; человек знает намного больше и тролит показывая сверхпримитивное решение, написанное явно с помощью другого кода =) Спасибо им всем, и научишься и посмеёшься. Многие пишут, что думают над задачами часами, а то и днями. пока максимум пол часа приходилось обмазговывать задания. Но это видимо пока.

Так, начал слушать вторую неделю. Первая тема цикл While: И вроде задачи решались и всё понятно, пока не попалась задача, решением к которой был вот такой код:


a, b = int(input()), int(input())

s = 1

while s%a != 0 or s%b != 0:

s += 1

print (s)


Но в моём первоначальном решении строчка цикла выглядела иначе:

while s%a != 0 and s%b != 0:

что мной читалось как: продолжать цикл пока число s не делится на цело и на a и на b.

блять... пока писал, что нихрена не понимаю, почему там должен стоять оператор or понял.

Ладно проехали :)

Значит продолжаю своё обучение.

Из забавного. В субботу сидели семьёй завтракали и на коробке шоколадных подушечек была головоломка для детей: посчитать число треугольников в фигуре содержащие в себе число подушечек кратное трём. Ну и я начал писать в голове код ,который сделал бы это за меня =D мысли были прерваны, но потом ночью, когда все уснули я всё таки решил задачку в голове и тоже спокойно уснул .

Всем спасибо :)

Вы смотрите срез комментариев. Показать все
2
Автор поста оценил этот комментарий

"Зануда математик": квадратное уравнение всегда имеет 2 корня:
1) - они одинаковы, D=0
2) - они в поле Действительных чисел, D>0
3) - они в поле Комплексных чисел, D<0
И еще можно по теореме Виета сделать.

"Зануда программист": сперва D проверьте, потом квадратный корень считайте.

раскрыть ветку (12)
Автор поста оценил этот комментарий

Зануда программист: надо было написать, что это называется guard expression )

Автор поста оценил этот комментарий

Да, вы абсолютно правы по всем пунктам, спасибо! Но почему-то и так работает, видимо Пайтон работает и  с комплексными числами. Но, снова Вы правы, это моё упущение.

раскрыть ветку (10)
Автор поста оценил этот комментарий

"Пайтон работает и с комплексными числами" - круто, если убрать проверку D, то что выведет:
x^2+x+2=0

раскрыть ветку (9)
1
Автор поста оценил этот комментарий

Первый корень уравнения = -0.50+1.32j

Второй корень уравнения = -0.50-1.32j

раскрыть ветку (8)
Автор поста оценил этот комментарий

Офигеть, прям букву j выводит?
*ладно, хоть и мнимая единица - i.

раскрыть ветку (7)
1
DELETED
Автор поста оценил этот комментарий

прикольно, да? Мне терь тоже интересно посмотреть. Надо пайтончик прикрутить себе.

Автор поста оценил этот комментарий

выводит. Я правда не знаю, что это значит =D

раскрыть ветку (5)
Автор поста оценил этот комментарий

Комплексные числа - расширение поля действительных чисел за счет добавления мнимой единицы - i (обозначение). Причем i^2 = -1.

раскрыть ветку (4)
Автор поста оценил этот комментарий

Я прочитал Ваш комментарий и он все ещё мне не понятен =D

раскрыть ветку (2)
Автор поста оценил этот комментарий
А сейчас?
раскрыть ветку (1)
Автор поста оценил этот комментарий

А сейчас я знаю что такое комплексные числа и мнимая единица)

Автор поста оценил этот комментарий

Спасибо, я обязательно перечитаю этот комментарий через год и надеюсь, что пойму тогда :)

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку