Программный цикл в Python 2.7 - PullRequest
0 голосов
/ 20 марта 2012

Я новичок в Python и пишу простую программу на испанском языке, которая рассчитывает конвертацию в доллары, и будут ли какие-либо изменения или нет (при оплате).Дело в том, что есть два варианта «si o no» с их соответствующими действиями.Если пользователь отвечает что-то еще, он выдает им сообщение об ошибке.Но после того, как он заканчивает любой из трех, я хочу, чтобы он спросил вас: «Вы хотите сделать это снова?»а затем перезапустите с самого начала.Вот мой код:

print "Buenos Dias!\n"

pregunta = raw_input ("Pagara algo en dolares? (si/no)>")

if pregunta == "si":

    total = input ("Cuanto es el total a pagar?\t")
    tasa = input ("Cuanto es la tasa de hoy?\t")
    dolares = input ("Cuanto va a pagar en dolares?\t")
    calculo = ( total - tasa*dolares)

    if calculo > 0:

        print "\nLa diferencia que debe pagar en cordobas es %.2f" % calculo

    else:

        print "\nDebe dar un cambio de %.2f" % calculo

elif pregunta == "no":

    total = input("Cuanto es el total a pagar?\t")
    paga = input ("Cuanto le entregara?\t")
    cambio = paga - total

    print "\nDebe de darle un cambio en cordobas de %.2f" % cambio

else:
    print "\nNo me diste una respuesta correcta.\n"

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

Ответы [ 2 ]

1 голос
/ 21 марта 2012

while условие проверяет инструкцию, которая идет после, и если инструкция True, она выполнит блок. После выполнения он снова проверит оператор и, если он снова будет True, будет выполняться снова, пока вы не остановите выполнение с помощью break или оператор не вернет False

Пример:

x = True
while x: # This will check if the x is True or not, in our case, it's True
    x = False  # We set x to False, so the code will not be executed again.

Этот код будет выполнен один раз, так как x не больше True.

Другой пример:

while True:  # This code block will execute forever as True is ALWAYS True. 
             # We have to use break statement to stop execution.
    do_something();  #
    if no_more:  # if we don't want to execute it anymore, it will break the execution. 
        break
    do_another(); # this code will NOT be executed if no_more is True.
                  # Because "break" statement stop execution IMMEDIATELY.

Так что вы должны иметь в виду, что, если вы проверите оператор в начале с variable вместо True, ваш блок кода завершит выполнение, даже если где-то в блоке кода будет установлена ​​переменная False. Но если вы используете break, это немедленно остановит выполнение . Вы также можете использовать оба (variable и break), в зависимости от вашего вкуса.

1 голос
/ 20 марта 2012

Вы можете использовать оператор while True и разбивать его, когда вам нужно:

while True:

  [insert your code]

  if answer=="yes":
    break

True - логическое значение (равно 1), в отличие от False (0).Обычно оператор while прерывается, когда условие теста равно False (например, 2<1).При while True условие проверки, очевидно, всегда True, поэтому цикл никогда не прерывается сам по себе (вы должны явно break это внутри цикла).

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