soy nuevo en python, pero he programado un texto estructurado, y un poco de c ++ ahora estoy trabajando en un problema usando declaraciones if y no parece funcionar de la manera en que estoy acostumbrado
código de ejemplo:
more_guests = 0 loop = bool; loop = False ferdig = int; ferdig = 1 while loop == False: guests = [] more_guests = 0 if int(ferdig) == 1: guest = input("type in guest ") more_guests = int(input("done? 1 for yes 2 for no ")) if int(more_guests) == 1: guests.append(guest) ferdig == 3 elif int(more_guests) == 2: guests.append(guest) ferdig == 2 else: print("unvalid answer, please use 1 or 2") ferdig == 1 elif int(ferdig) == 2: ferdig = 1 elif int(ferdig) == 3: print(guests) else: loop = TrueIntenté asegurarme de que es un número entero y así sucesivamente, ¿sigues atascado en terminar? 1 para sí 2 para no, siempre me regresa para escribir invitado
mientras usaba texto estructurado, a menudo usaba esta forma de ir y venir, pero parece que no puedo entenderlo en python, ¿tal vez debería usar case/switch? de todos modos, si alguien pudiera ayudarme a entender si puede usar la declaración IF de esta manera en python, es muy apreciado
Aquí hay otra opción para lograr lo que está tratando de hacer usando funciones.
guests = [] def add_guest(): guest = input("type in guest ") guests.append(guest) add_more() def add_more(): more_guests = int(input("done? 1 for yes 2 for no ")) #if they answer 1 we print out the final list if more_guests == 1: print("the guest list is {}".format(guests)) print('have a nice day') #if they answer 2 we go to the add_guest function elif more_guests == 2: add_guest() #if they answer anything other than 1 or 2 we re-call the add_more function. else: print("unvalid answer, please use 1 or 2") add_more() add_guest()Creo que escribiste mal el operador. ferdig == 1 solo comparando el operador de valor. Por lo tanto, devuelve verdadero (1) o falso (0).
si desea cambiar el valor de ferdig, debe escribir ferdig = 3 en la instrucción if.
He limpiado un poco tu código para obtener lo que creo que quieres.
guests = [] while True: guest = input("type in guest ") guests.append(guest) response = int(input("done? 1 for yes 2 for no ")) if response == 1: print(guests) break elif response == 2: continue elif response == 3: print(guests) else: print("invalid answer, please use 1 or 2")