#python #loops
Вопрос:
Привет, первый раз публикую здесь. Таким образом, в принципе, если я наберу «1», он будет повторяться 5 раз, в то время как если я наберу 5, он сделает все наоборот. Как мне ввести «1» и заставить его зациклиться один раз, «2», чтобы он зациклился дважды и т. Д.? Кроме того, мое задание требует, чтобы я сделал это так, чтобы оно неоднократно задавало мне эти вопросы, если я не дам ответа от 1 до 5, но я знаю, как это сделать.
drink = int(input("How many drinks will you consume? "))
while(drink == 1):
print("You've consumed " str(drink) " drinks")
while(drink == 2):
print("You've consumed " str(drink) " drinks")
drink = drink 1
while(drink == 3):
print("You've consumed " str(drink) " drinks")
drink = drink 1
while(drink == 4):
print("You've consumed " str(drink) " drinks")
drink = drink 1
while(drink == 5):
print("You've consumed " str(drink) " drinks")
drink = drink 1
print("You're done drinking.")
поскольку это не сработало, я также попробовал цикл for, который также не работал должным образом:
drink = int(input("How many drinks will you consume? "))
for drink in range(1, 6, 1):
print("You've consumed " str(drink) " drinks")
print("You're done drinking.")
В этом случае любое число, которое я набираю от 1 до 5, всегда будет выдавать 5 циклов. Каков ответ на эту проблему? Я работал над этим 2 часа и чувствую себя глупо.
Комментарии:
1. 👉 pythontutor.com/visualize.html
2. В вашем первом коде, если вы наберете
1
, у вас будет бесконечный цикл… Если вы понимаете почему, вы тоже на пути к пониманию остального…
Ответ №1:
Вы правы в том, что вам следует использовать цикл for, однако джутс сделал это немного неправильно. Попробуй это:
drink = int(input("How many drinks will you consume? "))
for i in range(drink):
print(f"You have had {i 1} drinks")
print("You are done drinking")
Комментарии:
1. Вы, вероятно, хотите начать
range
с1
…2. Спасибо вам обоим за исправления
3.
f'... drink{"" if i == 1 else "s"}'
… 😉4. Вы должны поставить это так, как если бы i == 0, так как это первый элемент (т. Е. Первый напиток)
5. Вот почему вам следует начать с
range
at1
, чтобы иметь больше семантического кода и избегать таких ошибок… 😉