Нужна помощь Python программистов

[ Версия для печати ]
Добавить в Telegram Добавить в Twitter Добавить в Вконтакте Добавить в Одноклассники
Страницы: (13) « Первая ... 5 6 [7] 8 9 ... Последняя »  К последнему непрочитанному [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]
hime
21.05.2022 - 18:50
1
Статус: Offline


Хохмяч

Регистрация: 6.03.06
Сообщений: 5387
ipv4
яволь. в старье, пишут, байт мог быть 4 бита. сейчас таких, наверное, нет.
ещё бывает, что sizeof(char) == sizeof(short) == sizeof(int). слава яйцам, такое мало кому грозит.
 
[^]
ipv4
21.05.2022 - 18:55
1
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7305
Цитата (Constcat @ 21.05.2022 - 18:50)
ipv4
Цитата
Кому-то надо заново учиться... Это для вас сложно???? )))))

Ну, как сказать. Все зависит от объема текста.
Когда исходников больше двух гиг и нескольких тысяч файлов, то такие приемы сильно замедляют поддержку кода.
Особенно, когда хочется посмотреть значения переменных при отладке, а их запихнули вместе с присвоением в условие, да еще и по несколько в одной строке.

К - квалификация.

В принципе, для этого придумано понятие "coding rules" - свод правил, облегчающих, в том числе, сопровождение. В частности, в моём примере ваше внимание должно было привлечь наличие двойных скобок в условии. )))

Ну, и, если квалификация разработчиков и инженеров сопровождения предполагает наличие инженеров с образованием "C++ за 21 день", то да - такие конструкции, скорее всего, будут запрещены и отсеяны на этапе код ревью. )))
 
[^]
ipv4
21.05.2022 - 18:59
0
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7305
Цитата (Constcat @ 21.05.2022 - 18:42)
....Но вот это вот "посылаются сообщения" - надавать бы подзатыльников тем, кто это придумал и реализовал.
У меня по этому поводу очень длинный текст в голове есть с аргументами и матерными вставками.....

Это именно та причина, по которой Objective C не является тем инструментом, который я использую в своих проектах. Благо, мой статус в компании позволяет мне принимать решения о выборе инструментов, платформы и библиотек единолично. )))

P.S. Ну, понятно, что всё это - до тех пор, пока не стоит вопросов о разработке мобильных приложений для огрызков.... а, в сложившейся ситуации это вообще маловероятно. )))

Это сообщение отредактировал ipv4 - 21.05.2022 - 19:05
 
[^]
ipv4
21.05.2022 - 19:00
0
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7305
Цитата (hime @ 21.05.2022 - 18:50)
ipv4
яволь. в старье, пишут, байт мог быть 4 бита. сейчас таких, наверное, нет.
ещё бывает, что sizeof(char) == sizeof(short) == sizeof(int). слава яйцам, такое мало кому грозит.

Но это означает, что не char равен двум байтам, а int имеет размер в один байт. )))

P.S. И, да... не char мог быть 4 битам, а машинное слово ровнялось 4 битам. Intel 4040, например. Однако, стандарт C/C++ устаналивает минимальный размер байта в 8 бит. Так что, char в 4 бита - это фантастика. )))

Это сообщение отредактировал ipv4 - 21.05.2022 - 19:04
 
[^]
Constcat
21.05.2022 - 19:05
0
Статус: Offline


Ярила

Регистрация: 9.09.12
Сообщений: 1465
ipv4
Цитата
В частности, в моём примере ваше внимание должно было привлечь наличие двойных скобок в условии. )))

Да причем тут это?
Однозначно такой код отлаживается сложнее.
А когда человек увлекается и начинает все лепить в одно место, например, вызов функции, кастинг результата к другому типу, присвоение, да еще и все это сразу же в if запихивает, это добавляет совершенно ненужных сложностей.
Лично я считаю, что экономить строки уже давно не нужно.
И разбить вызов/кастинг/присвоение/условие на соответствующее количество операций значительно улучшает читаемость кода. И упрощает модификацию.
 
[^]
Aberrant
21.05.2022 - 19:06
0
Статус: Offline


На фоксе! Всегда!

Регистрация: 3.10.20
Сообщений: 2782
Цитата (ipv4 @ 21.05.2022 - 18:34)
Цитата (Aberrant @ 21.05.2022 - 18:27)
Цитата (ipv4 @ 21.05.2022 - 18:07)
Цитата (Aberrant @ 21.05.2022 - 18:04)
блин, опять ты меня тролишь.

я про проверку диапазона.
а не про весь сценарий.

Не, это ты тупишь. Я - тоже про проверку диапазона, а не про весь сценарий.

Код

int value;

do
  std::cin >> value;
while (value < 100 or value > 1000000);


За сколько итераций выполнится цикл? Ответь, пожалуйста, на этот вопрос. Можно развёрнуто.

не вырывай из контекста, пожалуйста.

ты используешь while для выхода из цикла при совпадении условия,
но в задачке ТС`а есть вывод ошибки при неверном вводе.

и тут просто удобнее использовать конструкцию if/else
чтобы остановиться, сообщить "ошибка ввода", вернуться к вводу
или продолжить с проверенным в условии значением.

Ты переобуваешься просто в прыжке. То у тебя "абстрактная проверка на диапазон в цикле", то - "в задачке ТСа удобнее использовать условие". )))

Ща у тебя вообще должно крышу снести. Здесь есть и условие, и - вуаля! - цикл:
Код

int value;
bool err;

do
{
  std::cin >> value;
  if ((err = value < 100 || value > 1000000))
     std::cout << "Ошибка ввода суммы! Попробуйте ещё раз";
} while (err);

так я то готов и переобуться.
если не прав, то разобравшись, соглашаюсь, что был не прав и принимаю верное решение.

да, крышу уже сносит: начали с пайтона, как-то незаметно ушли в си
и опять вне контекста


*пишу для вэб, т.е. php, js
т.е. while для меня, это почти всегда цикл с инкрементом

и если мне нужно просто проверить диапазон и в зависимости от результата что-то сделать, то привычнее использовать if/else,
а если всё чуть проще, то вообще обходиться тернарным оператором
 
[^]
Constcat
21.05.2022 - 19:06
2
Статус: Offline


Ярила

Регистрация: 9.09.12
Сообщений: 1465
ipv4
Цитата
P.S. Ну, понятно, что это пока не стоит вопросов о разработке мобильных приложений для огрызков.... а, в сложившейся ситуации это вообще маловероятно. )))

К счастью, даже в Apple поняли, что наворотили с этим Objective C. И активно проталкивают Swift.
 
[^]
Aberrant
21.05.2022 - 19:08
0
Статус: Offline


На фоксе! Всегда!

Регистрация: 3.10.20
Сообщений: 2782
Цитата (Constcat @ 21.05.2022 - 19:05)
ipv4
Цитата
В частности, в моём примере ваше внимание должно было привлечь наличие двойных скобок в условии. )))

Да причем тут это?
Однозначно такой код отлаживается сложнее.
А когда человек увлекается и начинает все лепить в одно место, например, вызов функции, кастинг результата к другому типу, присвоение, да еще и все это сразу же в if запихивает, это добавляет совершенно ненужных сложностей.
Лично я считаю, что экономить строки уже давно не нужно.
И разбить вызов/кастинг/присвоение/условие на соответствующее количество операций значительно улучшает читаемость кода. И упрощает модификацию.

во! тут уже про читаемость кода,
а я с тернарным оператором влез lol.gif
подлил маслица.
 
[^]
ipv4
21.05.2022 - 19:08
0
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7305
Цитата (Constcat @ 21.05.2022 - 19:05)
Лично я считаю, что экономить строки уже давно не нужно.
И разбить вызов/кастинг/присвоение/условие на соответствующее количество операций значительно улучшает читаемость кода. И упрощает модификацию.

Вот прямо экономить - да, не нужно. Во всём нужен баланс. Писать совершенно тупо - тоже, такое себе. Может приводить к раздуванию кода, что ни фига не упрощает его понимание, потому что код уже не обозрим "одним взглядом". )))

Ладно, здесь можно спорить до бесконечности. В каждой избушке свои погремушки. Лично в моём примере и лично мне, присвоение прямо вот напросилось туда. lol.gif
 
[^]
ipv4
21.05.2022 - 19:10
2
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7305
Цитата (Aberrant @ 21.05.2022 - 19:06)
да, крышу уже сносит: начали с пайтона, как-то незаметно ушли в си
и опять вне контекста

Тебе не пофиг, на каком языке написал элементарный кусок кода? Ты ж, вроде, не ТС. )))
 
[^]
ipv4
21.05.2022 - 19:12
0
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7305
Цитата (Aberrant @ 21.05.2022 - 19:08)
Цитата (Constcat @ 21.05.2022 - 19:05)
ipv4
Цитата
В частности, в моём примере ваше внимание должно было привлечь наличие двойных скобок в условии. )))

Да причем тут это?
Однозначно такой код отлаживается сложнее.
А когда человек увлекается и начинает все лепить в одно место, например, вызов функции, кастинг результата к другому типу, присвоение, да еще и все это сразу же в if запихивает, это добавляет совершенно ненужных сложностей.
Лично я считаю, что экономить строки уже давно не нужно.
И разбить вызов/кастинг/присвоение/условие на соответствующее количество операций значительно улучшает читаемость кода. И упрощает модификацию.

во! тут уже про читаемость кода,
а я с тернарным оператором влез lol.gif
подлил маслица.

Да, ладно! Подлил он. С точки зрения читаемости кода определённые моменты в виде тернарного оператора читаются проще. Для того он, собственно, и придуман. ))

Пример: a = b != 0xff ? b : default_a ;
Вот через if then else устанешь писать, а также получишь 4 строки вместо одной короткой.

Это сообщение отредактировал ipv4 - 21.05.2022 - 19:13
 
[^]
Aberrant
21.05.2022 - 19:13
0
Статус: Offline


На фоксе! Всегда!

Регистрация: 3.10.20
Сообщений: 2782
Цитата (ipv4 @ 21.05.2022 - 19:10)
Цитата (Aberrant @ 21.05.2022 - 19:06)
да, крышу уже сносит: начали с пайтона, как-то незаметно ушли в си
и опять вне контекста

Тебе не пофиг, на каком языке написал элементарный кусок кода? Ты ж, вроде, не ТС. )))

ну, читать то пофигу,
но в том же PHP вот такая конструкция: if ((err = value < 100 || value > 1000000))
уже не прокатит.
и синтаксис мне вообще мозг взрывает - что означают вторые скобки?
 
[^]
Aberrant
21.05.2022 - 19:14
0
Статус: Offline


На фоксе! Всегда!

Регистрация: 3.10.20
Сообщений: 2782
Цитата (ipv4 @ 21.05.2022 - 19:12)
Да, ладно! Подлил он. С точки зрения читаемости кода определённые моменты в виде тернарного оператора читаются проще. Для того он, собственно, и придуман. ))

Пример: a = b != 0xff ? b : default_a ;
Вот через if then else устанешь писать, а также получишь 4 строки вместо одной короткой.

ага, только в нашем контексте будет вложенный тернарный оператор,
что частенько приводит к запою.
 
[^]
ipv4
21.05.2022 - 19:17
0
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7305
Цитата (Aberrant @ 21.05.2022 - 19:13)
и синтаксис мне вообще мозг взрывает - что означают вторые скобки?

В Си скобок может быть хоть 20. В этой ситуации достаточно одних, на самом деле. Просто, к примеру g++ начинает ругаться (предупреждениями): "ой, вей! чувак, посмотри - у тебя здесь присваивание. может, ты имел в виду сравнение?". Вторые скобки заставляют компилятор замолчать - он уже понимает, внутри вторых скобок выражение с присваиванием, результат которого интерпретируется как булька и является условием оператора if. Как-то так. )))

Это сообщение отредактировал ipv4 - 21.05.2022 - 19:22
 
[^]
ipv4
21.05.2022 - 19:19
0
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7305
Цитата (Aberrant @ 21.05.2022 - 19:14)
Цитата (ipv4 @ 21.05.2022 - 19:12)
Да, ладно! Подлил он. С точки зрения читаемости кода определённые моменты в виде тернарного оператора читаются проще. Для того он, собственно, и придуман. ))

Пример: a = b != 0xff ? b : default_a ;
Вот через if then else устанешь писать, а также получишь 4 строки вместо одной короткой.

ага, только в нашем контексте будет вложенный тернарный оператор,
что частенько приводит к запою.

Уебать моск фиговым программированием можно не только компилятору, а также человеку, этот код читающему. И от языка программирования это не зависит. )))

Даже на бейсике можно устроить уходящую в бесконечность (справа) структуру вложенных if'ов... А ещё есть GOTO.
lol.gif

Это сообщение отредактировал ipv4 - 21.05.2022 - 19:19
 
[^]
Aberrant
21.05.2022 - 19:23
0
Статус: Offline


На фоксе! Всегда!

Регистрация: 3.10.20
Сообщений: 2782
блин, мне когда-то казалось так удобно по строкам скакать

но, это быстро прошло, когда код перестал помещаться на одни экран
 
[^]
ipv4
21.05.2022 - 19:26
0
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7305
Цитата (Aberrant @ 21.05.2022 - 19:23)
....когда код перестал помещаться на одни экран

А должен. Точнее, ящитаю, обязанбля! Если это не так, то это - фиговый код.
 
[^]
hime
21.05.2022 - 19:27
2
Статус: Offline


Хохмяч

Регистрация: 6.03.06
Сообщений: 5387
Цитата (Aberrant @ 21.05.2022 - 19:06)
да, крышу уже сносит: начали с пайтона, как-то незаметно ушли в си
и опять вне контекста

ТС съебался в ужасе, приходится развлекаться самим

Нужна помощь Python программистов
 
[^]
ipv4
21.05.2022 - 19:34
0
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7305
Цитата (Aberrant @ 21.05.2022 - 19:23)
блин, мне когда-то казалось так удобно по строкам скакать

но, это быстро прошло, когда код перестал помещаться на одни экран

Давай так, я бы задачку ТСа по проверке пользовательского ввода реализовал бы примерно так:
Код

int value;
while (!is_valid (value = read_value()));

Всё. Две строки, всем всё понятно. И, никакой ёбли мозга 100500 операторами if.

P.S. Да, ща некоторые могут начать топить за то, что присваивание внутри передачи фактических значений в функцию "слишком сложно", но оно сюда просится. И, главное - очень обозримо и понятно.

Это сообщение отредактировал ipv4 - 21.05.2022 - 19:36
 
[^]
ipv4
21.05.2022 - 19:37
1
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7305
Цитата (hime @ 21.05.2022 - 19:27)
Цитата (Aberrant @ 21.05.2022 - 19:06)
да, крышу уже сносит: начали с пайтона, как-то незаметно ушли в си
и опять вне контекста

ТС съебался в ужасе, приходится развлекаться самим



P.S. Ну и, походу, развлечение закончилось. Всем скучно )))

Это сообщение отредактировал ipv4 - 21.05.2022 - 19:42
 
[^]
hime
21.05.2022 - 19:43
3
Статус: Offline


Хохмяч

Регистрация: 6.03.06
Сообщений: 5387
Цитата (ipv4 @ 21.05.2022 - 19:34)
Давай так, я бы задачку ТСа по проверке пользовательского ввода реализовал бы примерно так:
Код

int value;
while (!is_valid (value = read_value()));

Всё. Две строки, всем всё понятно. И, никакой ёбли мозга 100500 операторами if.

P.S. Да, ща некоторые могут начать топить за то, что присваивание внутри передачи фактических значений в функцию  "слишком сложно", но оно сюда просится. И, главное - очень обозримо и понятно.

Скрытый текст
Комментарий забыл: /* не трогать, суки, я всё проверил! */


Нужна помощь Python программистов
 
[^]
Синтетик
21.05.2022 - 19:45
0
Статус: Offline


Ярила

Регистрация: 15.11.17
Сообщений: 21424
Цитата (Ежек @ 21.05.2022 - 13:25)
Доброго дня всем!
Недавно начал изучать основы ЯП Python, написал первую простенькую прогу алгоритма проверки пин-кода для банкомата...

Ишь куда замахнулся. Начни пока с расшифровки Mifare карт.
 
[^]
ipv4
21.05.2022 - 19:54
1
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7305
hime
Не, я не понял, в чём суть претензий. И да, комментариев в коде не пишу, и своих не заставляю. Код комментируется только в тех случаях, когда реально "есть нюансы". ))))

P.S. И, да: "я всё проверил" не канает. Надо так: "здесь мы ржевского придержим, иначе в пятой главе наташа пизданётся с лестницы".

Это сообщение отредактировал ipv4 - 21.05.2022 - 19:55
 
[^]
Aberrant
21.05.2022 - 19:55
0
Статус: Offline


На фоксе! Всегда!

Регистрация: 3.10.20
Сообщений: 2782
Цитата (ipv4 @ 21.05.2022 - 19:34)
Цитата (Aberrant @ 21.05.2022 - 19:23)
блин, мне когда-то казалось так удобно по строкам скакать

но, это быстро прошло, когда код перестал помещаться на одни экран

Давай так, я бы задачку ТСа по проверке пользовательского ввода реализовал бы примерно так:
Код

int value;
while (!is_valid (value = read_value()));

Всё. Две строки, всем всё понятно. И, никакой ёбли мозга 100500 операторами if.

P.S. Да, ща некоторые могут начать топить за то, что присваивание внутри передачи фактических значений в функцию "слишком сложно", но оно сюда просится. И, главное - очень обозримо и понятно.

пайтон не компилируемый язык,
так что использование каких-то API вроде джанги легко может поднасрать там, где не ждал - там, где хотелось бы сэкономить время, можно наоборот получить ничем неоправданные затраты,
а возможно и совсем неочевидную дыру.

особенно фигово это сейчас для ТСа, которому учиться нужно, а не повышать уровень абстракции, чтобы окончательно оторваться от реальности.

 
[^]
ipv4
21.05.2022 - 19:59
1
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7305
Цитата (Aberrant @ 21.05.2022 - 19:55)
пайтон не компилируемый язык

Адмирал?

Цитата (Aberrant @ 21.05.2022 - 19:55)
так что использование каких-то API вроде джанги легко может поднасрать там, где не ждал - там, где хотелось бы сэкономить время, можно наоборот получить ничем неоправданные затраты,
а возможно и совсем неочевидную дыру

Демагогия в чистом виде. Причинно-следственных связей не улавливаю я. Всё тоже самое имеет место при использовании любых сторонних библиотек. От языка программирования не зависит.

Цитата (Aberrant @ 21.05.2022 - 19:55)
особенно фигово это сейчас для ТСа, которому учиться нужно, а не повышать уровень абстракции, чтобы окончательно оторваться от реальности.

ТСу не надо учиться. Уже говорил, вариантов ровно два: либо ТС всё умеет и просто ржёт, либо программировать ему нельзя. )))

Это сообщение отредактировал ipv4 - 21.05.2022 - 19:59
 
[^]
Понравился пост? Еще больше интересного в Телеграм-канале ЯПлакалъ!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) Просмотры темы: 6328
0 Пользователей:
Страницы: (13) « Первая ... 5 6 [7] 8 9 ... Последняя » [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]


 
 



Активные темы






Наверх