Цикл Continuos с пользовательским условием ввода в python? - PullRequest
0 голосов
/ 09 октября 2019

Я просто изучаю свой первый питон и пытаюсь сделать непрерывный цикл, который имеет условие пользовательского ввода.

#Make the calculating func
def data_cal():
    pennies = int(input("What's your pennies?"))
    dollars = pennies // 100
    cents = pennies % 100
    print("You have $", dollars, "and", cents, "cents")
data_cal()
#User input for answer
repeat = input("Do you want to try again?")
answer = ['yes','YES','Yes','y','Y']
#Loop for answer
while repeat in answer
    data_cal()
else: print("Bye then")

Я думал, могу ли я вспомнить повтор после того, как я вызвал data_cal () и, или другойесли утверждение

…..
while repeat in answer
    data_cal()
    if repeat in answer:
      repeat (#this step I tried to recall repeat, is this possible?, any other way to get around this?)
    else: break
print ("Bye then")

Пожалуйста, потерпите меня, я очень плохо знаком с языком программирования и, возможно, не совсем ясно выразился. Идея состоит в том, чтобы вызвать data_cal () в первый раз, затем запросить ввод пользователя - («Хотите повторить попытку?») - если ввод да, вызвать data_cal () и затем RE ASK («Делатьхотите повторить попытку? ") и повторите цикл, если введено нет, то напечатайте (" Пока ") Большое спасибо!

Ответы [ 4 ]

1 голос
/ 09 октября 2019

Вы должны спросить пользователя внутри цикла while, хочет ли он повторить попытку (что бы ни делалось в data_cal()). В противном случае данный ответ никогда не изменится.

answer = ['yes','YES','Yes','y','Y']
repeat = 'yes'

#Loop for answer
while repeat in answer
    data_cal()
    repeat = input("Do you want to try again?")
else: print("Bye then")
0 голосов
/ 09 октября 2019

Вы можете использовать цикл while внутри функции.

#Make the calculating func
    repeat = "yes"
    answer = ['yes','YES','Yes','y','Y']

    def data_cal():
        global repeat
        while repeat in answer:
            pennies = int(input("What's your pennies?"))
            dollars = pennies // 100
            cents = pennies % 100
            print("You have $", dollars, "and", cents, "cents")
            repeat = input("Do you want to try again?")

    data_cal()
    print("Bye then")
0 голосов
/ 09 октября 2019
#Make the calculating func
repeat = ""
def data_cal():
    pennies = int(input("What's your pennies?"))
    dollars = pennies // 100
    cents = pennies % 100
    print("You have $", dollars, "and", cents, "cents")
    repeat = input("Do you want to try again?")
    return repeat

repeat = data_cal()
#User input for answer
answer = ['yes','YES','Yes','y','Y']
#Loop for answer

while repeat in answer:
    repeat = data_cal()
else:
    print("Bye then")

Из формата кода, который вы написали, просто переместите строку повторного назначения в data_cal () и верните значение, чтобы вы могли использовать его в цикле while.

0 голосов
/ 09 октября 2019

Вы можете использовать continue и breake для управления вашим циклом ,, затем вы можете написать так

#Make the calculating func
def data_cal():
    pennies = int(input("What's your pennies?"))
    dollars = pennies // 100
    cents = pennies % 100
    print("You have $", dollars, "and", cents, "cents")

answer = ['yes','YES','Yes','y','Y']
#Loop for answer
while True:
    data_cal()
    repeat = input("Do you want to try again?")
    if repeat in answer:
        data_cal()
        continue
    else:
        print("Bye then")
        break
...