+ 6

Помогите пожалуйста разобраться с while

второй день не могу решить код в цикле while, а именно решить практику "нажмите на курок". Уже просто мысли иссякли.

9th May 2021, 6:22 AM
Andrey Zinin
53 Answers
+ 7
... i = 4 #устанавливаем количество выстрелов, заряжаем винтовку while i >0: ... ... i = i - 1
9th May 2021, 8:11 AM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 3
Да, все почти правильно. Только инпут должен быть в цикле, ну и значение с abc надо не присваивать '=', а сравнивать '=='. == это оператор сравнения. Потом, в инпуте у нас лежат строковые данные. Как они у нас обозначаются? И каким образом мы эту строку должны сравнить с abc?
9th May 2021, 8:44 AM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 2
Ну что ты делаешь? abc у тебя уже изначально строка! Не надо трогать эту переменную. Потом, нам надо с р а в н и т ь, что лежит в abc с заведомо известным значением. Тебе надо повторить, как выглядит оператор сравнения. У нас есть коробка с надписью 'abc', в ней лежит неизвестно что, но мы точно знаем что строка и нам надо это значение сравнить с hit или miss
9th May 2021, 9:06 AM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 2
"Боже мой" - так меня еще никто не называл... 😆 приятно...
9th May 2021, 12:30 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 2
Верю... бывает ступор настает и никак. Я так с задачей "числа Фибоначчи" мучился. Если не идет решение, можно на пару дней отложить. Пусть голова отдохнет и потом с новыми силами в бой!
9th May 2021, 12:43 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 2
Можно начать с алгоритма. Написать на бумаге последвательность действий своими словами, затем алгоритм переписать в программный код
9th May 2021, 12:44 PM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 2
While с английского переводится как: "пока". Значит, пока условие true (истинно) цикл будет продолжаться до тех пор, пока условие не будет false. Например: 1. while(1 == 1) // запустит бесконечный цикл while(1 == 0) // не запустит данный цикл 2. int i = 0; while(i < 10) // читай как: пока i меньше 10, то делай вот это { Console.WriteLine("Переменная name в цикле") i++; }
10th May 2021, 6:35 AM
AlbaRM
AlbaRM - avatar
+ 2
Спасибо огромное за подробное обьяснение, тоже долго не мог понять где ошибка, оказывается input нужно было занксти в цикл, а я не догодался и не понимал почему перкменную с очками код не использовал 😅
11th May 2021, 3:44 PM
Герман Семенов
+ 2
Что не понял? Спрашивайте!
7th Jun 2021, 8:47 AM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
I haven't done anything yet ( I just can't understand the logic of this task. I understand that there is a function 'input' but what to do I do not understand The task is as follows: write the code using the while function. You need to create a game where the player tries to shoot at an object and can hit (hit) or miss (miss) . At the beginning, the player has 100 points, a hit adds 10 points to the player's score, and a miss takes away 20 points. Your program should take the result of 4 actions as input ("hit" or "miss"), then calculate and output the remaining player points. Example of Input hit hit miss hit Example Of Output Data 110
9th May 2021, 6:55 AM
Andrey Zinin
+ 1
Привет! 1. Инпут висит в воздухе. Ему не назначена ни одна переменная. 2. Для цикла while необходим счетчик. Что значит 1==1? Читаем внимательно условие: 1. используйте цикл while для приема ввода значений. Как это сделать? 2. Затем нам в цикле надо рассчитать наше количество очков, в зависимости от промахов и попаданий. 3. Вывести количество наших очков
9th May 2021, 7:34 AM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
Успокойся, сейчас все получится. Мыслишь в правильную сторону
9th May 2021, 8:05 AM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
Для while нужен счетчик итераций. Это ленивый цикл и тебе приходится ему самому тыкать носом что ему делать. Итак... я тебе показываю как сделать while, ты согласно своим новым мыслям переделываешь программу
9th May 2021, 8:08 AM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
А hit и miss можно вообще не использовать, просто их удалить, если они только усложняют понимание. Вместо этого можно просто к количеству очков или добавлять 10, либо вычитать 20
9th May 2021, 8:14 AM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
И их не 4 разных значения, а только 2. Просто они повторяются в разных комбинациях 4 раза
9th May 2021, 8:46 AM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
Подсказка: самый первый урок по питону. Как пишется? (фраза Python is awesome!)
9th May 2021, 9:08 AM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
Да, проверяй. Только пробелы ставь в конструкции if-else
9th May 2021, 9:33 AM
Yaroslav Vernigora
Yaroslav Vernigora - avatar
+ 1
Боже мой, спасибо Вам большое! Да, наконец то заработало! В других интерпретаторах к сожалению пока нет, но я хотя бы задание сделал)) ещё раз спасибо!
9th May 2021, 12:22 PM
Andrey Zinin
+ 1
Да обязательно ознакомлюсь) Вы правда очень помогли, я два дня честно пытался понять логику. До этого вообще не возникало затруднений. Спасибо!!!
9th May 2021, 12:41 PM
Andrey Zinin
+ 1
Спасибо вам огромное! В этой задаче в ступор вошла, оромное спасибо за разъяснения
9th May 2021, 7:31 PM
Kseniia Leonteva
Kseniia Leonteva - avatar