Acabo de aprender mi primer python e intento hacer un bucle continuo que tenga una condición de entrada de usuario.

#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")

Estaba pensando si puedo recordar repetir después de llamar a data_cal () y, u otra instrucción if

…..
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")

Tenga paciencia conmigo, soy muy nuevo en el lenguaje de programación y es posible que no me exprese muy claramente. La idea es llamar a data_cal () por primera vez y luego solicitar la entrada del usuario - ("¿Desea volver a intentarlo?") - si la entrada es sí, recuerde data_cal () y luego RE ASK ("¿Usted ¿quiere intentarlo de nuevo? ") y repita el ciclo, si la entrada es no, imprima (" Bye ") ¡Muchas gracias!

0
SurvivorBA 9 oct. 2019 a las 10:55

4 respuestas

La mejor respuesta
#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")

Desde el formato de código que ha escrito, simplemente mueva la línea de repetición de asignación a data_cal () y devuelva el valor para que pueda usarlo en el ciclo while.

0
nithin11 9 oct. 2019 a las 08:11

Puede usar el ciclo while dentro de la función.

#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
subham agarwal 9 oct. 2019 a las 08:20

Debe preguntar al usuario dentro del bucle while, si quiere volver a intentarlo (lo que se haga en data_cal()). De lo contrario, la respuesta dada nunca puede cambiar.

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")
1
Simon Fink 11 oct. 2019 a las 06:51

Puede usar continuar y romper para controlar su ciclo, luego puede escribir así

#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
0
Jary 9 oct. 2019 a las 08:03
58299483