简体   繁体   中英

Continuos loop with user input condition in python?

I just learn my first python and try to make a continuous loop that has a user input condition.

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

I was thinking if I can recall repeat after I called data_cal() and, or another if statement

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

Please bear with me, I am very new to programming language and might not express myself very clear. The idea is to call the data_cal() for the first time then, ask for user input -("Do you want to try again?") - if the input is yes then recall data_cal() and then RE ASK ("Do you want to try again?") and repeat the cycle, if the input is no then print("Bye") Thank you very much!

You have to ask the user inside of the while loop, if he wants to try again (whatever is done in data_cal() ). Otherwise the given answer can never change.

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

You can use continue and breake to control your loop,then you can write like this

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

From the code format you have written, just move the repeat assignment line to data_cal(), and return the value so that you can use that in the while loop.

You can use the while loop inside the function.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM