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

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


Ярила

Регистрация: 16.08.11
Сообщений: 3812
Цитата (Ежек @ 21.05.2022 - 20:08)
Цитата (rommel13 @ 21.05.2022 - 17:55)
надеюсь ТС офнулся чтобы красивый и правильной код написать

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

При чем тут питон? ТС, тебе уже кто только мог намекнул что строчек дохуа.
 
[^]
ipv4
21.05.2022 - 18:17
0
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7305
Цитата (hime @ 21.05.2022 - 18:15)
Цитата (Constcat @ 21.05.2022 - 18:10)
ipv4
Цитата
Такое и на Си прокатит, кста )))
Ответ - 51.

А разве char всегда размером байт?

формально нет, но на практике хер где найдёшь, где сишный char не один байт.

Я иногда использую. Когда надо "красивую" сигнатуру где-нибудь обозначить.
Типа: s.singature = 'MZ'
)))
 
[^]
Constcat
21.05.2022 - 18:19
0
Статус: Offline


Ярила

Регистрация: 9.09.12
Сообщений: 1465
ipv4
Цитата
Пример конструкции - студию. Возможно, просто, вы не совсем вникли в алгоритм. Это, прост, самое очевидное предположение. )

Я выше дополнил.
Заглушки так у нас было принято делать.
Типа, тут в дальнейшем могут быть и диапазоны, и пр. выборки, но сейчас одно значение. Ставится while, чтобы не забыть.
Код
while <условие>:
 <пачка операторов>
 <без всякого влияние на условие>
 <break>

<дальше пошли>


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


Ярила

Регистрация: 4.11.09
Сообщений: 7305
Цитата (hime @ 21.05.2022 - 18:15)
формально нет, но на практике хер где найдёшь, где сишный char не один байт.

Более того, постановка вопроса не корректна.

Сишный char - всегда один байт. Всегда и безусловно. Но, вот, символьная константа может иметь тип int, если она обозначена двумя буквами, заключёнными в апострофы.

Так будет точнее.

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


Ярила

Регистрация: 9.09.12
Сообщений: 1465
ipv4
Цитата
Тот, который '1' - да, всегда. ))))
Даже если предположить, что какой-нибудь ебанутый компилятор воспринимает '1' как UTF-16 или UTF-32 символ, то его значение один хер будет равно 49 )))

После многолетнего секса с кроссплатформенностью между виндой и маком, я уже далеко ни в чем не уверен.
 
[^]
БратецЛис
21.05.2022 - 18:22
0
Статус: Offline


Ярила

Регистрация: 16.08.11
Сообщений: 3812
Цитата (Constcat @ 21.05.2022 - 20:19)

Код
while <условие>:
 <пачка операторов>
 <без всякого влияние на условие>

<дальше пошли>

А условие из серии 2==3 ?
UPD
«Без всякого влияния на условие» предполагает что если в цикл нырнуть то из него не вынырнешь потом.
UPD2
Понятно. В каждой избушке свои погремушки.

Это сообщение отредактировал БратецЛис - 21.05.2022 - 18:25
 
[^]
Constcat
21.05.2022 - 18:23
-1
Статус: Offline


Ярила

Регистрация: 9.09.12
Сообщений: 1465
БратецЛис
Цитата
А условие из серии 2==3 ?

break забыл вставить.
Выше подправил.

Это сообщение отредактировал Constcat - 21.05.2022 - 18:24
 
[^]
hime
21.05.2022 - 18:25
1
Статус: Offline


Хохмяч

Регистрация: 6.03.06
Сообщений: 5386
Цитата (ipv4 @ 21.05.2022 - 18:20)
Цитата (hime @ 21.05.2022 - 18:15)
формально нет, но на практике хер где найдёшь, где сишный char не один байт.

Более того, постановка вопроса не корректна.

Сишный char - всегда один байт. Всегда и безусловно. Но, вот, символьная константа может иметь тип int, если она обозначена двумя буквами, заключёнными в апострофы.

Так будет точнее.

да, я проебался, скорее всего. там хитрая формулировка, что-то вроде байт не всегда 8 бит, давно читал. но в стандарт не полезу. alk.gif
надо проверять CHAR_BIT для надёжности, во.

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


Ярила

Регистрация: 4.11.09
Сообщений: 7305
Цитата (Constcat @ 21.05.2022 - 18:19)
ipv4
Цитата
Пример конструкции - студию. Возможно, просто, вы не совсем вникли в алгоритм. Это, прост, самое очевидное предположение. )

Я выше дополнил.
Заглушки так у нас было принято делать.
Типа, тут в дальнейшем могут быть и диапазоны, и пр. выборки, но сейчас одно значение. Ставится while, чтобы не забыть.
Код
while <условие>:
 <пачка операторов>
 <без всякого влияние на условие>

<дальше пошли>

Ага... Чувак, здесь возможны ровно две ситуации:

1. В цикл не будет входа никогда, поскольку условия цикла изначально не соблюдаются. Тогда это заглушка. В таком случае, возможно, while используется потому, что while'ов по программе меньше, чем if'ов и по поиску (чисто посмотреть на такие заглушки) будет выдано меньше результатов, что облегчит выявление заглушек. Это моё предположение.

2. Если будет вход в цикл, то программа повиснет. Это либо ошибка, либо сознательное подвешивание программы, если дальше продолжать просто нельзя ни в коем случае.
 
[^]
Constcat
21.05.2022 - 18:26
0
Статус: Offline


Ярила

Регистрация: 9.09.12
Сообщений: 1465
ipv4
Цитата
Если будет вход в цикл, то программа повиснет.

Забыл в конце вставить break. )))
 
[^]
Aberrant
21.05.2022 - 18:27
-1
Статус: Offline


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

Регистрация: 3.10.20
Сообщений: 2780
Цитата (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
чтобы остановиться, сообщить "ошибка ввода", вернуться к вводу
или продолжить с проверенным в условии значением.

 
[^]
Ch1ck
21.05.2022 - 18:27
1
Статус: Offline


Ярила

Регистрация: 6.10.14
Сообщений: 1019
Цитата (Constcat @ 21.05.2022 - 22:10)
ipv4
Цитата
Такое и на Си прокатит, кста )))
Ответ - 51.

А разве char всегда размером байт?

Где попало, во всякой ереси, чар может иметь любой размер.
Там, где меня обучали, вообще не было никаких чар, стринг, флоат. В работе были просто байты.
С тех пор я и работаю только с байтами, а все остальное - не расшифрованный бред
 
[^]
WolfFrog
21.05.2022 - 18:28
0
Статус: Offline


Приколист

Регистрация: 15.09.18
Сообщений: 265
Когда я много лет назад спросил у ЯПа где может быть ошибка в настройке Cisco ASA - как только меня не обсирали))
 
[^]
ipv4
21.05.2022 - 18:29
1
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7305
Цитата (Constcat @ 21.05.2022 - 18:21)
ipv4
Цитата
Тот, который '1' - да, всегда. ))))
Даже если предположить, что какой-нибудь ебанутый компилятор воспринимает '1' как UTF-16 или UTF-32 символ, то его значение один хер будет равно 49 )))

После многолетнего секса с кроссплатформенностью между виндой и маком, я уже далеко ни в чем не уверен.

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

Про Objective-C ничего не знаю, но это совсем другой инструмент.

В отрасли с 1992 года, есличо )
 
[^]
Tyken
21.05.2022 - 18:32
0
Статус: Offline


Приколист

Регистрация: 5.02.17
Сообщений: 243
Цитата (Aberrant @ 21.05.2022 - 16:34)
Цитата (Tyken @ 21.05.2022 - 16:28)
ТС, совет небольшой.
Если выкладываешь где код, выкладывай вот в таком формате как на картинке.
А делать это можешь через https://paste.ofcode.org/ к примеру.

данунафиг,
тут и так все всё поняли.
ну поленился он (или не знает) о "вставке кода"

Ну тут как бы не только для форума использование. А вообще, для обсуждения кода
 
[^]
Constcat
21.05.2022 - 18:34
0
Статус: Offline


Ярила

Регистрация: 9.09.12
Сообщений: 1465
ipv4
Цитата
С/С++ - он одинаковый везде. Есть нюансы, но они зависят не от винды или мака, а от того, какой стандарт языка реализован в конкретном компиляторе, насколько точно компилятор соответствует этому стандарту, а также какие нестандартные навороты конкретного компилятора были использованы в конкретной программе.

В основном секс был из-за различных размеров данных.
Указатели под виндой одного размера, под Маком - другого.
И кроссплатформенная часть, формируя массив указателей на разную хрень, должна была много чего учитывать, именно из-за особенностей Objective C. Оно, вроде, тупо надстройка над С++, но со своими наворотами, далеко не всегда совместимыми со стандартом.
 
[^]
ipv4
21.05.2022 - 18:34
0
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7305
Цитата (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);


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


Ярила

Регистрация: 9.09.12
Сообщений: 1465
hime
Цитата
там хитрая формулировка, что-то вроде байт не всегда 8 бит, давно читал. но в стандарт не полезу.

Стандарт, насколько я знаю, определяет минимальный размер. Даже для char. Но не максимальный. )))
 
[^]
ipv4
21.05.2022 - 18:37
0
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7305
Цитата (Constcat @ 21.05.2022 - 18:34)
.... Objective C. Оно, вроде, тупо надстройка над С++, но со своими наворотами, далеко не всегда совместимыми со стандартом.

Вот тут ты сильно ошибаешься. Проверил свои представления, вики с ними согласна:
"Objective-C — компилируемый объектно-ориентированный язык программирования, используемый корпорацией Apple, построенный на основе языка Си и парадигм Smalltalk. В частности, объектная модель построена в стиле Smalltalk — то есть объектам посылаются сообщения."

Так-то жаба - тоже на основе синтаксиса Си базируется. )))

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


Ярила

Регистрация: 9.09.12
Сообщений: 1465
ipv4
Цитата
Здесь есть и условие, и - вуаля! - цикл:

Цитата
err = value < 100

Ну да, ну да.
Красиво, ага.
Но, сцуко, как же сложно такой код саппортить...
 
[^]
Constcat
21.05.2022 - 18:42
0
Статус: Offline


Ярила

Регистрация: 9.09.12
Сообщений: 1465
ipv4
Цитата
Вот тут ты сильно ошибаешься.

Хрен его знает, как Objective C внутри устроен.
Когда я его изучал, мне было говорено, что там чуть ли не специальный препроцессор сначала конвертит код на Objective C в С++, а потом уже отдает компилятору.
А снаружи оно, разумеется, отличается.
Но вот это вот "посылаются сообщения" - надавать бы подзатыльников тем, кто это придумал и реализовал.
У меня по этому поводу очень длинный текст в голове есть с аргументами и матерными вставками.

Ну, вот, к примеру. Объект неинициализирован, он NULL.
В С++ попытка обратится к методам/полям вызовет креш/ассершн.
А Objective C - он же, типа, умный. В нем можно "послать сообщение" пустому указателю. И, сцуко, ничего не произойдет. И ищи потом, где ошибка.

Или можно "послать сообщение" (а фактически - вызвать метод), которого в объекте нет.
И Objective C тоже съест. Ну, предупредит, правда, что "объект, возможно, не принимает такие сообщения", блин...


Это сообщение отредактировал Constcat - 21.05.2022 - 18:46
 
[^]
ipv4
21.05.2022 - 18:43
1
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7305
Цитата (hime @ 21.05.2022 - 18:25)
Цитата (ipv4 @ 21.05.2022 - 18:20)
Цитата (hime @ 21.05.2022 - 18:15)
формально нет, но на практике хер где найдёшь, где сишный char не один байт.

Более того, постановка вопроса не корректна.

Сишный char - всегда один байт. Всегда и безусловно. Но, вот, символьная константа может иметь тип int, если она обозначена двумя буквами, заключёнными в апострофы.

Так будет точнее.

да, я проебался, скорее всего. там хитрая формулировка, что-то вроде байт не всегда 8 бит, давно читал. но в стандарт не полезу. alk.gif
надо проверять CHAR_BIT для надёжности, во.

Именно. И зависит это от архитектуры, а не от компилятора или ОС. Скажем так, архитектуры, где машинный байт отличается от 8 бит - экзотика.

"
Например, процессоры с 36-битной архитектурой как правило имеют 9-битный байт, а в некоторых DSP от Texas Instruments байты состоят из 16 или 32 бит.
"

В любом случае, char - это 1 машинный "байт". И арифметика будет той же самой. Отличаться будет только мощность множества значений, которые способен закодировать один символ.
 
[^]
ipv4
21.05.2022 - 18:45
0
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7305
Цитата (Constcat @ 21.05.2022 - 18:38)
ipv4
Цитата
Здесь есть и условие, и - вуаля! - цикл:

Цитата
err = value < 100

Ну да, ну да.
Красиво, ага.
Но, сцуко, как же сложно такой код саппортить...

Кому-то надо заново учиться... Это для вас сложно???? )))))
 
[^]
ipv4
21.05.2022 - 18:45
1
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7305
Цитата (Constcat @ 21.05.2022 - 18:36)
hime
Цитата
там хитрая формулировка, что-то вроде байт не всегда 8 бит, давно читал. но в стандарт не полезу.

Стандарт, насколько я знаю, определяет минимальный размер. Даже для char. Но не максимальный. )))

Размер в битах может отличаться, но char - 1 машинный байт. Всегда.
 
[^]
Constcat
21.05.2022 - 18:50
2
Статус: Offline


Ярила

Регистрация: 9.09.12
Сообщений: 1465
ipv4
Цитата
Кому-то надо заново учиться... Это для вас сложно???? )))))

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


 
 



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






Наверх