Python — пытаясь разработать правильный цикл в этом методе, он работает до выбора способа оплаты, что-то не так с циклом / оформлением заказа

#python #loops

Вопрос:

Поэтому я пытаюсь закодировать функцию оформления заказа, вот как это выглядит, на данный момент она не работает при выборе способа оплаты, я думаю, что это цикл или что я дважды использовал функцию оформления заказа == в функции.

 def checkout(self):  while True:  if not shopping_cart:  print("Your cart is empty, please add item to proceed to checkout")   else:  checkout = int(input('''Do you want to proceed to checkout?  1. Yes  2. No '''))  if checkout == 1:  checkout = input('''Please select how you would like to pay for your purchase:   1. Gift Voucher  2. Credit / Debit Card  3. Paypal''')  if checkout == 2:  break   else:  if checkout == 1:  input("Please enter your gift voucher code")  print("Thank you")   elif checkout == 2:  input("Please enter your Credit / Debit card information")  print("Thank you")   elif checkout == 3:  input("vffsdfsdfsd")  print("TA")   else:  print("Please select a valid payment method")  break  

Ответ №1:

Это связано с тем, что вы используете одну и ту же переменную Do you want to proceed to checkout? и Please select how you would like to pay переменную, попробуйте изменить переменную для payment method типа как payment_method

 def checkout(self):  while True:  if not shopping_cart:  print("Your cart is empty, please add item to proceed to checkout")    else:  checkout = int(input('''Do you want to proceed to checkout?  1. Yes  2. No '''))  if checkout == 1:  payment_method = input('''Please select how you would like to pay for your purchase:   1. Gift Voucher  2. Credit / Debit Card  3. Paypal''')  if checkout == 2:  break    else:  if payment_method == 1:  input("Please enter your gift voucher code")  print("Thank you")    elif payment_method == 2:  input("Please enter your Credit / Debit card information")  print("Thank you")    elif payment_method == 3:  input("vffsdfsdfsd")  print("TA")    else:  print("Please select a valid payment method")  break