Как не надо писать калькулятор.

github.com — Как ни в коем случае не надо писать калькулятор.
Новости, Юмор | pyth2000 22:01 19.05.2016
36 комментариев | 166 за, 4 против |
a.v.v
дурачок »
#1 | 22:07 19.05.2016 | Кому: Всем
сколько у него еще работы впереди :)
MadBadger
надзор »
#2 | 22:07 19.05.2016 | Кому: Всем
Эпичный.
На ноль делить умеет? Я до конца не досмотрел, терпелки не хватило.
#3 | 22:14 19.05.2016 | Кому: Всем
Таблицы Брадиса наносят ответный удар.
pyth2000
не фашист »
#4 | 22:24 19.05.2016 | Кому: a.v.v
> сколько у него еще работы впереди :)

Труд всей жизни!!!
#5 | 22:26 19.05.2016 | Кому: MadBadger
Всё нормально, в конце убийца - садовник!
#6 | 22:26 19.05.2016 | Кому: Всем
Да ладно вам морить, чувак написал код и сгенерировал всё это дерьмо))
#7 | 22:34 19.05.2016 | Кому: Всем
[рыдает]

Автору предстоит множество чудных открытий!
#8 | 22:37 19.05.2016 | Кому: jujav4ik
Дворецкий!!!!
Crypt
Ебанько »
#9 | 22:49 19.05.2016 | Кому: Всем
Охренеть. Сколько же денег он получит?!?
#10 | 22:52 19.05.2016 | Кому: Всем
Молодца. Его в Америку заслать программером в ЦРУ и война станет бессмысленной. Нифига не успеют считая.
pyth2000
не фашист »
#11 | 23:03 19.05.2016 | Кому: Crypt
> Охренеть. Сколько же денег он получит?!?

Если построчная оплата, то такой самородок любого Брина разорит!!!
#12 | 23:04 19.05.2016 | Кому: MadBadger
> На ноль делить умеет? Я до конца не досмотрел, терпелки не хватило.

Да, причем правильно (т.е. различая бесконечность и неопределенное значение):
if num1 == 0 and sign == '/' and num2 == 0:
    print("0/0 = Undefined")

[...]
if num1 == 1 and sign == '/' and num2 == 0:
    print("1/0 = Inf")


Но вообще конечно оно как-то не энтерпрайзно сделано:
1. можно было сделать XML-конфиги для каждой операции - ну чтобы XML был
2. прописать в них операнды и ссылку на id результата
3. сами результаты держать в базе данных: ну чтобы не повторять значения типа 5+1=6, 2*3=6,14-8=6  - вместо этого в op_multiply.xml будет линия
<case operand1="2" operand2="3" resultId="235"/>
, а в базе данных таблица numbers с object_id=235, object_type=number и json_serialized_object_value='{"value":6}'
4. для каждого XML-конфига каждой операции создать свой сервер-процесс с использованием Django - ну чтобы операции можно было распараллелить
5. сделать мастер-процесс который все сервер-процессы опрашивает через SOAP, причем серверы писать как сейчас на Питоне, а мастер на Руби с рельсами
pyth2000
не фашист »
#13 | 23:09 19.05.2016 | Кому: Jonny
> Да ладно вам морить, чувак написал код и сгенерировал всё это дерьмо))

Тогда бы у него калькулятор умел считать от −(2^31) до (2^31) − 1!!!
#14 | 23:11 19.05.2016 | Кому: Всем
И ведь не лень же было!
#15 | 23:26 19.05.2016 | Кому: Всем
[censored]

Как надо писать калькулятор!!!
#16 | 23:27 19.05.2016 | Кому: Off
> И ведь не лень же было!

Там на самом деле немного писать надо было. Двойной цикл и несколько строчек до и после.
#17 | 23:41 19.05.2016 | Кому: tonyware
> мастер на Руби с рельсами

Экий ты извращуга!!! :-)
#18 | 00:26 20.05.2016 | Кому: mici
Ты думаешь в Штатах таких мало? )))
#19 | 00:59 20.05.2016 | Кому: Пальтоконь
> Экий ты извращуга!!! :-)

Был бы настоящим извращугой - писал бы мастер на ASP.NET !!!
#20 | 01:23 20.05.2016 | Кому: tonyware
> Был бы настоящим извращугой - писал бы мастер на ASP.NET !!!

Ну, если ты УЖЕ умеешь на ASP.NET.... :-)
#21 | 01:32 20.05.2016 | Кому: Jonny
> Там на самом деле немного писать надо было. Двойной цикл и несколько строчек до и после.

[вспоминает буйную молодость]
На Питоне такое можно даже одной строчкой сгенерировать:
print("\n".join(["if num1 == %d and sign == '%s' and num2 == %d:\n\tprint(\"%d%s%d = %s\")" % (x,o,y,x,o,y,('Undefined','Inf')[min(x,1)] if '/'==o and 0==y else str(eval("float(%d) %s float(%d)" % (x,o,y)))) for o in '+ - * /'.split(' ') for x in range(51) for y in range(51)]))
#22 | 01:38 20.05.2016 | Кому: Пальтоконь
> Ну, если ты УЖЕ умеешь на ASP.NET.... :-)

Не, я убежденный гетеросексуал !!!!!!!!!!
#23 | 03:05 20.05.2016 | Кому: Jonny
> Там на самом деле немного писать надо было. Двойной цикл и несколько строчек до и после.

- сказал капитан очевидность! :)
#24 | 03:47 20.05.2016 | Кому: Всем
шедеврально!
#25 | 04:31 20.05.2016 | Кому: Всем
Сферический индикод в вакууме ;)
#26 | 04:34 20.05.2016 | Кому: Jonny
>Там на самом деле немного писать надо было. Двойной цикл и несколько строчек до и после.

Тройной цикл.
#27 | 05:13 20.05.2016 | Кому: Всем
Юмор со ссылкой на Гитхаб? Вотт, ты в очередной раз превзошёл сам себя.

Разве возможно что-то интеллектуально более изысканное? Разве что лёгкий и непринуждённый диалог о бабах с wolfram alpha. :)
#28 | 05:23 20.05.2016 | Кому: Lion17
> Тройной цикл.

Ну да, тройной
#29 | 05:49 20.05.2016 | Кому: tonyware
> Но вообще конечно оно как-то не энтерпрайзно сделано:
> 1. можно было сделать XML-конфиги для каждой операции - ну чтобы XML был
> 2. прописать в них операнды и ссылку на id результата
> 3. сами результаты держать в базе данных: ну чтобы не повторять значения типа 5+1=6, 2*3=6,14-8=6  - вместо этого в op_multiply.xml будет линия
> <case operand1="2" operand2="3" resultId="235"/>
> , а в базе данных таблица numbers с object_id=235, object_type=number и json_serialized_object_value='{"value":6}'
> 4. для каждого XML-конфига каждой операции создать свой сервер-процесс с использованием Django - ну чтобы операции можно было распараллелить
> 5. сделать мастер-процесс который все сервер-процессы опрашивает через SOAP, причем серверы писать как сейчас на Питоне, а мастер на Руби с рельсами

[censored]
#30 | 05:51 20.05.2016 | Кому: Всем
Монахи Тибета говорят, что когда код этого калькулятора будет дописан, настанет конец света, а человек, его дописавший сравняется с буддой!!!
#31 | 06:27 20.05.2016 | Кому: Всем
[трясёт бухгалтерский CASIO]

Как в нём поместилась эта программа?
#32 | 06:32 20.05.2016 | Кому: Всем
275 звезд. 35 ФОРКОВ!!! ))))) Это успех!
#33 | 09:19 20.05.2016 | Кому: Всем
Ждем my_first_compiler.py
#34 | 09:37 20.05.2016 | Кому: Всем
Такую бы энергию, да в мирное русло.
#35 | 12:44 20.05.2016 | Кому: zavhoz
И будет сражаться с Одином!
#36 | 20:29 20.05.2016 | Кому: Всем
В лени его не обвинишь.
Войдите или зарегистрируйтесь чтобы писать комментарии.