Coding1014 Ответов: 2

Как я могу изменить этот код, чтобы он продолжал работать с программой, если введен правильный ответ?


userChoice3 = int(input("What is the weight of the coin bag"))
                while userChoice3 not in range (100-1000):
                    print("You need to add more coins")
                    userChoice3 = int(input("What is the weight of the coin bag"))




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

Что я уже пробовал:

Я попытался с помощью положив при userChoice3 в диапазоне, а не в ряд.

Richard MacCutchan

Подсказка: range (100-1000) это эквивалентно диапазону(-900), который не имеет большого смысла. Смотрите также мой ответ ниже.

2 Ответов

Рейтинг:
2

Richard MacCutchan

Это точно такая же проблема, как и Как я могу остановить цикл от того, чтобы быть непрерывным циклом?[^И у вас уже есть ответ. Пожалуйста, не повторяйте один и тот же вопрос.

А если вы действительно боретесь с основами Python, то переходите к Учебник по Python — документация по Python 3.7.6[^] и поработайте над учебниками несколько раз.


Coding1014

это не то же самое, потому что это не непрерывный цикл

Richard MacCutchan

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

Coding1014

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

OriginalGriff

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

Вы не учитесь, глядя на то, что сделали люди, вы учитесь, делая, используя то, что вам сказали. Это основа навыка - и все они одинаковы. Рассматривая примеры, вы ничего не узнаете о том, почему что-то происходит именно так, какие альтернативы рассматривались и почему они не были реализованы. Он просто представляет вам "одно решение" для "одной проблемы" - и вам нужны навыки, чтобы справиться с решениями общих классов проблем вместо этого.

Если хотите, это все равно, что уметь водить машину: включить передачу и нажать на рычаг "go", но это не поможет вам знать, что делать, когда вы обнаружите, что путь заблокирован упавшим деревом. Или когда вам нужно припарковаться параллельно. "Навык вождения" помогает вам обходить проблемы, когда вы сталкиваетесь с ними, вместо того, чтобы иметь единственное "решение вождения", которое работает только при одном наборе обстоятельств.

Richard MacCutchan

Я так не думаю.

OriginalGriff

Не совсем то же самое - на этот раз он предполагает, что 100-1000-это диапазон, а не одно отрицательное значение.

Coding1014

Так что же мне нужно сделать, чтобы решить эту проблему?

OriginalGriff

Смотрите другое решение...

Richard MacCutchan

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

Richard MacCutchan

Вы, конечно, правы, но достаточно похожи, чтобы ОП действительно нуждался в изучении языка.

OriginalGriff

- О да. Даже очень. Я подозреваю, что он ищет короткий путь; возможно, "учится кодировать с помощью осмоса" ... :вздох:

Richard MacCutchan

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

OriginalGriff

И вы никогда не знаете, что вы узнаете таким образом, либо! :смеяться:

OriginalGriff

Во-первых, это не имеет значения. Мы не можем определить ваш пол, а если бы и знали, то это было бы неуместно. Это интернет, где "мужчины-мужчины, женщины-мужчины, а тринадцатилетние девочки-агенты ФБР", помните?
Если вы специально не говорите людям о своей гендерной / сексуальной идентичности, то по умолчанию вы используете мужские местоимения, поскольку в английском языке нет "нейтральных местоимений", кроме "it", которое обычно считается более оскорбительным, чем "he".

Secondly, we aren't "taking the mick" "because [you] didn't know the answer to something". We read your questions, and base our comments on the effort you have put into solving the problems yourself, which - to be frank - is very, very little. And if you are studying development for GCSE level, then you aren't playing much attention in class, or you wouldn't be "watching tutorials" in the hope that the ability to code magically descends upon you. Go back a few comments, and read what I said again: We get a lot of students who when faced with homework just go "someone else can do it for me" in the vain hope they will a) get a good grade, and b) learn how to do it from handing in others work as their own.
Ни то, ни другое не работает: большинство учителей хорошо осведомлены о подобных сайтах, и техническое слово для этого - "плагиат". Добавьте это к причинам, которые я уже объяснил для того, чтобы на самом деле делать работу самостоятельно, и вы действительно не помогаете себе в долгосрочной перспективе.

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

OriginalGriff

Новичку противопоставить.

Рейтинг:
11

OriginalGriff

Проверьте определение диапазона: Функция Python range() объяснена примерами[^]
Вам нужна версия с двумя аргументами. 100-1000-это -900, а не диапазон.

while userChoice3 not in range (100, 1000):
   print("You need to add more coins")