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

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


Ярила

Регистрация: 16.08.11
Сообщений: 3767
Цитата (ipv4 @ 21.05.2022 - 19:04)
Цитата (БратецЛис @ 21.05.2022 - 17:03)
faceoff.gif Говнокод. «Блок первой попытки» …

"Стиль индуса"

Ну да… Столько строчек кода на ровном месте…
 
[^]
rommel13
21.05.2022 - 17:07
2
Статус: Offline


Весельчак

Регистрация: 23.01.13
Сообщений: 179
Цитата (Jobber @ 21.05.2022 - 17:00)
Цитата (rommel13 @ 21.05.2022 - 16:51)
pin=123
While True:
  for i in range(3):
  pin_user=int(input("Введите пин код"))
      if pin_user==pin:
          break
      else:
          print("Неверный пин код попробуйте снова")
  if pin_user!=pin:
      print("количество попыток исчерпано")
      break
  sum=int(input("Введите сумму кратную 100, не более 10000"))
  if sum%100==0 and sum<=10000:
      и т.д.

только проверку ввода суммы тоже надо взять в цикл while True

Как я понял, ему нужно только 3 попытки на ввод суммы, т.е. pin в for это лишнее

почему лишнее? цикл фор повторяется максимум 3 раза, либо прерывается когда пин правильный
 
[^]
ipv4
21.05.2022 - 17:08
3
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7256
Цитата (Aberrant @ 21.05.2022 - 17:06)
тут в первом случае совало или нет.

во втором случае цикл пройдёт 100 раз пока не доберётся до 100

фигня полная!!!

Ты троллишь, придуриваешься или просто ебанутый, и вообще не программист?
 
[^]
UlcerMordor
21.05.2022 - 17:09
3
Статус: Offline


Порою нестерпимо хочется

Регистрация: 15.05.20
Сообщений: 819
Цитата (Aberrant @ 21.05.2022 - 17:06)
while, это цикл!
и если ты в цикл загоняешь проверку числа, сравнивая его,
то цикл остановится только когда дойдёт до совпадения.

огромная разница между

i = 100
if 1 < 10000:
print ('true')

и

i = 0
while i < 10000:
...

тут в первом случае совало или нет.

во втором случае цикл пройдёт 100 раз пока не доберётся до 100

фигня полная!!!

Очнись, здесь нет инкремента на единицу.
Условие цикла быстрее будет достигнуто.
 
[^]
Jobber
21.05.2022 - 17:10
0
Статус: Offline


Ярила

Регистрация: 8.08.09
Сообщений: 3559
Цитата (ipv4 @ 21.05.2022 - 17:03)
Цитата (Jobber @ 21.05.2022 - 17:00)
Как я понял, ему нужно только 3 попытки на ввод суммы, т.е. pin в for это лишнее

Схуяль "лишнее"? А, понадобится четыре попытки? Копипаст?
А ошибку исправить или код доработать? В трёх местах исправлять?

Вы чо, там все вообще уже ебанулись в корягу? Кто вас программированию то учил?!!!!

Когда понадобится, тогда и добавит cool.gif
 
[^]
ipv4
21.05.2022 - 17:10
2
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7256
Цитата (БратецЛис @ 21.05.2022 - 17:07)
Цитата (ipv4 @ 21.05.2022 - 19:04)
Цитата (БратецЛис @ 21.05.2022 - 17:03)
faceoff.gif Говнокод. «Блок первой попытки» …

"Стиль индуса"

Ну да… Столько строчек кода на ровном месте…

Я боюсь себе представить, как будет выглядеть код, если подкинуть ТСу идею, что, строго говоря, банкомат должен учитывать наличие и количество купюр в кассетах, их номиналы.... stol.gif
 
[^]
Constcat
21.05.2022 - 17:11
0
Статус: Offline


Ярила

Регистрация: 9.09.12
Сообщений: 1465
Aberrant
Цитата
while, это цикл!

While - это If.
Циклом while становится только тогда, когда ты внутри блока while начинаешь менять условие.
А так - это тот же if. Проверка условия, и, либо заход в блок, либо пропуск блока.

P.S. Разумеется, while - это оператор цикла. Но, поскольку в нем нет специального итератора, то без специальных телодвижений он формально работает, как if.


Это сообщение отредактировал Constcat - 21.05.2022 - 17:16
 
[^]
Jobber
21.05.2022 - 17:13
0
Статус: Offline


Ярила

Регистрация: 8.08.09
Сообщений: 3559
Цитата (rommel13 @ 21.05.2022 - 17:07)
Цитата (Jobber @ 21.05.2022 - 17:00)
Цитата (rommel13 @ 21.05.2022 - 16:51)
pin=123
While True:
   for i in range(3):
   pin_user=int(input("Введите пин код"))
      if pin_user==pin:
          break
      else:
          print("Неверный пин код попробуйте снова")
   if pin_user!=pin:
      print("количество попыток исчерпано")
      break
   sum=int(input("Введите сумму кратную 100, не более 10000"))
   if sum%100==0 and sum<=10000:
      и т.д.

только проверку ввода суммы тоже надо взять в цикл while True

Как я понял, ему нужно только 3 попытки на ввод суммы, т.е. pin в for это лишнее

почему лишнее? цикл фор повторяется максимум 3 раза, либо прерывается когда пин правильный

Перечитал еще раз код ТС. Да, ты прав. Прошу прощения agree.gif
 
[^]
ipv4
21.05.2022 - 17:13
0
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7256
Цитата (Jobber @ 21.05.2022 - 17:10)
Цитата (ipv4 @ 21.05.2022 - 17:03)
Цитата (Jobber @ 21.05.2022 - 17:00)
Как я понял, ему нужно только 3 попытки на ввод суммы, т.е. pin в for это лишнее

Схуяль "лишнее"? А, понадобится четыре попытки? Копипаст?
А ошибку исправить или код доработать? В трёх местах исправлять?

Вы чо, там все вообще уже ебанулись в корягу? Кто вас программированию то учил?!!!!

Когда понадобится, тогда и добавит cool.gif

Нееет... "нам такой хоккей не нужен" ©

Такие вещи сразу продумываются и пишутся, а не копипаста, а потом - цикл. Да, там и думать-то вообще не о чём, если твой возраст больше 12 лет, и ты имеешь хотя бы минимальные представления о программировании.

Это сообщение отредактировал ipv4 - 21.05.2022 - 17:14
 
[^]
rommel13
21.05.2022 - 17:15
1
Статус: Offline


Весельчак

Регистрация: 23.01.13
Сообщений: 179
Цитата (Jobber @ 21.05.2022 - 17:13)
Цитата (rommel13 @ 21.05.2022 - 17:07)
Цитата (Jobber @ 21.05.2022 - 17:00)
Цитата (rommel13 @ 21.05.2022 - 16:51)
pin=123
While True:
   for i in range(3):
   pin_user=int(input("Введите пин код"))
      if pin_user==pin:
          break
      else:
          print("Неверный пин код попробуйте снова")
   if pin_user!=pin:
      print("количество попыток исчерпано")
      break
   sum=int(input("Введите сумму кратную 100, не более 10000"))
   if sum%100==0 and sum<=10000:
      и т.д.

только проверку ввода суммы тоже надо взять в цикл while True

Как я понял, ему нужно только 3 попытки на ввод суммы, т.е. pin в for это лишнее

почему лишнее? цикл фор повторяется максимум 3 раза, либо прерывается когда пин правильный

Перечитал еще раз код ТС. Да, ты прав. Прошу прощения agree.gif

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

Это сообщение отредактировал rommel13 - 21.05.2022 - 17:16
 
[^]
ipv4
21.05.2022 - 17:16
3
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7256
Цитата (Constcat @ 21.05.2022 - 17:11)
Aberrant
Цитата
while, это цикл!

While - это If.
Циклом while становится только тогда, когда ты внутри блока while начинаешь менять условие.
А так - это тот же if. Проверка условия, и, либо заход в блок, либо пропуск блока.

Давайте, мы не будем заниматься хуйнёй, подменять понятия, и осуществлять другу другу ёблю мозга.

while - это цикл. Запомни навсегда. Просто количество итераций определяется не простым инкрементом, а ровно тем , насколько быстро условие цикла станет ложным. Всё. Можно и вообще в тело цикла не зайти. )))
 
[^]
Aberrant
21.05.2022 - 17:17
0
Статус: Offline


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

Регистрация: 3.10.20
Сообщений: 2604
Цитата (ipv4 @ 21.05.2022 - 17:08)
Цитата (Aberrant @ 21.05.2022 - 17:06)
тут в первом случае совало или нет.

во втором случае цикл пройдёт 100 раз пока не доберётся до 100

фигня полная!!!

Ты троллишь, придуриваешься или просто ебанутый, и вообще не программист?

я уже загнался пытаясь писать на пайтоне в первый раз в жизни lol.gif

смысл надеюсь передал верно.

если через while проверять находится ли значение в диапазоне от 100 до 10000,
то придётся каждый проход сравнивать значение с "суммой", если не совпало, то прибавлять 1 и идти на следующий проход до тех пор пока не совпадёт.

или просто сравнить два раза:
>= 100
и
<= 10000

да, если сумма = 100
то while будет быстрее ибо совпадение на первом проходе цикла (в теории быстрее, ибо не проверятся второе условие)

но если сумма = 10000,
то это будет 99900 проход цикла (при условии, что за проход у нас $i+1

 
[^]
БратецЛис
21.05.2022 - 17:18
2
Статус: Online


Ярила

Регистрация: 16.08.11
Сообщений: 3767
Цитата (Constcat @ 21.05.2022 - 19:11)
Aberrant
Цитата
while, это цикл!

While - это If.
Циклом while становится только тогда, когда ты внутри блока while начинаешь менять условие.
А так - это тот же if. Проверка условия, и, либо заход в блок, либо пропуск блока.

While это цикл с условием. Выполняется пока условие верное. По if будет однократный проход, а с while будет долбиться пока условие не перестанет быть верным.
 
[^]
ipv4
21.05.2022 - 17:20
1
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7256
Цитата (rommel13 @ 21.05.2022 - 17:15)
но мой код все равно для новичков вроде ТСа, проще все проверки засунуть в функцию и пользоваться уже ими, код будет компактнее. Но ТСу лучше пока азы подтянуть

Хм.... да, и не для новичков - тоже. Сочинять развесистые конструкции внутри одного программного блока - моветон.

Тело цикла вообще не должно быть больше пары-тройки строк в идеале. Ну десять. Любой программный блок должен быть обозрим одним взглядом. И при этом, должно быть понятно, что в нём происходит. Так-то!
 
[^]
rommel13
21.05.2022 - 17:20
3
Статус: Offline


Весельчак

Регистрация: 23.01.13
Сообщений: 179
Цитата (Aberrant @ 21.05.2022 - 17:17)
Цитата (ipv4 @ 21.05.2022 - 17:08)
Цитата (Aberrant @ 21.05.2022 - 17:06)
тут в первом случае совало или нет.

во втором случае цикл пройдёт 100 раз пока не доберётся до 100

фигня полная!!!

Ты троллишь, придуриваешься или просто ебанутый, и вообще не программист?

я уже загнался пытаясь писать на пайтоне в первый раз в жизни lol.gif

смысл надеюсь передал верно.

если через while проверять находится ли значение в диапазоне от 100 до 10000,
то придётся каждый проход сравнивать значение с "суммой", если не совпало, то прибавлять 1 и идти на следующий проход до тех пор пока не совпадёт.

или просто сравнить два раза:
>= 100
и
<= 10000

да, если сумма = 100
то while будет быстрее ибо совпадение на первом проходе цикла (в теории быстрее, ибо не проверятся второе условие)

но если сумма = 10000,
то это будет 99900 проход цикла (при условии, что за проход у нас $i+1

неправильно ты дядя Федор в питон программируешь)
 
[^]
Constcat
21.05.2022 - 17:20
3
Статус: Offline


Ярила

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

Вот только не нужно мне условий ставить! biggrin.gif biggrin.gif biggrin.gif
Я отлично знаю, что такое циклы.
Да, while считается оператором цикла, но итератора в нем нет. Именно это я имел ввиду.
Хотя, согласен, это просто демагогия.

 
[^]
UlcerMordor
21.05.2022 - 17:21
4
Статус: Offline


Порою нестерпимо хочется

Регистрация: 15.05.20
Сообщений: 819
Цитата (Aberrant @ 21.05.2022 - 17:17)
я уже загнался пытаясь писать на пайтоне в первый раз в жизни lol.gif

смысл надеюсь передал верно.

если через while проверять находится ли значение в диапазоне от 100 до 10000,
то придётся каждый проход сравнивать значение с "суммой", если не совпало, то прибавлять 1 и идти на следующий проход до тех пор пока не совпадёт.

или просто сравнить два раза:
>= 100
и
<= 10000

да, если сумма = 100
то while будет быстрее ибо совпадение на первом проходе цикла (в теории быстрее, ибо не проверятся второе условие)

но если сумма = 10000,
то это будет 99900 проход цикла (при условии, что за проход у нас $i+1

Я похоже узнал, кто дыры в ЯндексЕде, СДЕКе, Билайне и т.п. программировал.
 
[^]
Constcat
21.05.2022 - 17:21
1
Статус: Offline


Ярила

Регистрация: 9.09.12
Сообщений: 1465
БратецЛис
Цитата
While это цикл с условием. Выполняется пока условие верное. По if будет однократный проход, а с while будет долбиться пока условие не перестанет быть верным.

Да в курсе я, в курсе.
Решил поумничать, вспомнил, что в Питоне while часто используется, как if.


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


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

Регистрация: 3.10.20
Сообщений: 2604
Цитата (UlcerMordor @ 21.05.2022 - 17:09)
Цитата (Aberrant @ 21.05.2022 - 17:06)
while, это цикл!
и если ты в цикл загоняешь проверку числа, сравнивая его,
то цикл остановится только когда дойдёт до совпадения.

огромная разница между

i = 100
if 1 < 10000:
print ('true')

и

i = 0
while i < 10000:
  ...

тут в первом случае совало или нет.

во втором случае цикл пройдёт 100 раз пока не доберётся до 100

фигня полная!!!

Очнись, здесь нет инкремента на единицу.
Условие цикла быстрее будет достигнуто.

напиши код, который проверяет диапазон "сумма" из первого примера ТСа
двумя способами
и проверь время затраченное на выполнение.
а потом расскажи мне про циклы.
 
[^]
rommel13
21.05.2022 - 17:21
1
Статус: Offline


Весельчак

Регистрация: 23.01.13
Сообщений: 179
Цитата (ipv4 @ 21.05.2022 - 17:20)
Цитата (rommel13 @ 21.05.2022 - 17:15)
но мой код все равно для новичков вроде ТСа, проще все проверки засунуть в функцию и пользоваться уже ими, код будет компактнее. Но ТСу лучше пока азы подтянуть

Хм.... да, и не для новичков - тоже. Сочинять развесистые конструкции внутри одного программного блока - моветон.

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

К такому мышлению когда-нибудь и придет ТС :)
Пока пусть с циклами тренируется)
 
[^]
ipv4
21.05.2022 - 17:22
1
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7256
Цитата (Aberrant @ 21.05.2022 - 17:17)
если через while проверять находится ли значение в диапазоне от 100 до 10000,
то придётся каждый проход сравнивать значение с "суммой", если не совпало, то прибавлять 1 и идти на следующий проход до тех пор пока не совпадёт.

Абсолютно неверные представления!

Код

i = 0
while i < 1000000:
  i = 1000000


Тело цикла выполнится ровно один раз. Всё.
 
[^]
ipv4
21.05.2022 - 17:24
1
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7256
Цитата (Constcat @ 21.05.2022 - 17:20)
Да, while считается оператором цикла,....

И, причём, - совершенно справедливо. Ибо тело цикла будет выполнено некоторое количество раз, ЦИКЛИЧЕСКИ, пока условие цикла истинно. Именно этим цикл отличается от других конструкций.
 
[^]
Aberrant
21.05.2022 - 17:24
1
Статус: Offline


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

Регистрация: 3.10.20
Сообщений: 2604
Цитата (ipv4 @ 21.05.2022 - 17:22)
Цитата (Aberrant @ 21.05.2022 - 17:17)
если через while проверять находится ли значение в диапазоне от 100 до 10000,
то придётся каждый проход сравнивать значение с "суммой", если не совпало, то прибавлять 1 и идти на следующий проход до тех пор пока не совпадёт.

Абсолютно неверные представления!

Код

i = 0
while i < 1000000:
  i = 1000000


Тело цикла выполнится ровно один раз. Всё.

ты забыл о том, что нам нужно выяснить находится ли число в диапазоне от 100 до 10000 lol.gif
 
[^]
ipv4
21.05.2022 - 17:25
0
Статус: Offline


Ярила

Регистрация: 4.11.09
Сообщений: 7256
Цитата (UlcerMordor @ 21.05.2022 - 17:21)
Я похоже узнал, кто дыры в ЯндексЕде, СДЕКе, Билайне и т.п. программировал.

bravo.gif bravo.gif bravo.gif
 
[^]
БратецЛис
21.05.2022 - 17:25
2
Статус: Online


Ярила

Регистрация: 16.08.11
Сообщений: 3767
Цитата (Constcat @ 21.05.2022 - 19:21)
БратецЛис
Цитата
While это цикл с условием. Выполняется пока условие верное. По if будет однократный проход, а с while будет долбиться пока условие не перестанет быть верным.

Да в курсе я, в курсе.
Решил поумничать, вспомнил, что в Питоне while часто используется, как if.

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


 
 



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






Наверх