Ответы
Ответ дал:
0
===== PASCALABC.NET ======
begin
var x := ReadReal('x =');
var y: real;
if x < 0 then
y := Sin(x)
else if x <= 1 then
y := x ** 3
else
y := x * x - Cos(x);
Print('Y =', y)
end.
"x in [x for x in range(1, 11)]" - на самом деле "x in range(1, 11)"
В python-e 3.8.3 и мой вариант работает, проверяет есть ли x в списке [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
В python-e 3.8.3 и мой вариант работает, проверяет есть ли x в списке [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Вот с консоли
>>> x = 10
>>> x in [x for x in range(1, 11)]
True
>>> x = 10
>>> x in [x for x in range(1, 11)]
True
Проблема (кроме абсолютной нечитаемости) в том, что x in [x for x in range(1, 11)] работает медленнее, чем x in range(1, 11). Второе где-то внутри разворачивается примерно в 1 <= x and x < 11, а x in [x for x in range(1, 11)] в худшем случае должно пробежать по всем элементам списка [x for x in range(1, 11)], чтобы сказать, есть там x или нет
И не поспоришь, это был пример синтаксиса
Для других случаев может быть хорошо
А можно случай привести, где это было бы хорошо?
Понравилась фраза, прочитанная на одном из форумов: "Питон - это образец изъяснений в стиле магистра Йоды: “а присвоить если a меньше b минимуму нужно иначе b”
Вот и мне интересно, где из range нужно делать массив и зачем
Про Йоду немного неправда, или я не понимаю, о чем суть. Если тернарный оператор - то необычно тем, кто привык по-другому, но читается нормально: "a if a > b else b" = "a, если a > b, иначе b"
Йода - это скорее про какой-нибудь хаскель
Про Йоду немного неправда, или я не понимаю, о чем суть. Если тернарный оператор - то необычно тем, кто привык по-другому, но читается нормально: "a if a > b else b" = "a, если a > b, иначе b"
Йода - это скорее про какой-нибудь хаскель
*не массив, а список
Про Йоду вырвано из контекста, там говорилось про оператор a = min if a < b else b
Ответ дал:
0
var x, y: real;
begin
readln(x);
if x < 0 then y:= sin(x) else
if x <= 1 then y:= x * x * x else
if x > 1 then y:= x * x - cos(x);
writeln(y)
end.
if x < 0 then уден проверено в первой ветке, поэтому писать еще раз if (0 <= x) абсолютно не нужно.
уже проверено
Точно, благодарю
Вас заинтересует
1 год назад
1 год назад
1 год назад
1 год назад
3 года назад
3 года назад
8 лет назад