
Artem
31.03.2017
10:16:46
меня угнетает такой подход) в чате никто не ответил правильно за порядочное время - значит, надо будет спросить на собеседовании! наверняка от знания этого момента зависит, хороший ли человек питонист

Lulz
31.03.2017
10:17:32
вы все видели?

Nikolay
31.03.2017
10:18:29

Google

Nikolay
31.03.2017
10:19:05
Ему видимо вкайф караться в гавне

Artem
31.03.2017
10:19:16
вот собеседуя на сишника/крестовика, имеет смысл спрашивать разное неочевидное говно

Nikolay
31.03.2017
10:19:27
Да

Artem
31.03.2017
10:19:30
потому что легаси си(++) код им полон всегда
а с питоном все иначе)

Lulz
31.03.2017
10:20:07
у меня знакомый с фамилии такой же(Борзилов) подобное кидал в чатик
всякие задачки
!

Artem
31.03.2017
10:20:57
занимательный факт

Lulz
31.03.2017
10:21:15
для чатика по питону

Artem
31.03.2017
10:21:18
его тоже можно приберечь для вопроса на собеседовании

Lulz
31.03.2017
10:21:40
кого? Леху или легаси си?

Artem
31.03.2017
10:21:54
обоих

Google

Lulz
31.03.2017
10:22:14
Леха == легаси си

Spacehug
31.03.2017
10:23:02
Леха = Леха » легаси си
(Не знаю Леху, есичо)

Lulz
31.03.2017
10:23:23
он тебя знает

Spacehug
31.03.2017
10:23:29
А хурма та будет равна 1: 2, 2:1, 4:4

Vasiliy
31.03.2017
10:31:16
А если скажут "нет, определенное", говори "смотря по какому стандарту"
Это уже 3 из 4 будет

Centrino
31.03.2017
10:35:01
спасибо за лайфхак

Lulz
31.03.2017
10:39:48
+

Aragaer
31.03.2017
10:40:50
есть разница между undefined behavior и implementation defined
первое - неопределенное поведение. Второе - зависит от компилятора и библиотек, но если какое-то поведение есть, то оно точно останется таким
пример implementation defined - передача нуля, отрицательного числа или очень большого числа в системный вызов listen

Vasiliy
31.03.2017
10:43:01
Есть ещё unspecified behavior, кроме этого
Если уж совсем точным быть

Aragaer
31.03.2017
10:45:02
а еще можно делать загадочные вопросы вида - "вот эта загадочная конструкция что сделает? неправильно, вполне конкретную штуку"
типа float x = 0.1; *(char *) &x = 2; printf("%f\n", x);

Rocket
31.03.2017
10:46:08

Vasiliy
31.03.2017
10:46:17
Ну если ты не компиляторщика берёшь и не профессионального легаси-ассенизатора, это бессмысленные вопросы

Aragaer
31.03.2017
10:46:41
угу

Google

Aragaer
31.03.2017
10:47:08
но человек должен сказать "ой, я не знаю точно внутренний формат флоата", а не "все навернется, так делать нельзя"

Spacehug
31.03.2017
10:47:15

Vasiliy
31.03.2017
10:47:59

Centrino
31.03.2017
10:48:14
-почему вы пришли в нашу компанию?
-я Легаси-ассенизатор - археолог

Vasiliy
31.03.2017
10:48:45

Aragaer
31.03.2017
10:49:38
эмбеддед программист тоже вполне должен сообразить
если О_о, то человек видимо не очень понимает, что происходит внутри компьютера

Vasiliy
31.03.2017
10:50:09
Или геймдев старой закалки

Aragaer
31.03.2017
10:50:21
мы говорим про С и С++
в которых указатели и байтики это суровая правда жизни
я не говорю, что такой код писать надо. Но как минимум надо понимать, что такой код совершенно легален и его результат вполне корректно определен

Vasiliy
31.03.2017
10:51:56
Полагаться на определённый формат флоата в большинстве случаев это всё-таки о_О

Vasiliy
31.03.2017
10:52:16
Не в смысле не понимаю, а в смысле но зачем
Близко к железу, да, бывает

Aragaer
31.03.2017
10:53:01
эм
я не говорю о формате флоата
правильный ответ - "мы поменяем один байт во флоате, но это все равно останется каким-то флоатом, просто я не знаю каким"
я сам формат флоата узнал от силы месяц назад - раньше как-то без этого жил.

Artem
31.03.2017
10:54:37
Еще задачка для ценителей
def func():
return [4]
a=1
a=a[0]=func()
b = eval(str(a))простой вопрос: чему равно а?
вопрос сложнее: чему равно b?
второй вопрос только для 3 питона

Google

Aragaer
31.03.2017
10:55:39
мне почему-то кажется, что a=4, а b="4"
или b=4

Spacehug
31.03.2017
10:56:10
a=a[0]=func()
Да ну тебя нафиг а )))

Aragaer
31.03.2017
10:56:12
хотя не, очень странно выглядит

Andrew
31.03.2017
10:56:14

Artem
31.03.2017
10:56:31
Если без запуска, то респект
Если с запуском, то непонятно, зачем.

Aragaer
31.03.2017
10:57:32
ок, я не понимаю, что тут происходит

Admin
ERROR: S client not available

Aragaer
31.03.2017
10:57:53
b=a[0]=func() не пашет
a=a[0]=[4] пашет
a=a[0]=[1,1]
тоже пашет

Andrew
31.03.2017
11:00:08

Artem
31.03.2017
11:01:20

Vasiliy
31.03.2017
11:07:17
а, еще про заковыристые вопросы про c++. хорошо знать разницу между sequence points (c++<11) и sequencing (c++11 и дальше). Почти совершенно бесполезно, но впечатляет.

Artem
31.03.2017
11:08:28
Разница в названии
Разве нет?

Andrey
31.03.2017
11:08:44
а разгадка проста
>>> def foo():
... a = 1
... a = a[0] = f()
...
...
>>> import dis
>>>
>>>
>>> dis.dis(foo)
3 0 LOAD_CONST 1 (1)
3 STORE_FAST 0 (a)
4 6 LOAD_GLOBAL 0 (f)
9 CALL_FUNCTION 0
12 DUP_TOP
13 STORE_FAST 0 (a)
16 LOAD_FAST 0 (a)
19 LOAD_CONST 2 (0)
22 STORE_SUBSCR
23 LOAD_CONST 0 (None)
26 RETURN_VALUE

Artem
31.03.2017
11:09:09
Чуваки сказали, что тип сиквенс поинт это неочевидно звучит, поэтому давайте запутаем вас переименованием терминов

Google

Lulz
31.03.2017
11:09:11
ээээ ну круто

Vasiliy
31.03.2017
11:09:54

Artem
31.03.2017
11:10:57
А где почитать? С ходу не гуглится, по стандарту искать долго

Сергей
31.03.2017
11:11:08
/help

Vasiliy
31.03.2017
11:11:47
http://stackoverflow.com/questions/4176328/undefined-behavior-and-sequence-points/4183735#4183735
если совсем грубо, стандарт раньше говорил про точки, в которых комплитор должен остановить и закончить все эффекты и сайд эффекты, а сейчас стандарт описывает порядок выполнения (в общем случае неоднозначно), а компилятор должен такие вещи сам понимать исходя из правил

Artem
31.03.2017
11:16:15
Ага, я понял

Andrew
31.03.2017
11:28:21
раз тут сегодня задают каверзные вопросики) у меня тоже парочка есть)
x = [1,2,3,4]
x.append(x)
что тут будет?
x = {}
y = {}
x['y']=y
y['x']=x
и тут?
x = 7
7 == x > 4
что вернет?

Centrino
31.03.2017
11:30:11

Сергей
31.03.2017
11:30:25
в 1 будет адок)
3 - тру
2 хз
тоже какая-то бнопня

Скрудж
31.03.2017
11:31:23
Во 2 и там, и тут будут пустые словари
Нет?

Centrino
31.03.2017
11:31:43
нет

Сергей
31.03.2017
11:31:50
2 там будет аналогично первому
только не со списком, а со словарем

Centrino
31.03.2017
11:32:07
я никогда не задумывался что кто-то будет класть список сам в себя

Сергей
31.03.2017
11:33:06
ну а так как там всего лишь ссылка на список, то будет там странная штука

Centrino
31.03.2017
11:33:09
def func():
return [4]
a=1
a=a[0]=func()
Как вот это работает?
не понимаю по dis что происходит